【问题标题】:adb shell command to check the apk is debug or release signed?adb shell 命令检查 apk 是调试还是发布签名?
【发布时间】:2017-01-11 22:42:47
【问题描述】:

如何检查 apk 是 debug 还是 release 签名的?
有没有直接的 adb 命令来验证 apk 签名?

尝试了以下dumpsysaapt 命令,但我找不到确切的标志

adb shell dumpsys package <package name>
aapt dump badging <apk file>

如何找出给定的 apk 是 debug 还是 release 签名的?如何知道我们可以安装此 apk 的哪些版本(用户、用户调试或 eng)?

【问题讨论】:

标签: android adb aapt dumpsys


【解决方案1】:

如果要检查 apk 是否可调试,请使用以下 aapt 命令。

aapt dump badging /path/to/apk | grep -c application-debuggable

输出 1:可调试 输出 0:不可调试。

【讨论】:

  • 如果我错了,请纠正我,但我相信 Google Play 安装的应用不允许可调试。
  • 在 Windows 上,此工具位于 %ANDROID_SDK%\build-tools\\aapt.exe
  • 不确定自从发布此答案后它是否发生了变化,但尝试使用 SKD 30 中的 aapt 命令,看起来如果您在输出中看到“application-debuggable”,它是一个调试应用程序,否则发布应用程序。
【解决方案2】:

我尝试了很多东西并找到了以下解决方案:

adb shell dumpsys package <package name> | findstr flags

如果构建是可调试的,“flags”行将包含“DEBUGGABLE”参数。如果它不存在,则构建不是调试

【讨论】:

  • 这应该是公认的答案,因为它适用于旧设备,特别是没有安装 aapt 的设备,就像我的 Android 4.3 自定义设备一样。
  • 谢谢!请注意,这仅适用于 Windows。对于 linux,您必须使用 grep 来查找该特定行
【解决方案3】:

你似乎很困惑。 Apk 通常有debugrelease 版本。并且enguserdebuguser 构建类型用于整个固件映像。

您可以使用

找到构建信息(如果构建器正确填充)
adb shell getprop ro.build.fingerprint

【讨论】:

    猜你喜欢
    • 2011-05-07
    • 2019-12-21
    • 2011-10-28
    • 1970-01-01
    • 1970-01-01
    • 2016-12-23
    • 1970-01-01
    • 1970-01-01
    • 2012-08-10
    相关资源
    最近更新 更多