• 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编译就到这里了,如果你遇到了报错也欢迎在评论区留言探讨 .

     最后

    微信公众号

    知识星球

    如果你觉得这篇文章对你有帮助,不妨请作者喝一杯咖啡吧!

  • 相关阅读:
    前端学习| 第二章
    linux下二进制安装docker最新版docker-24.0.6
    常用类15:Math类
    备忘录模式(Memento)
    仿everything的文件搜索工具测试
    js中0.1+0.2!=0.3
    netcore Polly.Core
    JVM常见面试题
    java毕业设计电子存证系统mybatis+源码+调试部署+系统+数据库+lw
    百度程序员:进来看看这个代码,值T几的水平?丨黑马头条
  • 原文地址:https://blog.csdn.net/xmx_000/article/details/134264848