有没有任何ADB命令可以启用开发者选项?

14

通过点击版本号7次可以启用开发人员选项。我正在使用adb shell input tap x y命令来点击版本号。是否有adb命令可以点击版本号7次?


1
请查看此问题:https://dev59.com/wmMl5IYBdhLWcg3wmn_R - Kuldeep Raj
嗨@kuldeepraj,使用“adb shell am start -n com.android.settings/.DevelopmentSettings”命令可以打开开发者选项,但用户可能希望启用开发者选项(我认为)。 - vjsantojaca
2个回答

22

更简单的方法:

adb shell settings put global development_settings_enabled 1

那么要禁用呢?我尝试了 adb shell settings put global development_settings_enabled 0,但它没有起作用。 - Benjamin Lucidarme
4
我认为这已经改变了,从Android 4.2开始。无论如何,在Android 7.1上,这个答案对我不起作用,但是@Olaia的可以。 - evadeflow
2
鸡和蛋问题...如果未启用development_settings,adb无法连接 ;) - childno͡.de
这个答案在 Android 11Android 12 Beta 上仍然有效。但请注意,如 @ childno͡.de 所提到的,必须至少启用一次 开发者选项 才能使设备被计算机识别,并且随后可以执行上述命令来禁用/启用选项。 - Siju
@childno͡.de「鸡和蛋问题」这个在终端应用程序中也应该适用吧?不需要adb shell前缀。 - undefined
抱歉 @tuxayo,我不太明白?你需要连接到设备,这就是adb的作用。设计上没有其他“API”,否则有人可能会接管你的私人设备,启用开发者模式并在没有任何交互的情况下黑掉你的数据。这就是为什么我认为这不适用于启用,就像Siju提到的那样。但是,是的,如果它被启用,你可能可以通过程序来禁用它。其他任何方法都是一个严重的安全漏洞。 - undefined

4
那些信息存储在设置应用程序的共享首选项中。其位于:/data/user_de/0/com.android.settings/shared_prefs/development.xml,其中存储有一个名为show的布尔值,如果设置为true,则会显示开发人员选项,否则不显示。
如果设备已获取ROOT权限,则可以执行以下操作:
  1. adb root
  2. adb shell sed -i -e 's/false/true/g' data/user_de/0/com.android.settings/shared_prefs/development.xml
  3. adb shell chown system:system data/user_de/0/com.android.settings/shared_prefs/development.xml
  4. adb shell cat data/user_de/0/com.android.settings/shared_prefs/development.xml
  5. adb shell am force-stop com.android.settings
每个命令的解释如下:
  1. 确保我们具备ROOT权限
  2. 我们打算将该值从false更改为true。在该XML文件中只存储了这个值,因此目前来说是安全的。
  3. 更改所有者和组为system,因为在我们修改后,它被设置为root:root
  4. 验证该值是否正确设置。(可以在第三步之前完成,没有关系)
  5. 停止设置应用程序,以便强制其重新读取该值。
如果设备未获取ROOT权限,我无法想到一种方法来完成此操作。
即使我们拥有已获取ROOT权限的设备,使用此方法比通过adb执行7个按键事件(在滑动到末尾后)要花费更长时间。因此,我认为您最好继续使用当前的方法。(很抱歉)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接