我的成功经验,供大家参考。
美图M4以上都方法无效,经测试,发现插电时的确调用了kpoc_charger这个文件,但是就是不执行reboot命令,用init 6 、powerctl等也不行,权限也正确是755。
后来用getprop 抓取系统属性,发现加载的服务很少,不像是加载init.rc的表现。猜测是某些服务没有运行导致reboot等命令无法执行。但是执行了kpoc_charger,说明了肯定加载了init.charging.rc,最后试验无数,大胆在init.charging.rc中加载init.rc,OK,成功了。
具体如下,修改init.charging.rc,增加import /init.rc 这一句。
# Copyright (C) 2012 The Android Open Source Project
#
# IMPORTANT: Do not create world writable files or directories.
# This is a common source of Android security bugs.
#
#import /init.${ro.hardware}.rc
import /init.rc
import /init.trace.rc
#import init.xlog.rc
然后按楼上的方法修改kpoc_charger,改成成脚本添加reboot命令就可以了。
用这个方法需要替换boot.img,有一定风险,没有经验的朋友慎用。
另外,下载固件时时只需下载boot.img就可以了,如图