某些三星Android手机有一个错误,如果插入USB,USB调试会自动打开。这显然是一个安全问题。我想编写一个程序来禁用USB调试,这样我就可以在插入usb-plug时启动它。 关于如何做到这一点的任何想法?
答案 0 :(得分:5)
似乎不可能。我认为我必须将Settings.System与ADB_ENABLED一起使用,但ADB_ENABLED是一个安全系统设置,普通应用程序无法更改。 : - (
另一方面,有权限android.permission.WRITE_SECURE_SETTINGS
,所以看起来我可以改变它。我可以在root手机上买到它吗?
如果有人知道如何解决这个安全问题,那就太好了。
答案 1 :(得分:1)
我不认为这是一个安全问题。
首先,开发人员有责任只提供不会在以后损害其应用程序的调试消息。
其次,用于开发的调试消息应该具有与生产相比的另一个调试级别。
第三,如果您的应用程序通过adb公开数据会破坏您的应用程序,那么应用程序设计可能在开始时出现了问题?
第四:不建议切换用户应该能够配置的设置。我不想通过启动应用程序来看到我配置的许多内容。当然,你提到了三星的Bug。但我认为他们应该能够解决这个问题。
问候,克里斯
答案 2 :(得分:0)
要实现这一点,您需要 android.permission.WRITE_SECURE_SETTINGS
权限。
无根:从 ABD 执行 adb shell pm grant <package-name> android.permission.WRITE_SECURE_SETTINGS
使用 root :Root 访问意味着我们可以在没有 adb 的情况下执行 shell 命令,因此解决方法:
try {
Runtime.getRuntime().exec(new String[]{"su","-c",String.format("pm grant %s android.permission.WRITE_SECURE_SETTINGS",BuildConfig.APPLICATION_ID)});
} catch (IOException e) {
// handle IOException
}