首页 > 代码库 > Android KK后为何工厂模式下无法adb 无法重启机器 ?

Android KK后为何工厂模式下无法adb 无法重启机器 ?

前言
         欢迎大家我分享和推荐好用的代码段~~
声明
         欢迎转载,但请保留文章原始出处:
         CSDN
http://www.csdn.net
         雨季o莫忧离:http://blog.csdn.net/luckkof

正文

 

KK 以后 为何工厂模式下无法adb reboot ? 正常情况下adb reboot 可以重启。
[Keyword]
adb reboot, factory mode, 工厂模式, 工厂模式无法重启
[版本约束]
android 4.4,  KK 或者KK 以后版本
[Solution]
KK 以后 Google 将关机/重启的最后转移到了init 进程上执行。 其他Process 通过system property sys.powerctl 通知init 执行。
sys.powerctl 的配置在init.rc 当中,可以参考
on property:sys.powerctl=*
   powerctl ${sys.powerctl}
   
然后执行system/core/init/builtins.c#do_powerctl 函数,call android_reboot 重启或者关机。
为何工厂模式下无法adb reboot ? 正常情况下adb reboot 可以重启, 其关键就是因为mediatek/config/{platform}factory_init.rc 中没有定义
on property:sys.powerctl=*
   powerctl ${sys.powerctl}
   
如果要添加此功能,只有在factory_init.rc 中添加这两行即可