1.   位置
公共控件的代码在源码目录android/frameworks/base/core/java/android/
后台服务的代码在源码目录android/frameworks/base/services/java/android/server

2.   修改
修改其中代码并执行mm编译
形如:
$ cd frameworks/base/services/java/com/android/server/
$ vi IntentResolver.java
$ mm

3.   替换
编译后用生成的包替换手机上/system/framework/中相应的包
编译后生成的文件见提示
形如:
$ cd out/target/product/general/system/framework/
$ adb push services.jar /system/framework/

4.   使新的包生效

a)          方法1:
重启手机后生效

b)         方法2:
杀死system_server进程,使系统重新启动,这种方法速度快

$ ps
找到system_server对应的pid, 假设它为1219
$ kill 1219

5.   注意

a)          绝大多数情况下都能成功,不过最好在替换前备份原有jar

b)         如果替换重要的包使机器不能启动到桌面了,可以通过重新打包system.img,然后重新烧写(fastboot)到系统中解决此问题,注意system.img的大小
$ ./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烧写方式重启手机

 

 

更多相关文章

  1. Android ROM研究---如何在ubuntu下下载姜饼(Gingerbread)源代码
  2. Android Studio系列(三)Version Control I 使用内置版本管理工具管
  3. Android工具箱之文件目录
  4. android新闻App源码、仿微信源码、地图音乐源码等
  5. 【Android】 基于XMPP Smack框架 开发QQ教程:目录
  6. android企业级商城源码、360°全景图VR源码、全民直播源码等
  7. Android斗地主源码实现

随机推荐

  1. Flutter 1.0 正式版: Google 的跨平台 UI
  2. Kotlin学习之路(1)环境介绍及安装
  3. Android(安卓)API Guides---Text and Inp
  4. Android中进程间通信(IPC)方式总结
  5. Android(安卓)Watchdog(看门狗)分析
  6. 优雅的构建 Android(安卓)项目之磁盘缓存
  7. Android中Activity生命周期说明及使用
  8. android开发过程Debug包签名问题
  9. java/android 设计模式学习笔记(18)---中介
  10. 【Android】日期拾取器、时间拾取器与菜