aosp 为什么某些目录没有编译_安卓源码(aosp)下载编译

环境说明

系统:ubuntu 14.04 x64

手机:谷歌N5

下载源码

配置repo工具环境安装repo

apt-get install -y curl git

mkdir -p ~/bin/

curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo

chmod a+x ~/bin/repo

ln -s ~/bin/repo /bin/repo

设置镜像地址

#在~/.bashrc末尾添加

export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'

下载源码

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

repo sync

安装依赖

# 安装openjdk7

sudo add-apt-repository ppa:openjdk-r/ppa

sudo apt-get update

sudo apt-get install -y openjdk-7-jdk

# 安装相关依赖

sudo apt-get install -y 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

开始编译初始化环境变量

cd ${AOSP_DIR}

source ./build/envsetup.sh

加入驱动程序(此处假设当前目录为AOSP目录)

在《Driver Binaries for Nexus and Pixel Devices》找到自己手机对应的驱动,并下载到${AOSP_DIR}目录下。

此处我们找到Nexus 5 (GSM/LTE) binaries for Android 5.1.1 (LMY48M)下的三个驱动。

释放驱动文件

将第二步得到的三个驱动文件压缩包解压,得到三个sh文件,然后分别执行三个sh文件。

选择编译版本

lunch

注意:nexus5对应的版本是:aosp_hammerhead_userdebug

设置swap交换分区(由于编译需要大量的交换分区,此处设置4096)

# (count的值等于1024 x 你想要的文件大小, 8192000是8G,1024000是1G)

dd if=/dev/zero of=/opt/swap bs=1024 count=8192000

# 创建swap文件

mkswap /opt/swap

swapon /opt/swap

为了使每次开机时都能正常使用swap文件,所以这里需要把swap文件增加到fstab文件中。修改/etc/fstab,在最后一行增加如下内容:

/opt/swap swap swap defaults 0 0

开始编译

make

刷入机器

假设我们当前目录是AOSP,手机已经连上并且已经处于bootloader模式。可以按照下面的命令执行

# 1. 进入out/target/product/hammerhead目录

cd out/target/product/hammerhead

# 2. 进行双清

fastboot format cache

fastboot format userdata

# 刷入所有image

env ANDROID_PRODUCT_OUT=`pwd` fastboot flashall -w

env ANDROID_PRODUCT_OUT=`pwd` fastboot flashall -w表示刷入所有image。也可以分别单个刷入image:

fastboot flash recovery recovery.img

fastboot flash boot boot.img

fastboot flash cache.img

fastboot flash system system.img

fastboot flash userdata userdata.img

配置一些环境变量方便开发

在~/.bashrc的末尾添加

export AOSP_ROOT=/usr/local/aosp

export PATH=$PATH:${AOSP_ROOT}/out/host/linux-x86/bin

用Android Sutdio打开AOSP

cd development/tools/idegen/

mm -B

cd ../../../

development/tools/idegen/idegen.sh

执行成功后就可以用Android Sutdio打开在AOSP根目录下的android.ipr文件。

此处还有个细节:需要将项目依赖中原来的JAVA依赖删掉,否则将出现错误引用转跳。

常见问题如何切换分支?

在工作目录再执行

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

repo sync

其中-b后面的参数为分支版本(Android 版本列表)。

repo sync经常卡住不动?

这是由于BUG吧由于网络原因导致,请ctrl + c结束掉重新执行repo sync。

快速生成image

# 生成system.img

make snod

# 生成boot.img

make bootimage-nodeps

此处只是根据out已经编译好的文件进行打包,并不进行编译。

系统存在多个JAVA环境版本的时候jdk版本切换?

sudo update-alternatives --config java

sudo update-alternatives --config javac

sudo update-alternatives --config javah

sudo update-alternatives --config javap

sudo update-alternatives --config javadoc

如果安装了多个orical-java环境,请先到/etc/profile.d/文件夹下把jdk.*相关文件删掉。

如何查看分支?

cd .repo/manifests

git branch

查看所有分支?

cd .repo/manifests

git branch -a

切换本地分支?

repo init -b android-6.0.1_r63

repo sync

关闭SELINUX

编辑device/lge/hammerhead/BoardConfig.mk文件。BOARD_KERNEL_CMDLINE下面加上如下语句。

BOARD_KERNEL_CMDLINE := androidboot.selinux=permissive

参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值