This repository has been archived on 2023-03-16. You can view files and clone it, but cannot push or open issues or pull requests.
Android-Mobile-Toolkit/amt.py

127 lines
3.8 KiB
Python
Raw Permalink Normal View History

2019-09-28 04:10:53 +00:00
#amt.py
"""
Code to interact with an android device using ADB
Written by Kevin Rode
2019-09-29 00:19:25 +00:00
Last Updated Sep 28 2019
2019-09-28 04:10:53 +00:00
"""
2019-09-28 03:56:01 +00:00
import adbutils
import os
2019-09-29 00:19:25 +00:00
import sys
2019-09-28 03:56:01 +00:00
import re
2019-09-29 00:19:25 +00:00
import time
2019-09-28 03:56:01 +00:00
import requests
from lxml import html
2019-09-29 00:19:25 +00:00
from pyfiglet import Figlet
2019-09-28 03:56:01 +00:00
def adb_start():
if "platform-tools" in os.environ['PATH']:
print("ADB found in PATH")
else:
os.environ['PATH'] += ';'+os.getcwd()+'\\platform-tools'
def adb_connect():
adb = adbutils.AdbClient(host="127.0.0.1", port=5037)
d = adb.device()
2019-09-29 00:19:25 +00:00
if d != None:
print("Device connected.")
2019-09-28 03:56:01 +00:00
return d
def twrp_download(d):
2019-09-29 00:19:25 +00:00
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()
2019-09-28 03:56:01 +00:00
def main():
adb_start()
2019-09-29 00:19:25 +00:00
menu()
2019-09-28 03:56:01 +00:00
main()