概述
对于没有源码的apk,有时候我们需要知道apk的一些信息,这时候就需要一些方法.
查看方式
aapt
在 SDK
的 build-tools
目录下,将 build-tools
目录添加到环境变量中,就可以直接使用 aapt
命令.
查看apk的相关信息
aapt dump badging tv_video/tv_video.apk
部分信息:
package: name='com.ktcp.tvvideo' versionCode='6700' versionName='4.7.0.2051' platformBuildVersionName=''
sdkVersion:'14'
targetSdkVersion:'19'
uses-permission: name='android.permission.ACCESS_NETWORK_STATE'
uses-permission: name='android.permission.ACCESS_WIFI_STATE'
uses-permission: name='android.permission.BLUETOOTH'
uses-permission: name='android.permission.BLUETOOTH_ADMIN'
...
使用Android Studio查看
直接用Android就可以打开apk查看.可以查看apk各种资源,配置文件,所使用的so库等等.
dumpsys
使用dumpsys可以查看apk的相关信息
adb shell dumpsys package p > dumpsys_p
部分截取
Package [com.android.settings] (f0c9a0e):
userId=1000
sharedUser=SharedUserSetting{f9d70ba android.uid.system/1000}
pkg=Package{3232b02 com.android.settings}
codePath=/system/priv-app/Settings
resourcePath=/system/priv-app/Settings
legacyNativeLibraryDir=/system/priv-app/Settings/lib
primaryCpuAbi=arm64-v8a
secondaryCpuAbi=null
versionCode=25 minSdk=25 targetSdk=25
versionName=7.1.2
splits=[base]
查看包名及路径
adb shell pm list packages -f
部分结果
package:/system/priv-app/SettingsProvider/SettingsProvider.apk=com.android.providers.settings
package:/system/app/RkExplorer/RkExplorer.apk=com.android.rk
package:/system/priv-app/InputDevices/InputDevices.apk=com.android.inputdevices
package:/system/priv-app/Telecom/Telecom.apk=com.android.server.telecom
package:/system/app/MediaFloat/MediaFloat.apk=com.android.rk.mediafloat
package:/system/priv-app/StressTest/StressTest.apk=com.cghs.stresstest
package:/system/priv-app/Settings/Settings.apk=com.android.settings
package:/system/app/WallpaperBackup/WallpaperBackup.apk=com.android.wallpaperbackup
package:/system/priv-app/FusedLocation/FusedLocation.apk=com.android.location.fused
package:/system/priv-app/DeviceTest/DeviceTest.apk=com.DeviceTest
package:/system/priv-app/FusedLocation/FusedLocation.apk=com.android.location.fused
这些工具不只这些用途,他们还有很多参数和选项,可以根据需要自行查找.