通过不带root

时间:2017-08-01 10:31:17

标签: android linux shell

我想在我的设备上启用和禁用未植根的飞行模式。

要启用飞行模式,请使用以下命令:

adb shell设置put global_mode_on 1 adb shell am broadcast -a android.intent.action.AIRPLANE_MODE

要禁用飞行模式,请使用以下命令:

adb shell设置将global_mode_on设为0 adb shell am broadcast -a android.intent.action.AIRPLANE_MODE

此命令适用于android< 7.0但对于android版本> = 7.0我收到以下错误:

ZX1G523ZW6:启用飞行模式......
广播:Intent { act=android.intent.action.AIRPLANE_MODE (has extras) }

java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.AIRPLANE_MODE from pid=8824, uid=2000
    at android.os.Parcel.readException(Parcel.java:1684)
    at android.os.Parcel.readException(Parcel.java:1637)
    at android.app.ActivityManagerProxy.broadcastIntent(ActivityManagerNative.java:3537)
    at com.android.commands.am.Am.sendBroadcast(Am.java:772)
    at com.android.commands.am.Am.onRun(Am.java:404)
    at com.android.internal.os.BaseCommand.run(BaseCommand.java:51)
    at com.android.commands.am.Am.main(Am.java:121)
    at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
    at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:262)

对于没有root设备的Android版> = 7.0,是否有解决方案? 先感谢您。

1 个答案:

答案 0 :(得分:0)

正如您所见hereandroid.intent.action.AIRPLANE_MODE是受保护的广播。

在Android 7.0之前,受保护的广播存在安全问题,使普通用户可以调用应用程序代码或使用adb接口。

从Android 7.0开始,此安全漏洞已得到修复,现在如果您想继续使用相同的行为,则需要使用root设备或Android设备< 7.0。