Android调试底层服务

  之前调试过VOLD,调试起来极为麻烦,稍微改一点就要编译整个系统,然后烧写system.img。极为耗时,经过多时经验总结出来了类似调试应用程序的调试方法,高效快速。这里先还以VOLD为例子。
  
  修改源码后单独编译VOLD:
  $ mmm system/vold

然后执行以下脚本,就可以直接观察现象了:
#!/bin/sh
# vold 调试脚本
# 作者:kangear
# 2014-02-09

# build vold
# mmm system/vold  &&

# send vold
# sz out/target/product/rk30sdk/system/bin/vold  &&

# push
adb push /root/ybk-hw/ybkMisc/out/target/product/rk30sdk/system/bin/vold /system/bin &&

# chmod
adb shell busybox chmod 777 /system/bin/vold   &&

# stop vold
adb shell setprop ctl.stop vold  &&

# start vold
adb shell setprop ctl.start vold

#!/bin/sh
# services 调试脚本
# 作者:kangear
# 2014-02-09

# build vold
# mmm frameworks/base/services/java/ &&
/root/remount.sh &&
# send vold
# sz out/target/product/rk30sdk/system/bin/vold  &&

# push
adb push /root/ybk-hw/ybkMisc/out/target/product/rk30sdk/system/framework/services.jar /system/framework/ &&

# reboot
adb shell reboot

20140625更:

最为方便的是adb sync来同步代码,其中启动和关闭部分还算有用。adb push那些太麻烦了。

20141226更:

# author: kangear
# data  : 2014-12-26

### sync file between PC and target device
# system dir
adb -p /out/to/path sync system
# data dir
adb -p /out/to/path sync data

### build modules
# frameworks
make framework-res && make framework && make services && make android.policy
# vold
mmm system/vold
# service jni
mmm frameworks/base/services/jni
# service java
mmm frameworks/base/services/java
# core
mmm frameworks/base
# hardware modules
mmm hardware/libhardware/modules/

### restart xxx
# whole android os(about kernel/bootloader)
adb shell reboot
# only android os without kernel/bootloader/c_service(vold/..)
adb shell "stop && start"
# only vold
adb shell "setprop ctl.stop vold && setprop ctl.start vold"

# ...



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

袁保康

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值