diff --git a/Magisk-v19.3.zip b/Magisk-v19.3.zip new file mode 100644 index 0000000..6a2953b Binary files /dev/null and b/Magisk-v19.3.zip differ diff --git a/README.md b/README.md index 33dd4e9..83395eb 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,11 @@ # Android-Mobile-Toolkit This is the beginning of a program to root and extract data from android devices using adb -# Features -Automatically detect the correct version of TWRP for a plugged in device +## Features ++Automatically detect the correct version of TWRP for a plugged in device ++Root any device that is TWRP compatible -# To-Do -Implement a menu system\ -Implement Fastboot and Magisk compatibility to root a device\ -Implement utilities to pull and process app data +## To-Do ++~~Implement a menu system~~\ ++~~Implement Fastboot and Magisk compatibility to root a device~~\ ++Implement utilities to pull and process app data diff --git a/amt.py b/amt.py index e92edb2..db99c8b 100644 --- a/amt.py +++ b/amt.py @@ -2,13 +2,16 @@ """ Code to interact with an android device using ADB Written by Kevin Rode -Last Updated Sep 27 2019 +Last Updated Sep 28 2019 """ import adbutils import os +import sys import re +import time import requests from lxml import html +from pyfiglet import Figlet def adb_start(): if "platform-tools" in os.environ['PATH']: print("ADB found in PATH") @@ -18,32 +21,106 @@ def adb_start(): def adb_connect(): adb = adbutils.AdbClient(host="127.0.0.1", port=5037) - print(adb.device_list()) d = adb.device() + if d != None: + print("Device connected.") return d def twrp_download(d): - cpu = d.shell('cat /proc/cpuinfo | grep Hardware') - cpu = cpu.replace(" ","") - cpu = re.sub(r'(.+:)', '', cpu) - r = requests.get('https://dl.twrp.me/'+cpu) - tree = html.fromstring(r.text) - urls = tree.xpath('//a/@href') - downloads = [] - for i in urls: - if "img" in i: - downloads.append(i) - url_to_download = "https://dl.twrp.me"+downloads[0] - url_to_download = url_to_download.replace('.html', '') - print("Use this link to download twrp for your connected device: "+url_to_download) - print("Ensure that the downloaded file is moved to the same folder as the script before continuing") + found = 0 + files = os.listdir(os.curdir) + for file in files: + if "twrp" in file: + found = 1 + if found != 1: + cpu = d.shell('cat /proc/cpuinfo | grep Hardware') + cpu = cpu.replace(" ","") + cpu = re.sub(r'(.+:)', '', cpu) + r = requests.get('https://dl.twrp.me/'+cpu) + tree = html.fromstring(r.text) + urls = tree.xpath('//a/@href') + downloads = [] + for i in urls: + if "img" in i: + downloads.append(i) + url_to_download = "https://dl.twrp.me"+downloads[0] + url_to_download = url_to_download.replace('.html', '') + print("Use this link to download twrp for your connected device: "+url_to_download) + print("Ensure that the downloaded file is moved to the same folder as the script before continuing") + input("Press Enter to continue...") + files = os.listdir(os.curdir) + for file in files: + if "twrp" in file: + found = 1 + while found != 1: + print("File not found. Please confirm it has been moved to the correct directory") + input("Press Enter to continue...") + files = os.listdir(os.curdir) + for file in files: + if "twrp" in file: + found = 1 + else: + print("twrp already downloaded") + + +def push_files(d): + initcheck_magisk = d.shell("cd /sdcard && ls | grep Magisk") + if initcheck_magisk == None and initcheck_twrp == None: + d.sync.push("Magisk-v19.3.zip", "/sdcard/Magisk.zip") + check_magisk = d.shell("cd /sdcard && ls | grep Magisk") + if check != None: + print("File copied successfully.") + else: + print("Something went wrong. Please try again.") + else: + print("Magisk already copied") + + +def reboot_bootloader(): + adb = "platform-tools\\adb.exe" + fastboot = "platform-tools\\fastboot.exe" + os.system(adb+" reboot bootloader") + input("Press Enter when the device has rebooted") + os.system(fastboot+" devices") + + +def root_device(): + adb = "platform-tools\\adb.exe" + fastboot = "platform-tools\\fastboot.exe" + files = os.listdir(os.curdir) + for file in files: + if "twrp" in file: + twrp = file + os.system(fastboot+ " boot "+twrp) + input("Press Enter when TWRP has booted") + print("Follow the onscreen directions to install Magisk (Located at the bottom of the install window)") + print("After Magisk installs click [Reboot] then [Do Not Install]") + input("Press Enter when the device has rebooted") + +def menu(): + while True: + banner = Figlet(font='Standard') + print(banner.renderText('Android Mobile Toolkit')) + print("[1] Root Device (WIP)\n[2] Extract Data (Coming Soon)\n[99] Quit") + choice = input("Please select a number: ") + if int(choice) == 1: + device = adb_connect() + twrp_download(device) + push_files(device) + reboot_bootloader() + root_device() + elif int(choice) == 2: + print("Data extraction is coming soon.") + time.sleep(2) + elif int(choice) == 99: + print("Goodbye!") + sys.exit() def main(): adb_start() - device = adb_connect() - twrp_download(device) + menu() main()