AOSP编译安卓源码
环境准备
我的环境是deepin x64要linux的不会还有人用Windows写代码吧,这里不是支持国产,是ubuntu装不上我的笔记本,深度的安装配置的还不错,就算你的兼容做的和shit一样
准备150G的空闲区域,用来编译源码,和放源码。源码很小,但是编译之后可以达到150G,最小16G运行内存
下载源码(我的建议是直接百度云)和厂商驱动
链接: https://pan.baidu.com/s/1ueHGw1TnRLAZhh2B7n6G7w 提取码: 0000 (android7.1.1 r1)
你去冲个百度云会员,真的不差这点钱,要是不能用还能下其他版本,直接搜安卓源码百度云即可
这个版本支持我的Nexus 5x你要搞安卓系统的话推荐买一个实体机
https://source.android.google.cn/source/build-numbers?hl=zh-cn#source-code-tags-and-builds
看这个就可以查到你要用那个版本的系统
最左边的代号用来下载厂商驱动的,你下载的源码里面没有,驱动就是类似打电话的,基带的,声音的,每个手机都不一样,所以源码里没有,没有也可以编译不过不能生成vendor.img开不了机
去这里下载https://developers.google.cn/android/drivers 直接搜索NMF26F
把这两个sh文件放到你解压的源码里
//下载驱动 解压到源码根目录 (对应驱动查看请参考下边的 lunch 这一步)
//执行下载的sh驱动脚本,同意授权 最后输入 "I ACCEPT"
依赖安装
//这一步骤 是安装所需的一些环境,可以先不用安装 如果出问题了,再安装,避免安装一些用不到的软件,放在这里的目的是有备无患
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
sudo apt-get install libssl-dev
开始编译
make clobber //清除缓存
source build/envsetup.sh //添加依赖
lunch //选择你要编译的版本,nexus 5x代号bullhead
make -j24 //开12个线程,一般核数两倍跑满cpu
报错:ninja: build stopped: subcommand failed.ninja failed with: exit status 1
你直接搜这个是搜不到你到底错在哪里的
直接运行:export LC_ALL=C
刷机
手机进fastboot
fastboot flashall -w
运行,没有就安装,如果出现 fastboot: error: ANDROID_PRODUCT_OUT not set错误
export ANDROID_PRODUCT_OUT=android-7.1.1_r1/out/target/product/bullhead
这个地方是生成编译结果的地方也就是img的地方
相关文章
- 【技术种草】cdn+轻量服务器+hugo=让博客“云原生”一下
- CLB运维&运营最佳实践 ---访问日志大洞察
- vnc方式登陆服务器
- 轻松学排序算法:眼睛直观感受几种常用排序算法
- 十二个经典的大数据项目
- 为什么使用 CDN 内容分发网络?
- 大数据——大数据默认端口号列表
- Weld 1.1.5.Final,JSR-299 的框架
- JavaFX 2012:彻底开源
- 提升as3程序性能的十大要点
- 通过凸面几何学进行独立于边际的在线多类学习
- 利用行动影响的规律性和部分已知的模型进行离线强化学习
- ModelLight:基于模型的交通信号控制的元强化学习
- 浅谈Visual Source Safe项目分支
- 基于先验知识的递归卡尔曼滤波的代理人联合状态和输入估计
- 结合网络结构和非线性恢复来提高声誉评估的性能
- 最佳实践丨云开发CloudBase多环境管理实践
- TimeVAE:用于生成多变量时间序列的变异自动编码器
- 具有线性阈值激活的神经网络:结构和算法
- 内网渗透之横向移动 -- 从域外向域内进行密码喷洒攻击