栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android 源码下载并编译Rom

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android 源码下载并编译Rom

1.repo工具下载及安装
	mkdir ~/android-repo
	cd ~/android-repo
	git clone https://aosp.tuna.tsinghua.edu.cn/git-repo/
	chmod a+x git-repo/repo

然后添加repo(路径目录如:~/git-repo/repo)到PATH环境变量

    export PATH=~/git-repo:$PATH

然后到打开 ~/git-repo/repo 文件,将 REPO_URL 替换为清华镜像地址,以避免下载 android 源码时可能出现的无法连接到 gerrit.googlesource.com 问题。

	REPO_URL = 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
2.Android 源码下载

首先创建一个自己存放源码的目录,cd 到对应的路径下执行下面命令:

mkdir ~/android-repo/android-source
cd ~/android-repo/android-source

repo init --depth 1 -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-8.1.0_r52  (相当于 git initclone )
repo init --depth 1 -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-11.0.0_r43  如果不需要看以前的历史记录,设为1即可
repo sync -c --no-tags -j4   其中 -c 表示只更新当前分支;--no-tags,不获取标签
(这个过程时间较长,可能需要2个小时以上)

注意:在 ubuntu 分配至少 250 G 空间

3.Ubuntu 18.04 编译环境配置

首先得配置 openjdk-8

    sudo apt-get install openjdk-8-jdk
    sudo apt-get install openjdk-8-jre

然后配置在 ubantu 18.04 中编译 android 源码需要的一些依赖

sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
sudo apt-get install git-core gnupg flex bison gperf build-essential  
sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib
sudo apt-get install libc6-dev-i386
sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev
sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
sudo apt-get install lib32z-dev ccache
4、编译Android源码

始化编译环境,命令

	source build/envsetup.sh

选择编译目标

    lunch aosp_arm64-eng
    或 lunch aosp_x86_64-eng

开始编译与运行模拟器

    make -j32
    emulator
5、相关错误说明

(1)_nl_intern_locale_data: Assertion `cnt < (sizeof (_nl_value_type_LC_TIME)

    export LC_ALL=C 
    export USER=$(whoami)

(2) echo $PATH — 查看环境变量

    /etc/profile 中设定的变量(全局)的可以作用于任何用户,
     而~/.bashrc等中设定的变量(局部)只能继承 /etc/profile 中的变量,他们是"父子"关系
    alias python='/usr/bin/python3.6'
    /usr/bin/env python  改成   /usr/bin/env python3


6、参考文档:

(1)在谷歌云上高速编译安卓AOSP ROM、驱动、内核并完成刷机
(2)AOSP 源码编译及刷入Nexus 5
(3)使用 Android 模拟器运行自定义 Rom

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/571494.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号