aapt dump 未产生所需的输出

问题描述 投票:0回答:1

嘿,我想弄清楚为什么以下命令不能产生所需的输出:

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'
android windows adb aapt
1个回答
0
投票
aapt dump badging c:/adb/apks/ftp/ftp.apk " | sed -r s/package: name='([a-z0-9.]*)'.*/\1/"

您尝试使用的命令有两个问题:

  1. 您在命令的第二部分添加了双引号,这会更改命令。
  2. 您使用的是 Windows,该命令设计为在 Linux 上执行。

不带引号的原始工作命令是

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
版本。

© www.soinside.com 2019 - 2024. All rights reserved.