当前位置 : 主页 > 网络编程 > 其它编程 >

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

来源:互联网 收集:自由互联 发布时间:2023-07-02
环境说明系统ubuntu14.04x64手机谷歌N5下载源码配置repo工具环境安装repoapt-getinstall-ycurlgitmkdir 环境说明 系统ubuntu 14.04 x64 手机谷歌N5 下载源码 配置repo工具环境安装repo apt-get install -y curl g
环境说明系统ubuntu14.04x64手机谷歌N5下载源码配置repo工具环境安装repoapt-getinstall-ycurlgitmkdir

环境说明

系统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 ax ~/bin/repo

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

设置镜像地址

#在~/.bashrc末尾添加

export REPO_URLhttps://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

注意nexus对应的版本是aosp_hammerhead_userdebug

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

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

dd if/dev/zero of/opt/swap bs1024 count8192000

# 创建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_OUTpwd fastboot flashall -w

env ANDROID_PRODUCT_OUTpwd 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.selinuxpermissive

参考资料

上一篇:Yii的自带缓存的用法实例
下一篇:没有了
网友评论