我正在使用aapt工具来阅读apk文件的内容:
aapt d badging myapk.apk
但输出太多了。我只需要包名和版本名。有什么方法可以限制吗?
更新:我让它在窗口cmd上工作。看起来像这样:
aapt d badging myapk.apk | find "pack"
答案 0 :(得分:12)
//试试这个
aapt d badging myapk.apk | grep 'pack'
它的显示为
padmakumar@padmakumar-desktop:~$ aapt d badging ./Desktop/NhpAndroid_tablet_k4.apk | grep 'pack'
package: name='com.ti.et.nspire.android' versionCode='1' versionName='1.0'
答案 1 :(得分:5)
这是一个对我有吸引力的技巧。 我正在使用Backtrack 5 r2; GNU bash,版本4.1.5(1)-release(i486-pc-linux-gnu)
假设“./aapt”可执行文件位于Shell或Script的同一目录中。如果不只是添加可执行文件的路径或使用export aapt =“/ path / to / aapt”并使用变量路径。
out = $(。/ aapt dump badging GameCIH.apk | grep'application-label:'| awk -F:'match($ 0,“:”){print substr($ 0,RSTART + 1) }'| tr -d“'”)
来自apk
上的 aplication-label:'GameCIH'仅限:
<强> GameCIH 强>
最后一件事。如果您需要包名称或版本名称,请执行以下操作:
out = $(。/ aapt dump badging GameCIH.apk | grep'versionName ='| awk -F:'match($ 0,“versionName =”){print substr($ 2,RSTART-8)} '| tr -d“'”)
这将返回例如:
<强> =的versionName 3.0.0 强>
只需将值 versionName 更改为您需要的任何内容。
更改 RSTART-8 ,如下所示: RSTART + 4 ,然后返回:
<强> 3.0.0 强>
我希望这可以提供帮助!
答案 2 :(得分:2)
aapt d badging myapk.apk | grep package
对于Windows,下载UnxUtils以获取grep以及更多Linux命令: http://unxutils.sourceforge.net/UnxUtils.zip
答案 3 :(得分:1)
aapt d badging myapk.apk | awk '/package/ {print($2)}' | awk '{print(mstr[split($1, mstr, \"=\")])}' | tr -d \"'\"
答案 4 :(得分:1)
这是Bash功能:
# Display package name and version of APK file(s)
apk(){
(
set -o pipefail
for path in "$@"; do
aapt dump badging "$path" \
| awk $'
BEGIN {
p=""
v=""
}
match($0, /^package: name=\'([^\']*)\'/, a) {
p=a[1]
}
match($0, /versionName=\'([^\']*)\'/, b) {
v=b[1]
}
END {
if (length(p) && length(v)) {
print p, v
}
}'
done
)
}