【问题标题】:What would happen if Android app is released with debuggable on?如果 Android 应用程序在可调试的情况下发布会发生什么?
【发布时间】:2011-06-02 14:37:22
【问题描述】:

黄金法则是在向公众发布您的 Android 应用程序之前将可调试选项设置为关闭。

如果我离开(忘记关闭)这个选项会怎样?我的意思是,它将如何向用户显示?

我测试并没有发现任何差异。

【问题讨论】:

    标签: android debugging


    【解决方案1】:

    它将如何呈现给用户?

    普通用户不会注意到差异。

    顺便说一句:

    Support for a true debug build。开发人员不再需要将 android:debuggable 属性添加到清单中的标签 — 构建工具会自动添加该属性。在 Eclipse/ADT 中,所有增量构建都假定为调试构建,因此工具插入 android:debuggable="true"。导出签名的发布版本时,工具不会添加该属性。在 Ant 中,ant 调试命令会自动插入 android:debuggable="true" 属性,而 ant release 则不会。如果手动设置了 android:debuggable="true",那么 ant release 实际上会进行调试构建,而不是发布构建。

    【讨论】:

    • 你是说从 SDK 8.0.1 开始我不需要设置 debuggable on/off 但 Eclipse 插件会自动设置吗?
    • 是的。 Eclipse在后台使用android构建工具;因此,您不必显式添加 android:debuggable 属性;当您使用 Eclipse 的插件生成生产 APK 时,它也会为您删除该属性。
    • 如何查看我转移到移动设备的应用是否已将可调试设置设置为打开或关闭?我的意思是,我怎么能确定插件正常工作。很久以前,我习惯于不相信任何我无法直观验证的结果。
    • @sandalone 这个问题涵盖了主题stackoverflow.com/questions/7085644/…
    【解决方案2】:

    在禁用 USB 调试的标准手机上,它将允许任何应用程序调试应用程序。这将有效地允许任何恶意应用程序获得对应用程序的完全访问权限。

    有关此问题的详细说明,请参阅https://labs.mwrinfosecurity.com/blog/2011/07/07/debuggable-apps-in-android-market/

    【讨论】:

    • 链接的文章是对该问题的出色技术解释,我认为它最好地回答了原始发布者的问题。谢谢。
    • 很遗憾,链接已失效。也许这是同一页? labs.mwrinfosecurity.com/blog/2011/07/07/…
    【解决方案3】:

    这可能会降低他们的移动设备速度,尤其是当您的应用程序中有大量调试语句时。恶意用户也有可能比您希望他们了解更多有关您的应用程序内部工作原理的信息。

    关于黄金法则,您是完全正确的。为了安全起见,最好将其关闭。

    【讨论】:

    • 这是我想不到的。这是一个应该始终考虑的事情。谢谢
    • 我相信 Android 会在源代码中添加更多代码以允许调试,但这会影响性能。不过最好删除任何语言的调试语句。
    • 我不明白检查(甚至更改)应用程序的内部功能由设备所有者自己完成如何被视为恶意。
    • @flarn2006 - 我的想法是,黑客可能会了解内部工作原理,以便对同一应用程序的其他用户发起某种攻击。例如,我们不希望有人看到花旗银行应用程序的内部运作,然后想出如何编写某种利用程序来捕获其他花旗银行应用程序用户的信息并将其发送到黑客的服务器。我不是安全方面的专家,但那是我当时最初的想法。希望这会有所帮助!
    • @jmort253 如果花旗银行应用程序的安全性完全依赖于人们不了解自己手机上应用程序的内部工作原理,我当然不想使用它。这是通过默默无闻的安全,它是不可靠的。你可能会说这总比没有保护好,以防万一有任何这样的错误可以通过这种方式找到,但这增加了开发人员忽略只能找到的错误的诱惑这种方式(做出没有人会的错误假设)并且也使得独立的白帽更难找到错误报告给开发人员。
    【解决方案4】:

    恶意用户也有可能比您希望他们了解更多有关您应用内部运作的信息。

    一个好的做法是将调试模式专门链接到您的唯一设备 ID。

    【讨论】:

    • 你会怎么做?
    【解决方案5】:

    @askmo:您可以使用 SDK 中的一些工具来检查 APK 是否具有调试值。检查以下链接:

    http://lulachronicles.blogspot.com/2011/04/how-to-check-if-apk-has-flag.html

    BR,

    伊格纳西奥

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多