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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/119154.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Thread类的基本操作(JAVA多线程)

线程是操作系统中的概念,操作系统内核实现了线程这样的机制,并提供了一些API供外部使用。 JAVA中 Thread类 将系统提供的API又近一步进行了抽象和封装,所以如果想要使用多线程就离不开 Thread 这个类。 线程的创建(Thread类) 在JAVA中 创建…

python图像处理 ——图像锐化

python图像处理 ——图像锐化 前言一、原理二、 空间域锐化滤波1.拉普拉斯算子(Laplacian)2.罗伯茨算子(Roberts)3.Sobel算子4.Prewitt算子5.Scharr算子 三、实验对比 前言 由于收集图像数据的器件或传输图像的通道存在一些质量缺…

浅谈电力物联网时代物联网技术在电力系统中的应用

贾丽丽 安科瑞电气股份有限公司 上海嘉定201801 摘要:在电力系统建设中,物联网的应用不仅促进了我国电力工业的发展,而且对我国的物联网技术也起到了一定的促进作用。随着物联网技术应用于电力系统,推动了中国工业的快速发展。因…

GCN火车票识别项目 P1 火车票识别项目介绍 Pytorch LSTM/GCN

从本节开始,我将带大家完成一个深度学习项目:用图卷积神经网络(GCN),实现一个「火车票文字信息提取」的项目,由于火车票上每个节点文字不是等长的,所以还需要添加一个前置的 LSTM 来提取句子特征。 课前说明 1、这是…

Linux CentOS配置阿里云yum源

一:先备份文件,在配置失败时可以恢复 cd /etc/yum.repos.d mkdir back mv *.repo back 二:下载阿里云yum源 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yum.repos.d/epel…

网络工程师回顾学习

根据书本目录,写下需要记忆的地方: 参考之前的笔记: 网络工程师回答问题_one day321的博客-CSDN博客 重构第一部分需要记忆的: 第一章:计算机网络概论 计算机网络的定义和分类:计算机网络是指将地理位…

如何定义类

类是将数据和方法封装在一起的一种数据结构,其中数据表示类的属性,方法表示类的行为,所以定义类实际上就是定义类的属性与方法。用户定义一个类实际上就是定义一个新的数据类型。在使用类之前,必须先定义它,然后才可利…

软件测试需求分析是什么?为什么需要进行测试需求分析?

在软件开发中,软件测试是确保软件质量的重要环节之一。而软件测试需求分析作为软件测试的前置工作,对于保证软件测试的顺利进行具有重要意义。软件测试需求分析是指对软件测试的需求进行细致的分析和规划,以明确测试的目标、任务和范围&#…

2021年电工杯数学建模B题光伏建筑一体化板块指数发展趋势分析及预测求解全过程论文及程序

2021年电工杯数学建模 B题 光伏建筑一体化板块指数发展趋势分析及预测 原题再现: 国家《第十四个五年规划和 2035 年远景目标纲要》中提出,将 2030 年实现“碳达峰”与 2060 年实现“碳中和”作为我国应对全球气候变暖的一个重要远景目标。光伏建筑一体…

RABC权限模型与Spring Security

今天,我将带你进入一个充满策略和刺激的领域——权限之战。在这场战斗中,我们的主角是RABC权限模型(Role-Based Access Control)和Spring Security,他们将共同为我们打造一个安全稳定的世界。 权限模型:游戏…

通俗理解repartition和coalesce区别

官方的解释 reparation 返回一个具有恰好numPartitions分区的新RDD。 可以增加或减少此RDD中的并行级别。在内部,reparation会使用shuffle来重新分发的数据。 如果要减少此RDD中的分区数量,请考虑使用coalesce,这样可以避免执行shuffle。 coalesce 返回一个新的RDD,该RDD被…

Zookeeper3.7.1分布式安装部署

上传安装文件到linux系统上面 解压安装文件到安装目录 [zhangflink9wmwtivvjuibcd2e package]$ tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz -C /opt/software/3. 修改解压文件名 [zhangflink9wmwtivvjuibcd2e software]$ mv apache-zookeeper-3.7.1-bin/ zookeeper-3.7…

Qt OpenGL相机系统

文章目录 一、简介二、实现代码三、实现效果参考资料效果展示 一、简介 一直偷懒没有学习OpenGL,乘着这段有点时间重新学习一下OpenGL,做一个简单的小工具,有助于后面理解OSG。我们都知道OpenGL中存在着下面几个坐标空间:模型空间(物体空间)、世界空间、观察空间(或者称…

【Linux】:使用git命令行 || 在github创建项目 || Linux第一个小程序——进度条(进阶版本)

在本章开始之前还是先给大家分享一张图片 这是C的笔试题 感兴趣的同学可以去试一试 有难度的哟 也可以直接在牛客网直接搜索这几道题目哈 好了今天我们正式进入我们的正题部分 🕖1.使用git命令行 安装git yum install git🕠2.在github创建项目 使用…

【微服务】一体化智慧工地管理平台源码

智慧工地系统是一种利用人工智能和物联网技术来监测和管理建筑工地的系统。它可以通过感知设备、数据处理和分析、智能控制等技术手段,实现对工地施工、设备状态、人员安全等方面的实时监控和管理。 一、智慧工地让工程施工智能化 1、内容全面,多维度数…

在直播系统中使用SRT协议传输视频

目录 1、简述 2、NDI、RTSP协议的优缺点 3、SRT协议简介 4、SRT协议链接地址URL格式 (1)listener: (2)caller: 5、手机发送SRT实时音视频 6、OBS中的设置 7、在vMix中的设置 8、写在最后 1、简述 …

前端框架Vue学习 ——(六)Vue组件库Element

文章目录 Element 介绍快速入门常见组件表格分页Dialog 对话框组件表单 Container 布局容器 Element 介绍 Element:是饿了么团队研发的,一套为开发者、 设计师和产品经理准备的基于Vue 2.0的桌面端组件库。 组件:组成网页的部件,…

VR全景如何助力乡村振兴,乡村发展在哪些方面用到VR全景技术

引言: 乡村振兴是当今中国发展的重要战略,也是推动农村经济社会全面发展的关键举措。在这一过程中,虚拟现实(VR)全景技术正逐渐崭露头角,为乡村振兴提供了机遇。 一.VR全景技术的概念和应用 1…

Leetcode刷题详解——括号生成

1. 题目链接:22. 括号生成 2. 题目描述: 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例 1: 输入:n 3 输出:["((()))","(()…

Linux DataEase数据可视化分析工具结合cpolar实现远程访问

文章目录 前言1. 安装DataEase2. 本地访问测试3. 安装 cpolar内网穿透软件4. 配置DataEase公网访问地址5. 公网远程访问Data Ease6. 固定Data Ease公网地址 前言 DataEase 是开源的数据可视化分析工具,帮助用户快速分析数据并洞察业务趋势,从而实现业务…