没有合适的资源?快使用搜索试试~ 我知道了~
-MIUI_ROM移植定制教程 -本教程着重于如何定制MIUI ROM,但是其中涉及 到的技术和概念是通用的,适用于任何ROM 的定制。
资源推荐
资源详情
资源评论
MIUI
MIUI
MIUI
MIUI ROM
ROM
ROM
ROM 定制教程
MIUI ROM 定制教程 ....................................................................................................................... 1
序言 ................................................................................................................................................... 2
第一章 搭建开发环境 ..................................................................................................................... 3
1. 操作系统 .............................................................................................................................. 3
2. 安装 Android SDK .............................................................................................................. 3
2.1 安装 JDK .................................................................................................................... 3
2.2 下载 A ndroid SDK 包 ................................................................................................ 3
2.3 安装 ............................................................................................................................ 4
2. 4 adb ............................................................................................................................... 4
3. patchrom 项目 ...................................................................................................................... 5
第二章 认识 A ndroid 手机 .............................................................................................................. 6
1. bootloader .............................................................................................................................. 6
2. 正常启动 .............................................................................................................................. 7
3. System 分区 .......................................................................................................................... 8
4. Zygote(app_process) ........................................................................................................... 10
5. data 和 cache 分区 .............................................................................................................. 10
6. 小结 .................................................................................................................................... 10
第三章 寻找合适的原厂 ROM ..................................................................................................... 11
1. 熟悉移植的机型 ................................................................................................................ 11
1.1 逛论坛刷机 .............................................................................................................. 11
1.2 合适的原厂 ROM .................................................................................................... 11
1 .3 adb logcat .......................................................................................................................... 12
2. 修改 boot.img .................................................................................................................... 12
3. deodex ................................................................................................................................. 14
第四章 反编译 ............................................................................................................................... 14
1. 反编译 ................................................................................................................................ 15
2. AndroidManifest.xml .......................................................................................................... 15
3. 资源 .................................................................................................................................... 16
4. smali .................................................................................................................................... 18
第五章 移植 MIUI F ramework ...................................................................................................... 20
1. 为什么使用代码插桩 ........................................................................................................ 20
2. 移植规范 ............................................................................................................................ 20
2.1 android ....................................................................................................................... 20
2.2 miui ............................................................................................................................ 21
2.3 i9100 .......................................................................................................................... 21
3. 移植资源 ............................................................................................................................ 22
4. 修改 smali .......................................................................................................................... 22
4.1 比较差异 .................................................................................................................. 22
4.2 直接替换 .................................................................................................................. 23
4.3 线性代码 .................................................................................................................. 23
4. 4 条件判断 .................................................................................................................. 23
4. 5 逻辑推理 .................................................................................................................. 25
5. 建议 .................................................................................................................................... 26
第六章 移植 MIUI APP ................................................................................................................. 27
1. MIUI APP 一览 .................................................................................................................. 27
2. 一个遗憾:打电话程序 .................................................................................................... 27
3. 一个遗憾引发的问题 ........................................................................................................ 28
4. 系统通知栏 ........................................................................................................................ 28
5. 其它程序 ............................................................................................................................ 29
第七章 制作刷机包 ....................................................................................................................... 29
1. 刷机包结构 ........................................................................................................................ 29
2. updater-srcript 例解 ............................................................................................................ 30
3. 制作刷机包 ........................................................................................................................ 35
序言
为了帮助广大的 MIUI 发烧友将 MIUI ROM 移植到自己所喜爱的机型上 , MIUI 开发组
创建并开源了 patchrom 项目 , 同时发布此配套教程 。 该教程主要探讨的是如何在原厂 RO M
的基础上定制出自己的 MIUI ROM (原厂 ROM 指的是由手机生厂商发布的官方 ROM ,具
有最好的稳定性 ) ,这也是我们项目名称的由来(对已有的 ROM 作修改,类似于对软件 打
patch 的过程 , 因此称作 patchrom ) 。 虽然本教程着重于如何定制 MIUI ROM , 但是其中涉及
到的技术和概念是通用的,适用于任何 ROM 的定制。
要完全掌握此教程,你需要有 Linux 操作系统的使用经验,了解 Java 语言,有一定 的
A ndroid 编程经验最好。如果只是要修改资源(比如汉化等 ) ,基本上不需要有任何编程知
识。
本教程分成六个章节:
第一章 :搭建开发环境,简要的介绍如何准备必要的开发环境。
第二章 :认识 A ndroid 手机,从 ROM 开发者的角度来看 A ndroid 手机系统的结构。
第三章 :寻找合适的原厂 ROM , patchrom 项目是基于原厂 ROM 进行修改的,这一章
会介绍一些准则来判断什么是合适的 ROM 。
第四章 :反编译,介绍 apktool 工具和反编译的基础知识。
第五章 :移植 MIUI Framework ,讲述如何移植 MIUI 框架层的代码。
第六章 :移植 MIUI App ,讲述如何移植 MIUI 的应用程序。
第七章 :制作 ZIP 刷机包,讲述如何制作一个 ZIP 刷机包。
patchrom 项目网址: https://github.com/MiCode/PatchRom
你可以访问该网站下载到 patchrom 的所有代码,包括本教程。
第一章 搭建开发环境
“ 工欲善其事 , 必先利其器 ” 。 在开始定制 MIUI ROM 之前 , 我们需要搭建好必要的开
发环境。
本教程的主旨是如何基于原 厂 RO M 修改 。 我们所涉及的修改理论上说是不需要源码的
,
对源码开发感兴趣的可以参照 http://source.android.com 。对于 ROM 开发者来说,我们建议
你下载一份 google 发布的 android 源代码 , 这不是必需的 , 但是对于理解排查 ROM 适配中
的一些错误有很大帮助。
1.
1.
1.
1. 操作系统
操作系统
操作系统
操作系统
定制 MIUI ROM 所涉及的技术本身对操作系统没有特殊要求 , Windows , Linux 和 Ma c
系统都可以。但是 patchrom 项目是基于 Linux 开发的,确切的说,是基于 Ubuntu 开发的
,
我们推荐使用 Ubuntu 10 以上的版本。
2.
2.
2.
2. 安装
安装
安装
安装 Android
Android
Android
Android SDK
SDK
SDK
SDK
本节简要介绍如何在 Ubuntu 系统上安装 A ndroid SDK 。 W indows 和 Mac 用户请参 照
http://developer.android.com/sdk/installing.html
2.1
2.1
2.1
2.1 安装 JDK
JDK
JDK
JDK
首先需要安装 Java 开发工具包 , 本文中统一约定 $ 表示
T
erminal 中的命令提示符 , 其后
的文字表示输入的命令。
$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk
2.2
2.2
2.2
2.2 下载 A
A
A
A ndroid
ndroid
ndroid
ndroid SDK
SDK
SDK
SDK 包
从以下地址下载 A ndroid SDK 包 http://dl.google.com/android/android-sdk_r16-linux.tgz ,
解压到你的 home 目录下,假定解压后的目录为 /home/patcher/android-sdk-linux 。
接下来编辑 home 目录下的 .bashrc 文件,修改 PATH 环境变量:
export PATH=~/android-sdk-linux/platform-tools:~/android-sdk-linux/tools:$PATH 。
运行命令 . .bashrc 来使对
PA
TH 环境变量的修改生效。
$ . ~/.bashrc
2.3
2.3
2.3
2.3 安装
运行命令 android 来启动 A ndroid SDK Manager
$ android
启动结果如下图所示:
选中 Android SDK Tools 和 Android SDK Platform-tools ,然后点击安装,接下来跟随应
用程序的说明进行安装。这一步完成后,我们所需要的 Android SDK 也安装完毕了。
注:在 http://developer.android.com/sdk/installing.html 网页中,大家会看到需要安装 E clipse
,
定制 MIUI ROM 不需要安装 E clipse ,这个是开发 A ndroid 程序所需要的,但是强烈建议你
有 A ndroid 程序开发基础。
2.
2.
2.
2. 4
4
4
4 adb
adb
adb
adb
Android SDK 中对我们最重要的工具是 adb(android debug bridge) 。 在移植 MIUI ROM 过
程中,最常用的命令是 adb logcat ,该命令会打印出详细的调试信息,帮助我们定位错误。
为了验证 adb 是否工作,同时也是验证上述的步骤是否成功,打开手机中的系统设置
,
选择应用程序 — 开发 , 确保选中 “ USB 调试 ” , 然后用 USB 线连接你的手机 , 在 Ubuntu S hel l
下运行命令 adb devices ,如果显示和下面的信息类似,恭喜你, adb 可以识别你的手机了 。
List of devices attached
304D1955996BE28E device
注意:
(1) 在 W indows 下,必须安装手机相应的驱动才能成功识别手机。
(2) 在 Ubuntu 下 , 有可能会提示 “ no such permissions ” , 这个时候有两种办法 , 第一种是 以
root 的身份运行 adb 。第二种办法:
a) 运行 lsusb 命令,对于我的三星手机,输出如下:
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 098: ID 04e8:685e Samsung Electronics Co., Ltd
。 。 。
找到手机对应的那一行,记录下 04 e8:685e ,这个分别表示该设备的 vendorId 和
productId 。如果不确定手机对应的是哪一行,可以在连上手机前后运行 lsusb ,找
到区别的那一行。
b) 在 /etc/udev/rules.d 目录下新建一个文件 99-android.rules 。编辑如下:
SUBSYSTEMS =="usb", ATTRS{idVendor}="04e8", ATTRS{idProduct}="685e",
MODE="0666", OWNER=" 登录用户名 "
c) 重启 usb 服务, sudo restart udev ,重连手机。
3.
3.
3.
3. patchrom
patchrom
patchrom
patchrom 项目
项目
项目
项目
下面介绍 patchrom 的目录结构以及各目录的作用。
�
android: 该目录下有 2 个子目录 : system 和 src 。 其中 src 目录和将要介绍的 miui/src 目
录是一对一的关系 。 android/src 是 google 发布的 android 源码 , miui/src 是 miui 在 googl e
源码基础上所做的修改 。 为了节省空间 , 在这两个目录 , 我们只放 miui 修改过的文件
,
要下载完整的 android 源码,请参照 http://source.android.com/source/downloading.html 。
system 目录下存放的是由 google 发布的 android 源码编译而成的三个 jar 包 :
framework.jar, android.policy.jar 和 services.jar 。 这些 jar 包的作用在之后的章节会详细阐
述。
�
build: 该目录是一些与编译相关的脚本。
� tools: 该目录存放一些工具程序和脚本 , 在定制 ROM 和编译过程中需要使用这些程序 。
� miui: 该目录下有 2 个子目录: system 和 src 。 system 目录下存放的是由 miui 源代码编
译后的部分文件,这些文件是我们定制 MIUI ROM 所需要用到的所有文件。之后的章
节会详细阐述。
� i9100: 针对每一个要定制的机型 , 创建一个单独的目录 。 该目录存放的是和三星 i910 0
相关的一些修改和文件。之后的章节会以 i9100 为例详细阐述。
接下来我们开始编译生成 i9100 的定制 MIUI ROM ,假定当前目录为
/home/patcher/patchrom 目录,
$ . build/envsetup.sh
$ cd i9100
$ make zipfile
以上命令运行完毕后,在 i9100 目录下会生成一个 .build 子目录,该子目录下 的
MIUI_9100.zip 文件即是我们发布的 i9100 刷机包。
剩余34页未读,继续阅读
资源评论
conan蓝
- 粉丝: 1
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功