Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! /bin/bash
- ###TABLE OF CONTENTS#####
- ## MAIN MENU - (MAIN00)
- ## FASTBOOT MENU - (FAST00)
- ##BACKUP - (BACKUP00)
- ##RESTORE - (RESTORE00)
- #FASTBOOT MENU (FAST00)
- #Different options the user has in the bootloader
- #Displays the custom boot.img full path and custom recovery path
- function func_fastboot_menu () {
- echo "Fastboot menu!"
- echo "Kernel selected : $var_custom_kernel | Recovery Selected : $var_recovery_img"
- echo "1: Select custom kernel!"
- echo "2: Select custom recovery!"
- echo "3: Boot custom kernel! (boot.img)"
- echo "4: Boot custom recovery! (recovery.img)"
- echo "5: Flash custom kernel! (boot.img)"
- echo "6: Flash custom recovery! (recovery.img)"
- echo "R: Reboot device into fastboot!"
- echo "D: Show devices connected via fastboot!"
- echo "M: Return to main menu!"
- read var_fastboot_option
- case $var_fastboot_option in
- #User selects location of the custom boot.img, script checks if it exists, and if so
- # assigns it to the $var_custom_kernel variable
- 1) echo "Please select kernel location (boot.img)!"
- read var_custom_kernel
- if [ -f $var_custom_kernel ]
- then
- echo "file exists!"
- echo "$var_custom_kernel selected!"
- func_fastboot_menu
- else
- echo "Invalid option!"
- echo "Please try again!"
- func_fastboot_menu
- fi;;
- #Same as above except with the recovery partition
- 2) echo "Please select recovery location! (recovery.img)"
- read var_recovery_img
- if [ -f $var_recovery_img ]
- then
- echo "file exists!"
- echo "$var_recovery_img selected!"
- func_fastboot_menu
- else
- echo "Invalid option!"
- echo "Please try again!"
- func_fastboot_menu
- fi;;
- #Boots the custom boot.img before flashing it to the boot partition
- 3) echo "Booting custom kernel!"
- fastboot boot $var_custom_kernel
- func_fastboot_menu;;
- #Same as 3 except /w the recovery partition
- 4) echo "Booting custom reccovery! | $var_recovery_img"
- fastboot boot $var_recovery_img
- func_fastboot_menu;;
- #Actually preforms the flash, checks if user is certain, and if user inputs yes
- # then preforms the flash of boot.img
- 5) echo "Are you sure you wish to flash $var_custom_kernel to device?"
- echo "Type 'yes' to continue"
- read var_confirm
- if [ $var_confirm == yes ]
- then
- echo "Flashing $var_custom_kernel to device"
- fastboot flash boot $var_custom_kernel
- echo "boot.img flashed to device!"
- func_fastboot_menu
- else
- echo "Returning to menu"
- func_fastboot_menu
- fi;;
- #Same as 5 but with the recovery partition
- 6) echo "Are you sure you wish to flash $var_recovery_img to device?"
- echo "Type 'yes' to continue"
- read var_confirm
- if [ $var_confirm == yes ]
- then
- echo "Flashing $var_recovery_img to device"
- fastboot flash recovery $var_recovery_img
- echo "$var_recovery_img flashed to device!"
- func_fastboot_menu
- else
- echo "Returning to menu"
- func_fastboot_menu
- fi;;
- #duhh
- D) echo "Displaying devices connected via fastboot!"
- fastboot devices
- func_fastboot_menu;;
- d) echo "Displaying devices connected via fastboot!"
- fastboot devices
- func_fastboot_menu;;
- R) echo "Rebooting device into bootloader!"
- func_fastboot_reboot;;
- r) echo "Rebooting device into bootloader!"
- func_fastboot_reboot;;
- #Returns to main menu but not before promopting the user on if they want to reboot
- #thus exiting fastboot
- M) echo "Do you wish to restart device and return to ADB menu? (y/n)"
- read var_reboot
- if [ $var_reboot == y ]
- then
- echo "Rebooting and returning to menu!"
- fastboot reboot
- func_menu
- else
- echo "Returning to main menu without reboot"
- func_menu
- fi;;
- m) echo "Do you wish to restart device and return to ADB menu? (y/n)"
- read var_reboot
- if [ $var_reboot == y ]
- then
- echo "Rebooting and returning to menu!"
- fastboot reboot
- func_menu
- else
- echo "Returning to main menu without reboot"
- func_menu
- fi;;
- esac
- }
- #function that reboots device into recovery thus enabling fastboot
- function func_fastboot_reboot () {
- echo "Reboot device to bootloader? (Y/N)"
- read var_reboot_fastboot
- case $var_reboot_fastboot in
- Y) echo "Rebooting to bootloader!"
- adb reboot bootloader
- func_fastboot_menu;;
- y) echo "Rebooting to bootloader!"
- adb reboot bootloader
- func_fastboot_menu;;
- n) echo "Continuing to fastboot menu!"
- func_fastboot_menu;;
- N) echo "Continuing to fastboot menu!"
- func_fastboot_menu;;
- *) echo "Invalid input!"
- func_fastboot_reboot;;
- esac
- }
- #Asks user where the full system backup is stored, and if it exists, flashes it
- # to the device (RESTORE00)
- function func_full_restore () {
- echo "Please select android backup to restore!"
- read var_backup
- echo "$var_backup chosen!"
- if [ -f $var_backup ]
- then
- echo "$var_backup exists!"
- echo "Continuing operation!"
- adb restore $var_backup
- echo "Done!"
- func_menu
- else
- echo "File does not exist!"
- echo "Please try again."
- func_full_restore
- fi
- }
- #Prompts user for location and name of their full system backup then preforms it if user
- #inputs yes (BACKUP00)
- function func_fullbackup () {
- echo "Starting backup!"
- echo "Please select location to save backup!"
- read fullbak_path
- echo "$fullbak_path chosen!"
- echo "Please select name of backup!"
- read fullbak_name
- echo "$fullbak_name chosen!"
- echo "Confirm backup $fullbak_path/$fullbak_name (Y/N)"
- read var_confirm
- case $var_confirm in
- y) adb backup -apk -shared -all -f $fullbak_path/$fullbak_name.ab
- echo "Done!"
- func_menu;;
- Y) adb backup -apk -shared -all -f $fullbak_path/$fullbak_name.ab
- echo "Done!"
- func_menu;;
- n) echo "returning to menu!"
- func_menu;;
- N) echo "returning to menu!"
- func_menu;;
- *) echo "Invalid input!";;
- esac
- }
- #BACKUP SPECIFIC APPLICATION!
- function func_apk_backup () {
- echo "APK backup menu!"
- echo "Selected package: $var_apk_path | Destination path: $var_apkbak_location"
- echo "1: list APKs"
- echo "2: list APK path"
- echo "3: APK destination path"
- echo "4: Extract APK"
- echo "M: Main Menu"
- read n
- case $n in
- 1) echo "Listing APKs"
- adb shell pm list packages
- func_apk_backup;;
- 2) echo "Which APK path would you like to view?"
- read var_apk_path
- adb shell pm path $var_apk_path
- func_apk_backup;;
- 3) echo "Please select location to save apk to"
- read var_apkbak_location
- echo "$var_apkbak_location selected as destination!"
- func_apk_backup;;
- 4) echo "Pulling $var_apk_path to $var_apkbak_location"
- adb pull $var_apk_path $var_apkbak_location
- echo "Done, returning to menu!"
- func_apk_backup;;
- esac
- }
- #MAIN MENU (MAIN00)
- function func_menu () {
- echo "Welcome to TJ's ADB backup helper!"
- echo "Please select an option!"
- echo "1: View connected devices"
- echo "2: Full system backup!"
- echo "3: Backup specfic application!"
- echo "4: Full system restore!"
- echo "5: Fastboot menu!"
- echo "Q: Quit!"
- read n
- case $n in
- 1) echo "Displaying devices!"
- adb devices
- func_menu;;
- 2) echo "Preforming full backup!"
- func_fullbackup;;
- 3) echo "Specific apk backup selected!"
- func_apk_backup;;
- 4) echo "System restore chosen!"
- func_full_restore;;
- 5) echo "Fastboot menu chosen!"
- func_fastboot_reboot;;
- q) echo "quitting!"
- exit;;
- Q) echo "quitting!"
- exit;;
- esac
- }
- func_menu
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement