2024年1月4日发(作者:风材)
第一章 搭建开发环境
“工欲善其事,必先利其器” 。在开始定制 MIUI ROM 之前,我们需要搭建好必要的开
发环境。
本教程的主旨是如何基于原厂ROM修改。 我们所涉及的修改理论上说是不需要源码的,
对源码开发感兴趣的可以参照 。对于 ROM 开发者来说,我们建议
你下载一份 google 发布的 android 源代码,这不是必需的,但是对于理解排查 ROM 适配中
的一些错误有很大帮助。
1. 操作系统
定制 MIUI ROM 所涉及的技术本身对操作系统没有特殊要求,Windows,Linux 和 Mac
系统都可以。但是 patchrom 项目是基于 Linux 开发的,确切的说,是基于 Ubuntu 开发的,
我们推荐使用 Ubuntu10 以上的版本。
2. 安装 Android SDK
本节简要介绍如何在 Ubuntu 系统上安装 Android SDK。Windows 和
Mac 用户请参照
/sdk/
2.1 安装 JDK
首先需要安装 Java 开发工具包,本文中统一约定$表示 Terminal 中
的命令提示符,其后
的文字表示输入的命令。
$ sudo add-apt-repository "deb /
lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk
2.2 下载 Android SDK 包
从以下地址下载 Android SDK 包
/android/android-sdk_,
解压到你的 home 目录下,假定解压后的目录为/home/patcher/android-sdk-linux。
接下来编辑 home 目录下的.bashrc 文件,修改 PATH 环境变量:
export
PATH=~/android-sdk-linux/platform-tools:~/android-sdk-linux/toolsPATH。
运行命令. .bashrc 来使对 PATH 环境变量的修改生效。
$ . ~/.bashrc
2.3 安装
运行命令 android 来启动 Android SDK Manager
$ android
启动结果如下图所示:
选中 Android SDK Tools 和 Android SDK
选中 Android SDK Tools 和 Android SDK Platform-tools,然后点击安装,接下来跟随应
用程序的说明进行安装。这一步完成后,我们所需要的 Android SDK 也安装完毕了。
注:在 /sdk/ 网页中,大家会看到需要安装 Eclipse,
定制 MIUI ROM 不需要安装 Eclipse,这个是开发 Android 程序所需
要的,但是强烈建议你
有 Android 程序开发基础。
2.4 adb
Android SDK 中对我们最重要的工具是 adb(android debug bridge)。
在移植 MIUI ROM 过
程中,最常用的命令是 adb logcat,该命令会打印出详细的调试信息,帮助我们定位错误。
为了验证 adb 是否工作,同时也是验证上述的步骤是否成功,打开手机中的系统设置,
选择应用程序—开发, 确保选中 “USB 调试” , 然后用 USB 线连接你的手机, 在 Ubuntu Shell
下运行命令 adb devices,如果显示和下面的信息类似,恭喜你,adb 可以识别你的手机了。
List of devices attached
304D1955996BE28E
device
注意:
(1) 在 Windows 下,必须安装手机相应的驱动才能成功识别手机。
(2) 在 Ubuntu 下,有可能会提示“no such permissi**” ,这个时候有两种办法,第一种是以
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
。 。 。
找到手机对应的那一行,记录下 04e8:685e,这个分别表示该设备的
vendorId 和
productId。如果不确定手机对应的是哪一行,可以在连上手机前后运行 lsusb,找
到区别的那一行。
b)
在/etc/udev/rules.d 目录下新建一个文件 。编辑如下:
SUBSYSTEMS=="usb",
ATTRS{idVendor}="04e8",
ATTRS{idProduct}="685e",
MODE="0666", OWNER="登录用户名"
c)
重启 usb 服务,sudo restart udev,重连手机。
3. patchrom 项目
下面介绍 patchrom 的目录结构以及各目录的作用。
�
android: 该目录下有 2 个子目录:system 和 src。其中 src 目录和将要介绍的 miui/src 目
录是一对一的关系。 android/src 是 google 发布的 android 源码,
miui/src 是 miui 在 google
源码基础上所做的修改。为了节省空间,在这两个目录,我们只放 miui
修改过的文件,
要下载完整的 android 源码,请参照
/source/。
system 目录下存放的是由 google 发布的 android 源码编译而成的三个 jar 包:
, 和 。 这些 jar 包的作用在之后的章节会详细阐
述。
�
build: 该目录是一些与编译相关的脚本。
�
tools: 该目录存放一些工具程序和脚本, 在定制 ROM 和编译过程中需要使用这些程序。
�
miui: 该目录下有 2 个子目录:system 和 src。system 目录下存放
的是由 miui 源代码编
译后的部分文件,这些文件是我们定制 MIUI ROM 所需要用到的所有文件。之后的章
节会详细阐述。
�
JY-G2: 针对每一个要定制的机型,创建一个单独的目录。该目录存放的是和JY-G2相关的一些修改和文件。之后的章节会以 JY-G2为例详细阐述。
接 下 来 我 们 开 始 编 译 生 成 JY-G2 的 定 制 MIUI ROM , 假
定 当 前 目 录 为
/home/patcher/patchrom 目录,
$ . build/
$ cd JY-G2
$ make zipfile
以上命令运行完毕后,在 JY-G2 目录下会生成一个.build 子目录,该子目录下的
MIUI_ 文件即是我们发布的 JY-G2 刷机包。
2024年1月4日发(作者:风材)
第一章 搭建开发环境
“工欲善其事,必先利其器” 。在开始定制 MIUI ROM 之前,我们需要搭建好必要的开
发环境。
本教程的主旨是如何基于原厂ROM修改。 我们所涉及的修改理论上说是不需要源码的,
对源码开发感兴趣的可以参照 。对于 ROM 开发者来说,我们建议
你下载一份 google 发布的 android 源代码,这不是必需的,但是对于理解排查 ROM 适配中
的一些错误有很大帮助。
1. 操作系统
定制 MIUI ROM 所涉及的技术本身对操作系统没有特殊要求,Windows,Linux 和 Mac
系统都可以。但是 patchrom 项目是基于 Linux 开发的,确切的说,是基于 Ubuntu 开发的,
我们推荐使用 Ubuntu10 以上的版本。
2. 安装 Android SDK
本节简要介绍如何在 Ubuntu 系统上安装 Android SDK。Windows 和
Mac 用户请参照
/sdk/
2.1 安装 JDK
首先需要安装 Java 开发工具包,本文中统一约定$表示 Terminal 中
的命令提示符,其后
的文字表示输入的命令。
$ sudo add-apt-repository "deb /
lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk
2.2 下载 Android SDK 包
从以下地址下载 Android SDK 包
/android/android-sdk_,
解压到你的 home 目录下,假定解压后的目录为/home/patcher/android-sdk-linux。
接下来编辑 home 目录下的.bashrc 文件,修改 PATH 环境变量:
export
PATH=~/android-sdk-linux/platform-tools:~/android-sdk-linux/toolsPATH。
运行命令. .bashrc 来使对 PATH 环境变量的修改生效。
$ . ~/.bashrc
2.3 安装
运行命令 android 来启动 Android SDK Manager
$ android
启动结果如下图所示:
选中 Android SDK Tools 和 Android SDK
选中 Android SDK Tools 和 Android SDK Platform-tools,然后点击安装,接下来跟随应
用程序的说明进行安装。这一步完成后,我们所需要的 Android SDK 也安装完毕了。
注:在 /sdk/ 网页中,大家会看到需要安装 Eclipse,
定制 MIUI ROM 不需要安装 Eclipse,这个是开发 Android 程序所需
要的,但是强烈建议你
有 Android 程序开发基础。
2.4 adb
Android SDK 中对我们最重要的工具是 adb(android debug bridge)。
在移植 MIUI ROM 过
程中,最常用的命令是 adb logcat,该命令会打印出详细的调试信息,帮助我们定位错误。
为了验证 adb 是否工作,同时也是验证上述的步骤是否成功,打开手机中的系统设置,
选择应用程序—开发, 确保选中 “USB 调试” , 然后用 USB 线连接你的手机, 在 Ubuntu Shell
下运行命令 adb devices,如果显示和下面的信息类似,恭喜你,adb 可以识别你的手机了。
List of devices attached
304D1955996BE28E
device
注意:
(1) 在 Windows 下,必须安装手机相应的驱动才能成功识别手机。
(2) 在 Ubuntu 下,有可能会提示“no such permissi**” ,这个时候有两种办法,第一种是以
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
。 。 。
找到手机对应的那一行,记录下 04e8:685e,这个分别表示该设备的
vendorId 和
productId。如果不确定手机对应的是哪一行,可以在连上手机前后运行 lsusb,找
到区别的那一行。
b)
在/etc/udev/rules.d 目录下新建一个文件 。编辑如下:
SUBSYSTEMS=="usb",
ATTRS{idVendor}="04e8",
ATTRS{idProduct}="685e",
MODE="0666", OWNER="登录用户名"
c)
重启 usb 服务,sudo restart udev,重连手机。
3. patchrom 项目
下面介绍 patchrom 的目录结构以及各目录的作用。
�
android: 该目录下有 2 个子目录:system 和 src。其中 src 目录和将要介绍的 miui/src 目
录是一对一的关系。 android/src 是 google 发布的 android 源码,
miui/src 是 miui 在 google
源码基础上所做的修改。为了节省空间,在这两个目录,我们只放 miui
修改过的文件,
要下载完整的 android 源码,请参照
/source/。
system 目录下存放的是由 google 发布的 android 源码编译而成的三个 jar 包:
, 和 。 这些 jar 包的作用在之后的章节会详细阐
述。
�
build: 该目录是一些与编译相关的脚本。
�
tools: 该目录存放一些工具程序和脚本, 在定制 ROM 和编译过程中需要使用这些程序。
�
miui: 该目录下有 2 个子目录:system 和 src。system 目录下存放
的是由 miui 源代码编
译后的部分文件,这些文件是我们定制 MIUI ROM 所需要用到的所有文件。之后的章
节会详细阐述。
�
JY-G2: 针对每一个要定制的机型,创建一个单独的目录。该目录存放的是和JY-G2相关的一些修改和文件。之后的章节会以 JY-G2为例详细阐述。
接 下 来 我 们 开 始 编 译 生 成 JY-G2 的 定 制 MIUI ROM , 假
定 当 前 目 录 为
/home/patcher/patchrom 目录,
$ . build/
$ cd JY-G2
$ make zipfile
以上命令运行完毕后,在 JY-G2 目录下会生成一个.build 子目录,该子目录下的
MIUI_ 文件即是我们发布的 JY-G2 刷机包。