1.
位置
2.
修改
3.
替换
4.
使新的包生效
a)
方法
1: b)
方法
2: 5.
注意
a)
绝大多数情况下都能成功,不过最好在替换前备份原有
jar
包
b)
如果替换重要的包使机器不能启动到桌面了,可以通过重新打包
system.img
,然后重新烧写(
fastboot
)到系统中解决此问题,注意
system.img
的大小
公共控件的代码在源码目录
android/frameworks/base/core/java/android/
中
后台服务的代码在源码目录
android/frameworks/base/services/java/android/server
中
修改其中代码并执行
mm
编译
形如
:
$ cd frameworks/base/services/java/com/android/server/
$ vi IntentResolver.java
$ mm
编译后用生成的包替换手机上
/system/framework/
中相应的包
编译后生成的文件见提示
形如
:
$ cd out/target/product/general/system/framework/
$ adb push services.jar /system/framework/
重启手机后生效
杀死
system_server
进程,使系统重新启动,这种方法速度快
$ ps
找到
system_server
对应的
pid,
假设它为
1219
$ kill 1219
$
./out/host/linux-x86/bin/mkyaffs2image -f
out/target/product/generic/system
out/target/product/generic/obj/PACKAGING/systemimage_unopt_intermediates/system.img
$
out/host/linux-x86/bin/acp -fpt
out/target/product/generic/obj/PACKAGING/systemimage_unopt_intermediates/system.img
out/target product/generic/system.img
$ fastboot flash system system.img
此时用
fastboot
烧写方式重启手机