本地编译android4.4.2 Settings环境搭建记录
原文链接 http://www.rogerblog.cn/2015/04/16/e6-9c-ac-e5-9c-b0-e7-bc-96-e8-af-91android4-4-2-settings-e7-8e-af-e5-a2-83-e6-90-ad-e5-bb-ba-e8-ae-b0-e5-bd-95/
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。
最近在本地编译Settings环境的搭建上走了点弯路,现在记录一下,希望能帮到有需要的同学。
1.解除ADT对android内部API的使用限制:
进入 eclipse的plugins文件夹,找出名为com.android.ide.eclipse.adt_*.jar的文件。做一个备份(以防修改错了),另外复制一份改文件到一个单独的”experimental”文件夹,在那里进行字节码修改。修改*.jar为*.zip,解压文件到一个单独的文件夹,下面就是我所得到的:
进入到com/android/ide/eclipse/adt/internal/project子目录,找出AndroidClasspathContainerInitializer.class文件。
用notepad++ 打开,将”com/android/internal/**”替换为”com/android/internax/**”。
修改完后,保存文件,zip压缩文件夹,文件名和原始版本一样。然后重命名为.jar。替换原来的文件。重启ADT。
2.设置工程
根据Android.mk,找出需要的库文件,比如:
LOCAL_STATIC_JAVA_LIBRARIES := com.android.phone.common
在源码下找到out/target/common/obj/JAVA_LIBRARIES/com.android.phone.common_intermediates/classes.jar
,加入工程,其他需要的库也加入,直到编译正确。
一个一个加入,最后如图:
调整包的顺序至前面,最后如图:
其中有一个包含内部API的jar包,就是图中android4.4.2中的jar包,下载地址:
http://download.csdn.net/detail/baimingyong007/7979321
全部jar包下载地址:
http://download.csdn.net/detail/fly_o0o/8601019
导入后还有一两个内部类无法识别,注释即可。
完成后即可编译出APK
<!--more-->
3、使用目标系统的platform密钥来重新给apk文件签名。这步比较麻烦,
首先找到密钥文件,在我的Android源码目录中的位置
是”build\target\product\security”,如果android:sharedUserId=”android.uid.system”,公匙密匙分别是platform.pk8和platform.x509.pem两个文件,其他类似。
然后用Android提供的Signapk工具来签名,signapk.jar在out/host/linux-x86/framework下
用法为”java -jar signapk.jar platform.x509.pem platform.pk8 input.apk output.apk”,
例如:java -jar signapk.jar platform.x509.pem platform.pk8 Settings.apk Settings-signed.apk
文件名最好使用绝对路径防止找不到,input.apk和output.apk不要相同,会报错。
4、安装APK
运行
Adb root
Abd adb remount -o rw
Adb adb shell “cd /system/app;rm Settings.apk;”
将原装的Settings卸载,然后点击签名后的APK安装即可。
打开新安装的Settings,在ADT的DDMS进程列表中找到settings,打上绿色小虫子,是不是可以debug了?少年,开始战斗吧。