无刷机,不Android。相信大多数机友选择Android手机都看中其高定制性和可玩性,Android
系统历经五年的持续更新,流畅性和系统功能愈加完善,除了众多发烧友喜爱的原生Android系统外,HTC Sense、三星Touwiz和小米MIUI等定制UI都以优质的用户体验和人性化操作界面,培养了属于自己的粉丝。
当然,除了这些手机厂商赖以生存的Official rom,还存在许多由ROM开发者编译的第三方ROM,技术高的改内核,入门浅的玩优化。仔细观察的话,不难发现这些ROM均带有AOSP、AOKP或CM等字样,这些字母都代表着什么样的含义呢?
AOSP是“Android Open-Source Project”的缩写,中文名称为Android 开放源代码项目。大家都知道Android是开源操作系统,所以Google 每发布一个Android版本,都会给开源社区发放对应版本的源代码,也就是我们所说的AOSP ROM,这可以称得上是最为纯净的Android 系统。简单地说,国内多数Windows 系统,都是基于微软MSDN制作,AOSP ROM即等同于微软MSDN母盘的角色。
Google 发布新版本系统后,下载AOSP源代码研究的多为Android ROM开发者,通过详细的分析和研究,开发者便能知道新系统底层究竟修复了什么漏洞、增加了哪些功能,新功能是否在之前版本已经通过其他方式实现过。
最为重要的是,AOSP即代表着官方原生,因为相对纯净无修改,在系统稳定性和流畅性表现都中规中矩,系统体验方面也向Nexus系列亲儿子看齐。多数民间ROM制作者没有办法获得Sense、Touwiz等UI界面的源代码,几乎所有的AOSP ROM,看上去都是原生Android 的样子,所以刷了AOSPROM,即意味着放弃厂商那套个性的UI外衣,亦或者是许多你难以割舍的小细节。不过,Android系统发展到现在,界面上已经不能用简陋来评价它,功能方面需要第三方软件弥补的空间也越来越小。
AOKP 的全称为“Android Open-Source Kang Project”,比AOSP多了一个“Kang”。在Android社区中,Kang是一个术语,即用来表示这是一个被他人修改过的ROM,修改ROM的人不属于制作ROM的团队或没有该团队的授权。
究其根本,没有原生AOSP,就没有AOKP。AOKP 是由民间团队开发和维护的,相比原汁原味的AOSP,AOKP显得更为激进,强大的MOD和丰富的自定义设置都让人无法忘却,但在功能强大的同时,不稳定始终是AOKP无法撕下的标签。对开发者而言,在有限的时间内做尽可能多的测试,才算对ROM使用者负责。
CM 是CyanogenMod 的简称,Cyanogen团队是全球最大的第三方ROM编译团队,覆盖机型范围相当之广,几乎所有热门机型都有相对应的CM ROM可以刷机使用。国内知名ROM作品 MIUI 早期也是直接采用了CM 的源代码,才能迅速在多个机型上普及。
严格意义上来说,CM ROM 属于AOKP 的范畴。CM ROM 一直遵从原生Android,但只有Google官方的才算真正的AOSP。正因为有了后期的修改和优化,CM 比原生系统在自定义上更强一点,相信使用过CM ROM 的机友都对那强大的CM设置有印象。
不论是AOSP、AOKP还是CM,亦或者MIUI、乐众、点心等,都推动了Android
系统的发展,给我们带来了玩机的乐趣。其实,我更期待Android 系统能实现Windows
桌面系统的升级方式,制定统一的硬件标准,不再出现系统版本分化严重的现象。
以上摘录自百度经验。下面整理一些相关下载链接,下载流程等。
由于众所周知的原因,从google官方地址下载源码不现实,使用VPN也太贵了,速度也慢。目前可以使用国内的镜像服务器,清华、中科大都有AOSP镜像服务器。
按照 Google 官方教程
https://source.android.com/source/downloading.html
首先下载 repo 工具。
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
## 如果上述 URL 可能不可访问,可以用下面的:
## curl https://storage-googleapis.lug.ustc.edu.cn/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
然后建立一个工作目录(名字任意)
mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
初始化仓库:
中科大镜像:repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest
## 如果提示无法连接到 gerrit.googlesource.com,可以编辑 ~/bin/repo,把 REPO_URL 一行替换成下面的,ustc镜像:
## REPO_URL = 'https://gerrit-googlesource.lug.ustc.edu.cn/git-repo'
清华镜像:repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest
## 如果提示无法连接到 gerrit.googlesource.com,可以编辑 ~/bin/repo,把 REPO_URL 一行替换成下面的:
REPO_URL = 'https://gerrit-google.tuna.tsinghua.edu.cn/git-repo'
如果需要某个特定的 Android 版本:
中科大镜像:repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-4.0.1_r1
清华镜像:repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-4.0.1_r1
同步源码树(以后只需执行这条命令来同步):
repo sync
同步时间比较久,建议凌晨时间同步。
------------------------------------------------
清华镜像服务器 Android 镜像使用帮助----------------------------------------------
从清华镜像服务器摘录:
https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
Android 镜像使用帮助
注意: 本镜像是 AOSP 镜像,Android SDK因版权原因,我们不能提供镜像服务。
参考 Google 教程 https://source.android.com/source/downloading.html, 将 https://android.googlesource.com/ 全部使用 https://aosp.tuna.tsinghua.edu.cn/ 代替即可。
由于使用 HTTPS 协议更安全,并且更便于我们灵活处理,所以强烈推荐使用 HTTPS 协议同步 AOSP 镜像。
由于 AOSP 镜像造成CPU/内存负载过重,我们限制了并发数量,因此建议: 1. sync的时候并发数不宜太高,否则会出现 503 错误,即-j后面的数字不能太大,建议选择4。 2. 请尽量选择流量较小时错峰同步。
2016-06-24 : 关闭 git:// 协议,仅支持 HTTPS
注意: 本镜像是 AOSP 镜像,Android SDK因版权原因,我们不能提供镜像服务。
参考 Google 教程 https://source.android.com/source/downloading.html, 将 https://android.googlesource.com/ 全部使用 https://aosp.tuna.tsinghua.edu.cn/ 代替即可。
由于使用 HTTPS 协议更安全,并且更便于我们灵活处理,所以强烈推荐使用 HTTPS 协议同步 AOSP 镜像。
由于 AOSP 镜像造成CPU/内存负载过重,我们限制了并发数量,因此建议: 1. sync的时候并发数不宜太高,否则会出现 503 错误,即-j后面的数字不能太大,建议选择4。 2. 请尽量选择流量较小时错峰同步。
2016-06-24 : 关闭 git:// 协议,仅支持 HTTPS
(记得更改.repo/manifest.git中 [remote "origin"] #url = git://,改为url = https://)
2016-04-03 : 删除每月初始化包中的冗余内容,使用方法更新
2015-12-21 : 增加每月初始化包,少量修正文档错误
2015-10-13 : 修复上游替换文档错误
2015-10-13 : 修复次级镜像文档错误
2015-10-09 : 恢复 git://aosp.tuna.tsinghua.edu.cn/aosp/ 访问
2015-10-08 : 镜像地址更新为 https://aosp.tuna.tsinghua.edu.cn/ (结尾没有/android)
过程摘录
(参考 https://lug.ustc.edu.cn/wiki/mirrors/help/aosp 编写)
下载 repo 工具:
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
或者使用tuna的git-repo镜像
使用每月更新的初始化包
由于首次同步需要下载 24GB 数据,过程中任何网络故障都可能造成同步失败,我们强烈建议您使用初始化包进行初始化。
下载 https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar,下载完成后记得根据 checksum.txt 的内容校验一下。
由于所有代码都是从隐藏的 .repo 目录中 checkout 出来的,所以我们只保留了 .repo 目录,下载后解压 再 repo sync 一遍即可得到完整的目录。
使用方法如下:
wget https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar # 下载初始化包
tar xf aosp-latest.tar
cd AOSP # 解压得到的 AOSP 工程目录
# 这时 ls 的话什么也看不到,因为只有一个隐藏的 .repo 目录
repo sync # 正常同步一遍即可得到完整目录
# 或 repo sync -l 仅checkout代码
此后,每次只需运行 repo sync 即可保持同步。 我们强烈建议您保持每天同步,并尽量选择凌晨等低峰时间
传统初始化方法
建立工作目录:
mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
初始化仓库:
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest
如果提示无法连接到 gerrit.googlesource.com,请参照git-repo的帮助页面的更新一节。
如果需要某个特定的 Android 版本(列表):
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-4.0.1_r1
同步源码树(以后只需执行这条命令来同步):
repo sync
建立次级镜像
由于 AOSP 镜像需求量巨大,且 Git 服务占资源较多,TUNA 服务器因 AOSP 产生的负载已经占主要部分。 如果你是团队用户,我们强烈建议你通过 TUNA 建立次级镜像,再分享给团队内其他用户,减轻 TUNA 服务器压力。 建立 AOSP 镜像需要占用约 80G 磁盘。
具体步骤为:
下载 repo 工具和建立工作目录(略)
初始化:
repo init -u https://aosp.tuna.tsinghua.edu.cn/mirror/manifest --mirror
最后同步源码树:
repo sync
同步完成后,运行 git daemon --verbose --export-all --base-path=WORKING_DIR WORKING_DIR (WORKING_DIR为代码树所在目录) 。
此后,其他用户使用 git://ip.to.mirror/ 作为镜像即可。
替换已有的 AOSP 源代码的 remote
如果你之前已经通过某种途径获得了 AOSP 的源码(或者你只是 init 这一步完成后), 你希望以后通过 TUNA 同步 AOSP 部分的代码,只需要将 .repo/manifest.xml 把其中的 aosp 这个 remote 的 fetch 从 https://android.googlesource.com 改为 https://aosp.tuna.tsinghua.edu.cn/。
<manifest>
<remote name="aosp"
- fetch="https://android.googlesource.com"
+ fetch="https://aosp.tuna.tsinghua.edu.cn"
review="android-review.googlesource.com" />
<remote name="github"
同时,修改 .repo/manifests.git/config,将
url = https://android.googlesource.com/platform/manifest
更改为
url = https://aosp.tuna.tsinghua.edu.cn/platform/manifest
这个方法也可以用来在同步 Cyanogenmod 代码的时候从 TUNA 同步部分代码
2016-04-03 : 删除每月初始化包中的冗余内容,使用方法更新
2015-12-21 : 增加每月初始化包,少量修正文档错误
2015-10-13 : 修复上游替换文档错误
2015-10-13 : 修复次级镜像文档错误
2015-10-09 : 恢复 git://aosp.tuna.tsinghua.edu.cn/aosp/ 访问
2015-10-08 : 镜像地址更新为 https://aosp.tuna.tsinghua.edu.cn/ (结尾没有/android)
过程摘录
(参考 https://lug.ustc.edu.cn/wiki/mirrors/help/aosp 编写)
下载 repo 工具:
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
或者使用tuna的git-repo镜像
使用每月更新的初始化包
由于首次同步需要下载 24GB 数据,过程中任何网络故障都可能造成同步失败,我们强烈建议您使用初始化包进行初始化。
下载 https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar,下载完成后记得根据 checksum.txt 的内容校验一下。
由于所有代码都是从隐藏的 .repo 目录中 checkout 出来的,所以我们只保留了 .repo 目录,下载后解压 再 repo sync 一遍即可得到完整的目录。
使用方法如下:
wget https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar # 下载初始化包
tar xf aosp-latest.tar
cd AOSP # 解压得到的 AOSP 工程目录
# 这时 ls 的话什么也看不到,因为只有一个隐藏的 .repo 目录
repo sync # 正常同步一遍即可得到完整目录
# 或 repo sync -l 仅checkout代码
此后,每次只需运行 repo sync 即可保持同步。 我们强烈建议您保持每天同步,并尽量选择凌晨等低峰时间
传统初始化方法
建立工作目录:
mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
初始化仓库:
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest
如果提示无法连接到 gerrit.googlesource.com,请参照git-repo的帮助页面的更新一节。
如果需要某个特定的 Android 版本(列表):
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-4.0.1_r1
同步源码树(以后只需执行这条命令来同步):
repo sync
建立次级镜像
由于 AOSP 镜像需求量巨大,且 Git 服务占资源较多,TUNA 服务器因 AOSP 产生的负载已经占主要部分。 如果你是团队用户,我们强烈建议你通过 TUNA 建立次级镜像,再分享给团队内其他用户,减轻 TUNA 服务器压力。 建立 AOSP 镜像需要占用约 80G 磁盘。
具体步骤为:
下载 repo 工具和建立工作目录(略)
初始化:
repo init -u https://aosp.tuna.tsinghua.edu.cn/mirror/manifest --mirror
最后同步源码树:
repo sync
同步完成后,运行 git daemon --verbose --export-all --base-path=WORKING_DIR WORKING_DIR (WORKING_DIR为代码树所在目录) 。
此后,其他用户使用 git://ip.to.mirror/ 作为镜像即可。
替换已有的 AOSP 源代码的 remote
如果你之前已经通过某种途径获得了 AOSP 的源码(或者你只是 init 这一步完成后), 你希望以后通过 TUNA 同步 AOSP 部分的代码,只需要将 .repo/manifest.xml 把其中的 aosp 这个 remote 的 fetch 从 https://android.googlesource.com 改为 https://aosp.tuna.tsinghua.edu.cn/。
<manifest>
<remote name="aosp"
- fetch="https://android.googlesource.com"
+ fetch="https://aosp.tuna.tsinghua.edu.cn"
review="android-review.googlesource.com" />
<remote name="github"
同时,修改 .repo/manifests.git/config,将
url = https://android.googlesource.com/platform/manifest
更改为
url = https://aosp.tuna.tsinghua.edu.cn/platform/manifest
这个方法也可以用来在同步 Cyanogenmod 代码的时候从 TUNA 同步部分代码