嘿,我想弄清楚为什么以下命令不能产生所需的输出:
aapt dump badging c:/adb/apks/ftp/ftp.apk " | sed -r s/package: name='([a-z0-9.]*)'.*/\1/"
这只会产生大量文本:
package: name='com.medhaapps.wififtpserver' versionCode='74' versionName='1.9.5' compileSdkVersion='28' compileSdkVersionCodename='9'
sdkVersion:'16'
targetSdkVersion:'28'
uses-permission: name='android.permission.INTERNET'
uses-permission: name='android.permission.ACCESS_NETWORK_STATE'
uses-permission: name='android.permission.ACCESS_WIFI_STATE'
uses-permission: name='android.permission.WRITE_EXTERNAL_STORAGE'
uses-permission: name='android.permission.WAKE_LOCK'
uses-permission: name='android.permission.FOREGROUND_SERVICE'
uses-permission-sdk-23: name='android.permission.ACCESS_COARSE_LOCATION'
application-label:'WiFi FTP Server'
......ETC ETC.....
这不应该产生:
package: name='com.medhaapps.wififtpserver'
aapt dump badging c:/adb/apks/ftp/ftp.apk " | sed -r s/package: name='([a-z0-9.]*)'.*/\1/"
您尝试使用的命令有两个问题:
不带引号的原始工作命令是
aapt dump badging c:/adb/apks/ftp/ftp.apk | sed -r s/package: name='([a-z0-9.]*)'.*/\1/
它结合了 Android SDK 中的两个程序
aapt
和标准 Linux 工具 Stream EDitor sed
。由于您使用的是 Windows,因此默认情况下此命令不可用。
获取Windows版本的
sed
最简单的方法是安装版本工具GIT CSM(官方开源版本)。它提供了标准 Linux 程序的多个 Windows 版本,例如 sed
。在标准安装中,您将在 sed.exe
中找到 C:\Program Files\Git\usr\bin
。因此,只需将该目录附加到您的 PATH
,您就会有一个可用于该命令的工作 sed
版本。