怎样基于android4.4.2的源代码和android-4.3.1_r1的驱动编译I9250的ROM

怎样基于android4.4.2的源代码和android-4.3.1_r1的驱动编译I9250的ROM

怎样基于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为:
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发文,我基本不用图片,原因是图片常常被弄丢,最后反而影响阅读,这里破例一次,上图!
<span>怎样基于android4.4.2的源代码和android-4.3.1_r1的驱动编译I9250的ROM</span>

图上显示Android版本号为4.4.2及其它版本号信息。

更新日期:2014-5-4 创建
更新日期:2014-5-5 调整第五步和第六步的顺序,添加�对权限操作的说明。


转载请注明出处:
作者:雨水,地址:
http://blog.csdn.net/gobitan/article/details/25003141
 

參考资料:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/119112.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 列存储、行存储

    列存储、行存储一、定义 1.1定义Sybase在2004年左右就推出了列存储的SybaseIQ数据库系统,主要用于在线分析、数据挖掘等查询密集型应用。列存储,缩写为DSM,相对于NSM(N-arystoragemodel),其主要区别在于:DSM将所有记录中相同字段的数据聚合存储;NSM将每条记录的所有字段的数据聚合存储;其实列存储并不是什么新概念,

  • 如何用51单片机控制步进电机运动「建议收藏」

    如何用51单片机控制步进电机运动「建议收藏」本来接触单片机挺久了的,但是一直只是停留在非常初级的认识阶段,本科的时候上过几门课,但是从来没有自己捣鼓过单片机,这次突然来了兴趣,感觉一下子学到了好多东西,在这里好好整理一下。这篇文章只适合于入门阶段的小白阅读,高手请绕道。12年年初的时候购买了一套普中科技的“单片机开发试验仪”,好多次想好好学学,结果每一次都半途而废,主要原因还是周围的人都不会用,有问题都不知道找谁问,结果锁到箱子里一直到现在。

  • 英文搜索网站_dfs树

    英文搜索网站_dfs树给定一个 m x n 二维字符网格 board 和一个单词(字符串)列表 words,找出所有同时在二维网格和字典中出现的单词。单词必须按照字母顺序,通过 相邻的单元格 内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母在一个单词中不允许被重复使用。示例 1:输入:board = [[“o”,”a”,”a”,”n”],[“e”,”t”,”a”,”e”],[“i”,”h”,”k”,”r”],[“i”,”f”,”l”,”v”]], words = [“oath”,

  • 20210225-1 Python错误与异常「建议收藏」

    20210225-1 Python错误与异常「建议收藏」一、什么是异常Python错误与异常什么是异常>异常是一个事件,该事件会在程序执行过程中发生,影响程序的正常执行。一般情况下,在Python无法正常处理程序时就会发生异常。异常是Pyth

  • MySQL 索引

    MySQL 索引MySQL 索引

  • Centos7关闭selinux命令「建议收藏」

    关闭selinux步骤0x01用vi修改selinux的配置文件vi/etc/selinux/config0x02修改#SELINUX=enforcing为SELINUX=disabled这里就不修改了,注释掉好了,再直接复制修改为SELINUX=disabledselinux的工作模式enforcing强制模式permissive宽容模式disabled关闭什么是selinux?selinux是Linux的一种安全子系统 Linux中的权限管..

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号