星屿浅奈 ✧ Saneko

Back

获取APK相关信息Blur image

前提#

Android中APK部分信息通过adb无法直接获取,但是可以通过Android中的ApplicationInfo 🌊{eos-icons:api}接口进行获取。

获取内容#

  • packageName:应用的包名,唯一标识每个APP
  • appName:应用的名称,用户在界面上看到的名字
  • isSystemApp:是否为系统应用,区分预装和用户安装
  • launcherActivity:应用的启动Activity类名
  • processName:应用运行的进程名称
  • compileSdkVersion:编译时所用的SDK版本
  • targetSdkVersion:目标适配的SDK版本
  • icon:应用的图标数据

功能实现#

权限#

<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"
    tools:ignore="QueryAllPackagesPermission" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
    android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
    android:maxSdkVersion="32"
    tools:ignore="ScopedStorage" />
xml

MainActivity(入口)#

AppInfoManager(核心部分)#

DatabaseHelper(数据保存)#

使用方法#

  1. 安装APK
adb install -g app-debug.apk # 通过-g参数授予全部权限"
bash
  1. 启动APK
adb shell am start -n com.tt.appinfo/.MainActivity
bash
  1. 等待获取完成
adb shell cat /sdcard/Android/data/com.tt.appinfo/files/result.txt # 结果为1时,获取完成
bash
  1. 导出数据
adb pull /sdcard/Android/data/com.tt.appinfo/files/appInfo.db
bash
  1. 解析数据

可通过SQLite在线查看 🌊{hugeicons:sql}临时查看数据 临时查看结果 :::

python解析示例#

C#解析示例#

获取APK相关信息
https://saneko.me/blog/09aec4e3fa4b
Author Saneko
Published at January 13, 2025
Buy me a cup of coffee ☕.
Comment seems to stuck. Try to refresh?✨