adb remout 只能remount system
mount -o rw,remount -t ext4 /
这样可以修改/ 根目录下面所有的文件 包括system,sbin
mm
push healthd sbin/ 然后重启,发现没起作用。 可以push 进去后,然后ps |grep healthd 然后kill 掉进程。系统将会从新启动healthd 服务。
电池状态变化慢:
1: kernel 确认: power_supply_sys.c 里面是否正常上报数据:
2: system 确认: (1): healthd 确认: healthd.cpp 确认uevent_event函数能后正常响应,注healthd 有两种更新电池状态,一个是定时器检测,一个是uevent_event事件更新。有一项目发现插拔电源后电池更新很慢,后来发现在healthd 代码里面加了过滤,只判断了"ac"电源,过滤了USB的充电状态更新。
3: healthd: battery l=86 v=4020 t=0.0 h=2 st=2 c=94 chg=u 2016-01-02 12:25:38.933788463 UTC 此类的打印信息就是电池状态更新的log
快充QC2.0 解读:http://www.chongdiantou.com/thread-1417-1-1.html
usb bc1.1 协议 : http://blog.csdn.net/zhaoguowei2010/article/details/8970319
MTK 充电器检测代码:
先检测是不是苹果2.1A的充电器:
然后hw_bc11_setA2 ,设置DP 上拉0.6V ,检测D-电压,如果为0 : 则STANDARD_HOST 充电。如果为1(也就是DM 为0.6V),则再次判断
hw_bc11_setB2: 设置DP 上拉逻辑高,检测D-电压,如果为0(DM为0.6v),则可以知道为charging down-strean port, 配置为CHARGING_HOST,可以与pc 数据连接而且支持大电流充电。 如果检测DM 为逻辑高,则DM与DP 短接,所以为STANDARD_CHARGER ,标准充电器!