当前位置: 首页 > news >正文

aosp定制android系统

目录

AOSP

准备工作(配置)

确定机型和版本

初始化

git安装

curl安装

同步源码

环境变量

创建aosp目录

指定同步版本

解下来安装编译需要的依赖

编译aosp源码

刷入系统


AOSP

全称 Android Open Source Project 是指Android开源项目,它是由Google主导的一个开源项目,旨在提供一个完整的、开放的、自由的移动操作系统平台。

为什么要定制自己的安卓系统呢,我们现在用的安卓手机都是基于aosp魔改的,其中许多功能都被厂家限制了,比如root,虽然可以借助面具获取root权限,但是像部分华为手机是不支持解bl锁的,那也就无法root了. 以及root后可能引起的部分软件功能异常,银行类app直接闪退,支付宝无法刷脸.如果可以定制自己的安卓系统,从源码修改,使得adb shell 进入设备的时候就是root权限(这个我会后面单独出一篇关于aosp adb shell就是root权限并隐藏相关指纹绕过root检测),并且抹除相关指纹绕过root检测,达到既有root权限又让app检测不出来的效果.

此外,安卓7以上手机不在信任用户证书,需要把用户证书集成到系统证书里,我们通常可以借助移证书的模块来达到这个效果,但是如果我们定制自己的系统,把想要装的证书直接集成到aosp里,编译好的系统就自带有相关证书,也就不需要借助movecert模块.

并且,很多小厂商喜欢给自己的app加壳,现在的壳从整体加固和抽取加固进化到vmp,已经是越来越难脱壳了,如果可以打造一个自己的脱壳机,通过修改安卓源码,使得app在运行时自动将其加载至内存的代码dump下来实现脱壳。

准备工作(配置)

手机:

- pixel系列

虚拟机(推荐vmware):

- 内存:16G+

- 硬盘:500G空间+

官方推荐的是使用ubantu的系统,如果你用centos可能会出现意想不到的错误,如果你不想遇到千奇百怪的报错就选择ubantu,推荐长期支持版本ubuntu-18.04或者20.04,可以去阿里云的镜像站下载,地址:https://mirrors.aliyun.com/oldubuntu-releases/

安装就不说了,记得安装好后先打一个快照就行了

确定机型和版本

网址:Nexus 和 Pixel 设备的出厂映像  |  Google Play services  |  Google for Developers

首先根据自己的机型选择对应的版本,比如我的pixel 4 ,代号flame,选择QD1A.190821.011这个版本

接着要去寻找aosp拉取源码的版本

地址:https://source.android.com/docs/setup/about/build-numbers

搜索刚刚的QD1A.190821.011版本,记住这个android-10.0.0_r8,后续拉取aosp的版本需要用到这个

接着需要安装相应的驱动,否则你编译好系统刷到手机会卡在bootloader模式,无法进入系统,这个先在主机上下载,后续要用到

初始化

首先要安装一系列工具git curl

git安装

接着配置名字和邮箱,这个可以随便,格式对即可 

sudo apt install git -y 

git config --global user.name "xxxxxxxxxx"
git config --global user.email "xxxxxx@xxxx.com"

curl安装

git config --global user.name "wupeiqi"
git config --global user.email "wupeiqi@live.com"

同步源码

下载repo + 环境变量 + 可执行权限

mkdir ~/bin
PATH=~/bin:$PATH
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
chmod a+x ~/bin/repo

环境变量

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

创建aosp目录

cd ~/bin
mkdir aosp
cd aosp

指定同步版本

就是上面图中的android-10.0.0_r8,这个要换成你对应的版本即可

repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-10.0.0_r8

同步代码,这个耗时很久

repo sync -j8

最终看到终端输出repo sync has finished successfully即可

解下来安装编译需要的依赖

jdk8 

sudo apt install openjdk-8-jdk -y

以及其他依赖

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig  -y

驱动安装,把之前在主机上安装的两个驱动解压出来,是两个.sh文件,把他两拖到aosp这个目录里面,接着终端./xx.sh运行这两个文件,最后会让你输入I ACCEPT表示同意许可,之后就会在aosp目录下回生成verdor目录

编译aosp源码

source build/envsetup.sh
lunch

之后选择编号aosp_代号(我的是flame)_uesrdebug,选择数字即可

之后make -j16编译即可

成功的话终端显示build completed successfully

刷入系统

首先要配好adb

地址:https://dl.google.com/android/repository/platform-tools_r30.0.5-linux.zip

下载解压后配好环境变量

sudo adb reboot bootloader 将手机进入bootloader模式,执行一下命令即可等待自动刷入手机

cd ~/bin/aosp

source build/envsetup.sh 
sudo ANDROID_PRODUCT_OUT=~bin/aosp/out/target/product/flame(这里选择你的机型)  fastboot flashall -w

刷好后的系统长这样,ui是比较粗糙的.

本期aosp编译就到这里了,如果你遇到了报错也欢迎在评论区留言探讨 .

http://www.lryc.cn/news/223364.html

相关文章:

  • 程序员的护城河:构建数字世界的守护者
  • Sample Average Approximation,SAA
  • springbootMysql文华学院青年志愿者服务预约系统97973-计算机毕业设计项目选题推荐(附源码)
  • Go 语言向函数传递数组
  • 高压放大器在铁电测试中的用途有哪些
  • 一款高效、简洁的数据处理和清洗加工工具,值得收藏!
  • 很多个pdf怎么合并在一起?
  • Ubuntu apt更换国内镜像源,apt 更新源,apt 国内镜像
  • 时序预测 | MATLAB实现WOA-CNN-BiLSTM-Attention时间序列预测(SE注意力机制)
  • VINS-Mono-后端优化 (一:预积分残差计算-IMU预积分约束)
  • 怎么调整excel表里面所有单元格中,某个相同字体大小,单元格中其他文字大小不变?
  • 流式数据库引擎备受关注,亚信安慧AntDB数据库受邀参加“2023中国PostgreSQL数据库生态大会”
  • kafka开启SSL认证(包括内置zookeeper开启SSL)
  • Powerpoint不小心被覆盖?PPT误删文件如何恢复?
  • 美团产品经理面试题大解密:流量VS口碑,如何找到最佳平衡点?
  • docker部署tomcat
  • 大语言模型(LLM)综述(七):大语言模型设计应用与未来方向
  • 牛客网:链表分割
  • pytorch(小土堆)深度学习
  • 统计 boy girl 复制出来多少次。 浴谷 P1321题
  • odoo16前端框架分析1 boot.js
  • 酷开科技持续推动智能投影行业创新发展
  • TIA博途中已经被调用的变量,为什么交叉引用时却没有显示调用信息?
  • OSPF下的MGRE实验
  • 论文速览 | TRS 2023: 使用合成微多普勒频谱进行城市鸟类和无人机分类
  • 《网络协议》02. 物理层 · 数据链路层 · 网络层
  • 【chatgpt问答记录】双端队列、栈和函数调用栈
  • 另辟蹊径者 PoseiSwap:背靠潜力叙事,构建 DeFi 理想国
  • 如何查看笔记本电脑电池损耗
  • 一键批量视频剪辑、合并,省时省力,制作专业视频