这是我针对无根手机的解决方案,需要从上面进行一些细微更改,然后在运行Android 5.0.2的Moto G第二代手机上运行。
我在/ system / bin中没有aapt二进制文件,因此我首先尝试从以下位置下载:https ://android.izzysoft.de/downloads
但是当我尝试运行它时,我收到一条错误消息:
错误:仅支持独立于位置的可执行文件(PIE)。
所以然后我搜索了一个PIE版本并发现:https : //github.com/Calsign/APDE/blob/master/APDE/src/main/assets/aapt-binaries/aapt-arm-pie
这可以通过将二进制文件复制到/ data / local / tmp来实现:
adb push aapt-arm-pie /data/local/tmp
adb shell chmod 0755 /data/local/tmp/aapt-arm-pie
因此:
adb shell pm list packages -3 -f
获取第三方应用程序(已安装的应用程序,而非系统应用程序)的列表,然后您可以使用上述命令中的程序包来获得有关程序包的信息-例如:
adb shell /data/local/tmp/aapt-arm-pie d badging /data/app/com.facebook.katana-3/base.apk
所以下面是用于Linux客户端的脚本(仅用于Linux客户端):
for pkg in `adb shell pm list packages -3 -f | awk -F= '{sub("package:","");print $1}'`
do
adb shell /data/local/tmp/aapt-arm-pie d badging $pkg | awk -F: '
$1 == "application-label" {print $2}'
done
如果您也想要软件包和版本,则最后更改,但只更改一行:
$1 == "application-label" {print $2}'
至:
$1 == "package" { split($2,space," ")
name=space[1];version=space[3]}
$1 == "application-label" {print name, version, $2 }'
输出示例:
name='com.ultimarom.launchnavigation' versionName='1.28' 'Navigation'
name='com.enhanced.skineditorstudio' versionName='3.3' 'Custom Skin Creator'
name='com.mojang.minecraftpe' versionName='1.2.6.60' 'Minecraft'
name='org.videolan.vlc' versionName='2.5.13' 'VLC'
name='com.jrustonapps.myauroraforecast' versionName='1.7.2' 'My Aurora Forecast'
name='de.j4velin.wifiAutoOff' versionName='1.7.6' 'WiFi Automatic'
name='com.facebook.katana' versionName='153.0.0.54.88' 'Facebook'
name='com.metago.astro' versionName='6.0.5' 'ASTRO File Manager'
name='za.co.hardrive.smartinfo.parkrun' versionName='2.0.2' 'My 5krun'
name='com.PYOPYO.StarTrackerVR' versionName='1.0.1' 'StarTracker VR'
name='cz.aponia.bor3.offlinemaps' versionName='1.1.19' 'Offline Maps'
name='com.groupon' versionName='16.11.63973' 'Groupon'
name='com.ebay.mobile' versionName='5.16.1.2' 'eBay'
name='com.runtastic.android' versionName='8.1.1' 'Runtastic'
name='com.google.android.diskusage' versionName='3.8.3' 'DiskUsage'
麦克风