Write a python script to get information about the current apk application on the phone

  • 2020-04-02 13:53:06
  • OfStack

If the ANDROID_HOME environment variable has been set, use the aapt tool to get the information of apk, and save it to the packageinfo.txt file in the directory where the script is located:


import os 
import tempfile 
import re 

tempFile = tempfile.gettempdir() 

def get_aapt(): 
if "ANDROID_HOME" in os.environ: 
rootDir = os.path.join(os.environ["ANDROID_HOME"], "build-tools") 
for path, subdir, files in os.walk(rootDir): 
if "aapt.exe" in files: 
return os.path.join(path, "aapt.exe") 
else: 
return "ANDROID_HOME not exist" 

def get_current_package_name(): 
pattern = re.compile(r"[a-zA-Z0-9.]+/.[a-zA-Z0-9.]+") 
os.popen("adb wait-for-device") 
out = os.popen("adb shell dumpsys input | findstr FocusedApplication").read() 
package_name = pattern.findall(out)[0].split("/")[0] 

return package_name 

def get_match_apk(package_name): 
list = [] 
for packages in os.popen("adb shell pm list packages -f " + package_name).readlines(): 
list.append(packages.split(":")[-1].split("=")[0]) 
apk_name = list[0].split("/")[-1] 
os.popen("adb pull " + list[0] + " " + tempFile) 

return tempFile + "\" + apk_name 

if __name__ == "__main__": 
os.popen(get_aapt() +  
" dump badging " +  
get_match_apk(get_current_package_name()) +  
" > PackageInfo.txt") 
os.popen("del " + tempFile + "\*.apk")

Related articles: