/manifest

Primary LanguageShellApache License 2.0Apache-2.0

  1. 介绍 ==== Coron是一个致力于开源ROM制作的项目, 开源了制作百度云ROM的所有工具和部分示例机型。采用Apache License 2.0协议, 为乐于分享的开发者提供最大的自由度。

开源项目的访问网址是 https://github.com/baidurom , 创立纪元是二零一三年八月八日。旨在让更多的开发者体验百度云ROM的制作过程, 感受其间简洁、细节的情怀。

Coron, 意味着与开发者合作而生的ROM, CO-operation ROm

Coron, 意味着百度云ROM强大的云服务, ROm Over Cloud;

Coron, 也是一个清新纯净的小岛。

  1. 分支命名 === 开源项目的分支命名基于coron, 对于单卡机型, 后缀为Android 版本; 对于双卡机型, 后缀为双卡平台与Andorid版本的结合。

已有单卡分支有coron-4.0, coron-4.1, coron-4.2, 已有的双卡分支有coron-mtk-4.0, coron-mtk-4.2。 分支对应到可以制作的ROM版本, 譬如, 厂商原来的系统是Android 4.2的单卡版本, 那么, 就推荐使用coron-4.2分支来移植百度云ROM。

开源项目的目录结构如下所示:

coron
 +-- manifest      开源项目的Repo 管理清单文件,以及教程和文档
 +-- build         编译脚本,包括基于Makfile 编译环境的构建脚本
 +-- tools         工具,包括反编译/编译,解包/打包的脚本,以及其他一些实用工具
 +-- reference     参考代码,包括aosp, bosp的反编译代码,每一次发布都会更新这个目录
 +-- baidu
      +-- overlay  资源覆盖,包括Baidu 对原生Android 资源文件的修改
 +-- devices       所有的开发机型
      +-- demo     示例机型,作为演示使用
      +-- p6       实际机型HuaWei P6,不同分支的实际机型不同
  1. 代码下载 ====

通过repo init命令的-b参数, 选择需要下载的分支(譬如coron-4.2)。 通过repo sync命令同步远程代码:

repo init -u https://github.com/baidurom/manifest.git -b coron-4.2
repo sync

如果下载时, 出现以下错误, 多试几次即可(一般不超过10次, 防火墙导致, 难以避免)

fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle
fatal: error [Errno 101] Network is unreachable
  1. 百度云ROM移植 === 1) 构建开发工程

下载完代码以后, 在开源项目根目录, 执行以下命令初始化开发环境:

source build/envsetup.sh

创建一个新的机型工程的目录(以demo为例), 后续的移植都在机型目录完成。

mkdir -p devices/demo
cd devices/demo

将手机ROOT以后, 取到可用的recovery.img或者recovery.fstab, 放到机型根目录, 执行以下命令生成一个新的机型工程:

makeconfig
make newproject

2) 插入代码改动

自动执行patch, 将百度云ROM涉及到的改动注入厂商的代码中:

make patchall

执行自动Patch时, 可能会存在代码合并冲突。冲突会以下面的形式标注出来, 开发者需要在厂商的文件中手工解决这些冲突。

<<<<<<< VENDOR
  原厂的代码块
=======
  需要改动的代码块
>>>>>>> BOSP

3) 编译整个机型

make

具体机型一般有特定的问题, 等待开发者去解决, 以下文档可以帮助开发者解决一些实际问题:

《Developer-Guide.pdf》, 《Details-to-Smali-Development.pdf》

  1. 版本升级 === 对于已有的机型, 可以自动化进行版本升级。执行以下命令:

    make clean-all make upgrade FROM=XX

通过FROM参数指定升级的起始版本, 即所开发机型当前的ROM版本。譬如FROM=44, 表示需要从ROM44升级。 当百度云发布了ROM45后, 执行该命令便能自动升级到ROM45。

  1. 代码提交 === 代码提交有2种方式:

1) 直接更新Git库

对于具备开源项目管理权限的开发者, 可以直接通过git push命令, 提交代码改动:

git push –u origin coron-4.2

在修改后的Git库使用上述命令。origin是远程仓库的别名, 是开发者自定义的, 也可以为其他别名; coron-4.2是改动的Git库所在的分支。

2) 通过Code Review方式提交代码

对于具备GitHub账户的开发者, 可以利用GitHub提供的Pull Request方式, 将代码改动以Code Review的形式, 发送给开源项目的管理者。待Code Review通过后, 代码改动将会合并到提交分支。

为了能够提交代码, 开发者需首先注册GitHub账户, 将baidurom的Git库Fork到自己的账户下; 然后, 对Git库进行代码修改, 发送Pull Request。最后, 在开源项目的管理者收到提交请求时, 会对代码进行Code Review, 如果符合准入标准, 就会将改动代码合并到主干分支中。