ROM 教程 编译篇
制作手机ROM,也就是我们平时说的刷机包,至少你要对一些概念有所了解,例如刷机,recovery,root,adb等等。这些基本概念不用介绍了,大家平日接触过有个概念就行。
我们所做的ROM是将一些主流的ROM适配到我们自己的手机上去,例如cm miui flyme等等,做ROM也有很多种途径,移植,插桩适配,源码编译。我们现在就学习两个方向做ROM,插桩适配和编译。移植ROM虽然上手难度小一点,但是情况太多修复bug也比较麻烦,这里就不论述了,有兴趣可以自己试试。
对于刚开始学习,一个手机是否合适还是有很大影响的。如果你的手机很合适,基本照着教程输完命令也就出包了。比如在开发者里人人皆知的nexus系列,当然国产的一加手机也是开发者中的首选。不过一些比较热门的手机也会比较好做,开源的就好。这个给大家一个地址/CyanogenMod 然后去搜索一下你的手机代号(又说道代号了,这里又要补充一下,每一个手机基本都会有一个代号 不再用型号称呼 我的手机是moto g代号是falcon 比如小米4的代号是cancro 谷歌的nexus4代号是mako等等 这个你要去百度或者论坛里去查查)如果搜出来结果了像这个样子 那你的手机device就有了(如果没有的话,可能说
明这个机型不太适合初学开发,我目前刚学。。。。如果没有device我也不知道该怎么继续下去。。。不过办法总比困难多,想钻研总是会有办法的)搜索到结果就像下图 但是每个人手机情况都有别,所以到时候会碰到很多不同的原因。具体后面再说。
我们进行制作的环境一般都不在windows下,使用的是一些linux的系统,常用的有ubuntu,mint,debian等等等等这个看个人爱好用哪个 就像win7 win8 win10的选择。如果你的电脑配置比较好,又不想装双系统,可以用虚拟机的方式安装。不过还是推荐用实体
机安装,这样以后用起来比较方便,性能也能得到利用。虚拟机安装方法这里不多说了,比较简单,实体机安装的时候一般把镜像解压到U盘 选U 盘启动按照提示一步一步就行。具体还请百度,装系统是一个男生必须会的一项技能,女生就可以让男生帮你们装(安装的时候有个选项是和windows组成双系统,那个别选,据说选了windows就会挂,虽然我也没试过 选下面的一个自定义的 然后把盘分一下这样才是双系统 正确操作文件不会丢失的 如果想学习编译的话磁盘一定要大一点。。建议100G以上。。我分了200+G )
等你安装完了接下来可以熟悉一下操作 这个系统很重要一个东西就是终端 按ctrl+alt+t可以呼出终端。就长这样 以后主要是和这玩意打交道。
这个和windows下的cmd窗口差不多,这个命令也有很多 以后慢慢就熟悉了。
=================之后开始开发的相关工作了====================
我们这里先做一些编译的准备,就打开这个终端,输入如下的命令,这个是安装一些必要
的软件包:
sudo apt-get install bison build-esntial curl flex git gnupg gperf libesd0-dev libncurs5-dev libsdl1.2-dev libwxgtk2.8-dev libxml2 libxml2-utils lzop openjdk-7-jdk openjdk-7-jre pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev g++-multilib gcc-multilib lib32ncurs5-dev lib32readline-gplv2-dev lib32z1-dev
( 直接复制进去就行了,注意 这个窗口里粘贴不能用ctrl+v了 用右键粘贴也行 用ctrl+shift+v也行。)
之后就是下载repo了 repo这个东西我也说不清是干啥的,应该就是管理下载的 反正以后下载源码都会用到他 用下面命令:
mkdir -p ~/bin //这个是新建一个叫bin的文件夹 mkdir这个是新建命令 ~就是你的home目录
curl /git-repo-downloads/repo > ~/bin/repo
//这个意思是从谷歌那里拉下来repo这个程序
chmod a+x ~/bin/repo //给这个文件夹权限
echo "export PATH=~/bin:$PATH" >> ~/.bashrc //这个是配置环境变量
之后就是大头戏了,咱们拉源码,这里要先建立好文件夹,别到时候都放到了home下。。会出来一大堆东西的我新建了一个叫做cyanogenmod的文件夹,这个都随意。之后进入文件夹之后右键打开终端,当然你也可以打开终端用cd命令进入。这时候会显示这样
之后只要输入
repo init -u git:///CyanogenMod/android.git -b cm-12.1
然后输入 repo sync
可能下载的时候要设置邮箱和你的名字什么的 有提示之后输入
这里根据自己的情况改
git config --ail "your@email.address"
git config --global ur.name "Your Name"
这里的cm12.1就是拉取cm12.1的源码 同理你可以获取12.0 13之类的
不过。。因为天朝原因,目前写这篇教程的时候直接这样是不能从谷歌下载东西的,所以你需要做些处理
/racaljk/hosts
这个地址会更新可用的hosts需要的时候就去看一下然后找到
216.239.38.
216.239.38.
216.239.38.
这一段 前面这个ip是我目前获取的可用的 到时候更新了自己去查一下然后打开终端,输入sudo gedit /etc/hosts 之后输入密码就可以打开hosts这个文件吧上面那三行加进去保存。然后进行拉取源码的操作就行了。(这里估计得下载10+G文件 我用移动下载可以满速电信没试过,哦对说到电信。。。咱们学校的闪讯linux下我还没学会怎么使,wine打开没反应。。要是高人研究出来可以告知一下)中间可以中断,或者你发现网络出问题了也可以中断 在运行中的终端输入ctrl+z就可以了 之后开始再输入repo sync