Quantcast
Channel: CodeSection,代码区,Linux操作系统:Ubuntu_Centos_Debian - CodeSec
Viewing all articles
Browse latest Browse all 11063

编译 Android 系统

$
0
0

编译 Android 系统
Android 操作系统的核心属于 linux 内核的一个分支,具有典型的 Linux 调度和功能,除此之外,Google 为了能让 Linux 在移动设备上良好的运行,对其进行了修改和扩充。我们可以在 Ubuntu 系统自己动手上编译最新的 Android 系统,并刷入到我们的设备中进行定制。 准备 Ubuntu 14.04 Nexus 5 手机 科学上网工具

官方安装 文档

清华 AOSP 镜像

环境配置

编译不同 Android 系统版本对于编译系统的要求:

Android 版本 Ubuntu 版本 Android 6.0 + Ubuntu 14.04 + Android 2.3 - Android 5.x Ubuntu 12.04 +

编译不同 Android 系统对于 JDK 版本的要求

Android 版本 JDK 版本 master 分支 OpenJDK 8 Android 5.x ― Android 6.0 OpenJDK 7 Android 2.3x ― Android 4.4.x OpenJDK 6

python version = 2.7

以下为在 Ubuntu 14.04 系统中编译为 Nexus 5 设备 Android 5.1.1 并刷入手机为例。其他情况配置参考官网即可,编译环境略有不同。

安装 jdk 7

sudo apt-get install openjdk-8-jdk

在 Ubuntu 14.04 上需要安装以下依赖

sudo apt-get install git-core gnupg flex bison gperf build-essential \ zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \ lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \ libgl1-mesa-dev libxml2-utils xsltproc unzip 配置 Repo

Android 源码采用 Repo 的方式进行下载,首先配置 Repo

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

如果你想使用清华大学的镜像下载:

如果之前有配置要清除干净掉之前的配置

cd ~/bin rm -rf .repo repo

重新配置为清华大学镜像

mkdir ~/bin PATH=~/bin:$PATH curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo chmod a+x ~/bin/repo 下载源码 mkdir ~/android #创建一个文件夹 cd ~/android repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest# 初始化仓库

如果需要某个特定的 Android 版本,需要使用这条命令。-b 的参数需要根据这个 列表 确定

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-5.1.1_r3

之后就可以同步源码了

repo sync

这个过程就比较长,中间还会有各种断开的情况,重新执行 repo sync 就可以。其实清华大学的镜像还提供一种更方便的方法。

首先要下载初始化包,这个可以使用迅雷进行下载在移动到 Ubuntu 中。地址: https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar 或者

wget https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar

解压并 checkout

tar xf aosp-latest.tar cd aosp repo sync -l #仅checkout代码 repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-5.1.1_r3# 设置同步的分支 repo sync # 同步代码

同步时间比较长取决于网络速度,中间还可能有各种原因导致终端,利用 google 大部分问题都可以解决,重新 repo sync 之后,会继续之前同步的进度。

编译系统

下载 Nexus5 需要的驱动,不然编译之后的系统只能在模拟器上运行

驱动下载 地址 找到对应机型和对应系统的下载地址,比如我找到 Nexus 5 的驱动下载地址。

wget https://dl.google.com/dl/android/aosp/broadcom-hammerhead-lmy48b-2d0a908d.tgz wget https://dl.google.com/dl/android/aosp/lge-hammerhead-lmy48b-92cca4b9.tgz https://dl.google.com/dl/android/aosp/qcom-hammerhead-lmy48b-021b52eb.tgz

下载到 aosp/ 目录下,成功后分别进行解压,为得到三个 .sh 文件,执行之后会将驱动放到 vender 目录下。

./buidl/envsetup.sh # 配置编译环境 lunch # 加载机型

选择 aosp_hammerhead-userdebug ,并输入改选项前的序号,按回车键继续。

执行编译命令 make -j8 #编译整个系统 # 其它编译命令 mmm packages/apps/Email/ # 单独编译某个系统应用 make snod#产生一个新的系统映像system.img make ramdisk#编译 ramdisk make userdataimage#编译 userdata make systemimage#编译 system make bootimage#编译 kernel 刷入手机 cd ~/android/qhsource/aosp/out/target/product/hammerhead #连接手机后,按住电源 - 和开关机键,进入 bootloader或者使用一下命令 adb reboot bootloader fastboot -w -p flashall# 进行刷机

或者可以拷贝刷机所需要的文件,分别刷入

cd ~/android/qhsource/aosp/out/target/product/hammerhead fastboot flash boot boot.img fastboot flash recovery recovery.img fastboot flash system system.img fastboot flash userdata userdata.img fastboot flash cache cache.img fastboot flash ramdisk ramdisk.img


Viewing all articles
Browse latest Browse all 11063

Trending Articles