开发者平台 > 详情

如何自己编译 ZUK Z1 CM 12.1 ROM包发布时间:2015.12.08 04:12

大家都知道ZUK Z1的海外版预装的是美国知名第三方手机ROM制作团队Cyanogenmod为之量身打造的ROM,大家可以在ZUK社区论坛(bbs.zuk.cn)里下载到官方发布的CM ROM版本,同时也可以找到别的高手自己修改过的基于CM版本的ROM。CM的ROM很接近原生的Android系统,受到很多人的喜爱,那么我们能不能自己动手编译一个Z1的CM ROM呢?答案是肯定的。Cyanogenmod的source code都是发布到github开源的,任何人都可以免费下载,我们完全可以基于源代码编译出完整的ROM包。


本文将提供详细的步骤,帮助您一步一步制作出自编译的ROM。

本文参考了CM官方wiki的指导,您也可以访问http://wiki.cyanogenmod.org/w/Build_for_ham获取更多的信息。

本文假设您已经安装好了Android SDK并配置好了编译环境,如果还没有的话,请参考Android的官方网站。

https://developer.android.com/sdk/installing/index.html

http://source.android.com/source/initializing.html


下载CM12.1源代码并编译


安装repo命令

$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo


下载代码

$ repo init -u https://github.com/CyanogenMod/android.git -b cm-12.1

$ repo sync -j4 -c

提示:-j4表示同时启动4个线程下载代码,你可以依照电脑的CPU核数指定线程数,-c表示只下载当前指定的分支。代码下载需要很长的时间,这两个选项可以大大缩短下载时间。


准备Z1相关的代码

代码下载成功后,切换到源代码的根目录,输入下面的命令

$ source build/envsetup.sh
$ breakfast ham

上面breakfast命令的参数ham是ZUK Z1在CM代码库中的product code,CM已经在github上发布了Z1的设备相关代码,请参考https://github.com/CyanogenMod/android_device_zuk_ham。breakfast命令将自动在git库中找到并下载它,并将它添加到本地的manifest中,以便在后续的同步代码(执行repo sync)操作中包含它。


提取Z1二进制文件(proprietary blobs)

用USB线连接Z1和电脑,确保adb正常工作,切换到device/zuk/ham目录下,运行脚本

$ ./extract-files.sh

脚本运行成功后,编译ROM所需的二进制文件将会被保存到system/vendor/zuk目录下,并生成相应的makefile。

提示:如果提取不成功,您也可以点击这里下载压缩包并把它解压缩到源代码的system目录下。


启动编译

$ croot
$ brunch ham

提示:缺省编译出来的是userdebug版本,如果您需要编译user版本可以使用 $ brunch cm_ham-user



安装CM ROM到Z1手机


编译成功后可以使用命令$ cd $OUT切换到out目录查看,recovery.img是CM的Recovery程序,而cm-12.1-yyyymmdd-UNOFFICIAL-ham.zip就是CM ROM安装包,注意文件名中的yyyymmdd是你执行编译的日期。


安装Recovery

请确保您的电脑上的fastbootadb能正常工作。

  1. 使用USB线连接Z1和电脑
  2. 电脑上打开一个终端,使用下面命令重启Z1到fastboot模式
    adb reboot bootloader
    或者您也可以在关机状态下同时按住音量上下键并插入USB线启动到fastboot模式
  3. 使用fastboot命令下载CM Recovery
    fastboot flash recovery your_recovery_image.img
  4. 下载完成后切换到Recovery模式,可以在关机状态下同时按住音量上下键开机进入


安装CM ROM

在Recovery界面选菜单"Apply update" -> "Apply from ADB",使用USB线连接Z1和电脑,并在电脑终端输入

$ adb sideload cm-12.1-yyyymmdd-UNOFFICIAL-ham.zip


提示:如果下载过程出现如下错误信息:

"Can't install this package on top of incompatible data. Please try another package or run a factory reset",

可以修改源代码中的文件build/tools/releasetools/ota_from_target_files,修改OTA包生成规则,设置 "OPTIONS.wipe_user_data = True",然后输入命令$ make otapackage重新生成ROM包即可。


下载完成后重启手机,大功告成!Enjoy yourself!



15条评论

走着走着 | 2016-10-19 12:26:37

fastboot mode sn: 4321ecda status: unlocked 怎么办?

走着走着 | 2016-10-19 12:26:37

fastboot mode sn: 4321ecda status: unlocked 怎么办?

zd743cdf | 2016-08-01 00:45:42

我出现这个问题:adb error: protocol fault (no status) 怎么解决

雪落无声 | 2016-07-05 14:59:23

z2刷miui就是便宜了500的米5高配版,刷氢os就是便宜了700的1+3,这么说可以理解了么

zd4109b9 | 2016-06-13 19:31:00

完全看不懂,哈哈

zdf2ed7d | 2016-05-10 11:58:51

没有了ZUI的ZUK还是ZUK吗?与普罗大众有什么区别?

zd5f9cd5 | 2016-04-27 21:01:00

我看不懂啊

zd5f9cd5 | 2016-04-24 10:21:34

我看不懂啊