如何基于android4.4.2的源码和android-4.3.1_r1的驱动编译I9250的ROM
2014-05-04 21:21
459 查看
如何基于android4.4.2的源码和android-4.3.1_r1的驱动编译I9250的ROM
作者:雨水 2014-05-04 联系方式:dennis.hu.cd at gmail.com
说明:经过多番折腾,终于把自己编译的Android4.4.2的源代码成功地跑在我的三星Galaxy Nexus I9250手机上了。期间离不开一位外国朋友的帮助,也就是参考资料[1]的作者Sato Kensuke. 这里将过程记录下来,希望对大家有所帮助!
第一步:下载android-4.4.2_r2的源码
参见我前面的文章<基于Ubuntu 14.04 LTS编译Android4.4.2源代码>,地址:http://blog.csdn.net/gobitan/article/details/24367439
第二步:下载android-4.3.1_r1的device部分源码
由于我之前已经全部下载了android-4.3.1_r1的源码并编译成功运行到我的i9250手机上,具体参考我前面的文章<编译android-4.3.1_r源码并刷到自己的Galaxy Nexus I9250真机上>,地址:http://blog.csdn.net/gobitan/article/details/24792589。因此我是直接拷贝过去的。只下载指定目录源代码的方法是我估计的,未经测试(已于2014-5-5测试成功):
按照正常下载源代码的步骤,在执行repo sync之前,修改.repo/manifest.xml文件,将里面不需要的目录全部注释掉,这样同步的时候应该就只需要同步自己需要的目录了,全部下载源代码耗时耗空间。
第三步:替换及修改device部分源代码
1. 备份android-4.4.2_r2的device目录;
2. 用android-4.3.1_r1的device目录完全替换android-4.4.2_r2的device目录;
3. 修改诸多文件以使4.3的设备代码适配4.4的源代码,过程较为复杂,这里暂不详述;
第四步:下载i9250的官方驱动并重新编译
此步骤与我的<编译android-4.3.1_r源码并刷到自己的Galaxy Nexus I9250真机上>一文中的第三步完全一样,这里不详述. 参见地址:http://blog.csdn.net/gobitan/article/details/24792589
第五步:将编译好的img刷到i9250手机上
(1) 修改~/.bashrc中的环境变量ANDROID_PRODUCT_OUT为:
(2) 重新进入命令行,然后开始刷机
刷好之后,系统会自动重启。
第六步:增加ducati-m3.bin驱动
注:如果缺少这一步,会导致相机无法使用。
1. 下载img
进入https://developers.google.com/android/nexus/images#takju,然后选择4.3 (JWR66Y)的link下载。然后解压,找到里面的system.img文件,然后从该文件中提取出ducati-m3.bin。
2. 将其push到/vendor/firmware,参见如下:
(1) 以root身份启动adb
(2) 重新挂在文件系统获取写权限
(3) 将ducati-m3.bin驱动拷贝到手机的/vendor/firmware目录下
注:前两步的root和remount不可少,否则你是没有权限拷贝过去的。另外,在一般的产品手机是无法执行上述操作的,这里可以执行是因为我们build的是debug版本。
第七步:展示下劳动果实
在CSDN发文,我基本不用图片,原因是图片经常被弄丢,最后反而影响阅读,这里破例一次,上图!
图上显示Android版本为4.4.2及其他版本信息。
更新日期:2014-5-4 创建
更新日期:2014-5-5 调整第五步和第六步的顺序,增加对权限操作的说明。
转载请注明出处:作者:雨水,地址:http://blog.csdn.net/gobitan/article/details/25003141
参考资料:
1. https://github.com/kensuke/How-to-Midracast-on-AOSP
作者:雨水 2014-05-04 联系方式:dennis.hu.cd at gmail.com
说明:经过多番折腾,终于把自己编译的Android4.4.2的源代码成功地跑在我的三星Galaxy Nexus I9250手机上了。期间离不开一位外国朋友的帮助,也就是参考资料[1]的作者Sato Kensuke. 这里将过程记录下来,希望对大家有所帮助!
第一步:下载android-4.4.2_r2的源码
参见我前面的文章<基于Ubuntu 14.04 LTS编译Android4.4.2源代码>,地址:http://blog.csdn.net/gobitan/article/details/24367439
第二步:下载android-4.3.1_r1的device部分源码
由于我之前已经全部下载了android-4.3.1_r1的源码并编译成功运行到我的i9250手机上,具体参考我前面的文章<编译android-4.3.1_r源码并刷到自己的Galaxy Nexus I9250真机上>,地址:http://blog.csdn.net/gobitan/article/details/24792589。因此我是直接拷贝过去的。只下载指定目录源代码的方法是我估计的,未经测试(已于2014-5-5测试成功):
按照正常下载源代码的步骤,在执行repo sync之前,修改.repo/manifest.xml文件,将里面不需要的目录全部注释掉,这样同步的时候应该就只需要同步自己需要的目录了,全部下载源代码耗时耗空间。
第三步:替换及修改device部分源代码
1. 备份android-4.4.2_r2的device目录;
2. 用android-4.3.1_r1的device目录完全替换android-4.4.2_r2的device目录;
3. 修改诸多文件以使4.3的设备代码适配4.4的源代码,过程较为复杂,这里暂不详述;
第四步:下载i9250的官方驱动并重新编译
此步骤与我的<编译android-4.3.1_r源码并刷到自己的Galaxy Nexus I9250真机上>一文中的第三步完全一样,这里不详述. 参见地址:http://blog.csdn.net/gobitan/article/details/24792589
第五步:将编译好的img刷到i9250手机上
(1) 修改~/.bashrc中的环境变量ANDROID_PRODUCT_OUT为:
export ANDROID_PRODUCT_OUT=/home/dennis/devenv/aosp/out/target/product/maguro
(2) 重新进入命令行,然后开始刷机
dennis@dubuntu1404:~$ adb devices List of devices attached 0146A0D00600900B device dennis@dubuntu1404:~$ adb reboot bootloader dennis@dubuntu1404:~$ fastboot flashall -w < waiting for device > -------------------------------------------- Bootloader Version...: PRIMEMD04 Baseband Version.....: I9250XXLJ1 Serial Number........: 0146A0D00600900B -------------------------------------------- checking product... OKAY [ 0.007s] sending 'boot' (4472 KB)... OKAY [ 0.587s] writing 'boot'... OKAY [ 0.681s] sending 'recovery' (5020 KB)... OKAY [ 0.659s] writing 'recovery'... OKAY [ 0.798s] erasing 'system'... OKAY [ 0.015s] sending 'system' (264925 KB)... OKAY [ 34.379s] writing 'system'... OKAY [ 30.739s] erasing 'userdata'... OKAY [ 0.418s] formatting 'userdata' partition... Creating filesystem with parameters: Size: 14539534336 Block size: 4096 Blocks per group: 32768 Inodes per group: 8144 Inode size: 256 Journal blocks: 32768 Label: Blocks: 3549691 Block groups: 109 Reserved block group size: 871 Created filesystem with 11/887696 inodes and 97200/3549691 blocks sending 'userdata' (137559 KB)... writing 'userdata'... OKAY [ 28.220s] erasing 'cache'... OKAY [ 0.016s] formatting 'cache' partition... Creating filesystem with parameters: Size: 452984832 Block size: 4096 Blocks per group: 32768 Inodes per group: 6912 Inode size: 256 Journal blocks: 1728 Label: Blocks: 110592 Block groups: 4 Reserved block group size: 31 Created filesystem with 11/27648 inodes and 3566/110592 blocks sending 'cache' (8832 KB)... writing 'cache'... OKAY [ 2.970s] rebooting... finished. total time: 99.523s dennis@dubuntu1404:~$
刷好之后,系统会自动重启。
第六步:增加ducati-m3.bin驱动
注:如果缺少这一步,会导致相机无法使用。
1. 下载img
进入https://developers.google.com/android/nexus/images#takju,然后选择4.3 (JWR66Y)的link下载。然后解压,找到里面的system.img文件,然后从该文件中提取出ducati-m3.bin。
2. 将其push到/vendor/firmware,参见如下:
(1) 以root身份启动adb
dennis@dubuntu1404:~$ adb root restarting adbd as root
(2) 重新挂在文件系统获取写权限
dennis@dubuntu1404:~$ adb remount remount succeeded
(3) 将ducati-m3.bin驱动拷贝到手机的/vendor/firmware目录下
dennis@dubuntu1404:~$ adb push ducati-m3.bin /vendor/firmware 3772 KB/s (4515868 bytes in 1.168s)
注:前两步的root和remount不可少,否则你是没有权限拷贝过去的。另外,在一般的产品手机是无法执行上述操作的,这里可以执行是因为我们build的是debug版本。
第七步:展示下劳动果实
在CSDN发文,我基本不用图片,原因是图片经常被弄丢,最后反而影响阅读,这里破例一次,上图!
图上显示Android版本为4.4.2及其他版本信息。
更新日期:2014-5-4 创建
更新日期:2014-5-5 调整第五步和第六步的顺序,增加对权限操作的说明。
转载请注明出处:作者:雨水,地址:http://blog.csdn.net/gobitan/article/details/25003141
参考资料:
1. https://github.com/kensuke/How-to-Midracast-on-AOSP
相关文章推荐
- 怎样基于android4.4.2的源代码和android-4.3.1_r1的驱动编译I9250的ROM
- 编译android-4.3.1_r源码并刷到自己的Galaxy Nexus I9250真机上
- 编译android-4.3.1_r源码并刷到自己的Galaxy Nexus I9250真机上
- Android源码下载以及编译自己的ROM
- 如何将Android应用程序编译至image/rom中
- Android拓展系列(5)--CyanogenMod源码下载和编译(Android ROM定制基础篇)
- Android源码的编译(4.4.2)
- Android 源码如何编译调试
- Android源码编译 ViVo Xplay2.17.3 最新官方固件/自动语音相机/固件root/官方系统优化/支持OTA/稳定省电ROM
- Android拓展系列(5)--CyanogenMod源码下载和编译(Android ROM定制基础篇)
- 如何下载并编译Android 4.0内核源码Goldfish(图文)
- Android 如何编写基于编译时注解的项目
- 从android-4.1.2_r1源码上编译Package/apps时不生成odex
- 如何下载Android源码(非常详细,含自动恢复下载,编译,运行模拟器说明)
- 编译android-4.3.1_r源代码并刷到自己的Galaxy Nexus I9250真机上
- 代码如何在android源码下编译
- 如何在32位ubuntu11.10 下编译android 4.0.1源码和goldfish内核
- Android 第三方ROM CyanogenMod 源码下载,编译,刷机
- 在Android源码中如何吧so库打包编译进入apk, 集成第三方库(jar和so库)
- Android拓展系列(5)--CyanogenMod源码下载和编译(Android ROM定制基础篇)