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.rhkb.cn/news/187282.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

gird 卡片布局

场景一:单元格大小相等 这承载了所有 CSS Grid 中最著名的片段,也是有史以来最伟大的 CSS 技巧之一: 等宽网格响应式卡片实现 .section-content {display: grid;grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));gap: 10px; …

list部分接口模拟实现(c++)

List list简介list基本框架list构造函数list_node结构体的默认构造list类的默认构造 push_back()iteartor迭代器迭代器里面的其他接口const迭代器通过模板参数实现复用operator->() insert()erase()clear()析构函数迭代器区间构造拷贝构造operator() list简介 - list可以在…

使用 pubsub-js 进行消息发布订阅

npm 包地址 github 包地址 pubsub-js 是一个轻量级的 JavaScript 基于主题的消息订阅发布库 ,压缩后小于1b。它具有使用简单、性能高效、支持多平台等优点,可以很好地满足各种需求。 功能特点: 无依赖同步解耦ES3 兼容。pubsub-js 能够在…

Angular 由一个bug说起之一:List / Grid的性能问题

在angular中,MatTable构建简单,使用范围广。但某些时候会出现卡顿 卡顿情景: 1:一次性请求太多的数据 2:一次性渲染太多数据,这会花费CPU很多时间 3:行内嵌套复杂的元素 4:使用过多的…

11月份 四川汽车托运报价已经上线

中国人不骗中国人!! 国庆小长假的高峰期过后 放假综合症的你还没痊愈吧 今天给大家整理了9条最新线路 广州到四川的托运单价便宜到💥 核算下来不过几毛钱💰 相比起自驾的漫长和疲惫🚗 托运不得不说真的很省事 - 赠送保险 很多客户第一次运车 …

LeetCode 17. 电话号码的字母组合 中等

题目 - 点击直达 1. 17. 电话号码的字母组合 中等1. 题目详情1. 原题链接2. 题目要求3. 基础框架 2. 解题思路1. 思路分析2. 时间复杂度3. 代码实现 3. 知识与收获 1. 17. 电话号码的字母组合 中等 1. 题目详情 1. 原题链接 LeetCode 17. 电话号码的字母组合 中等 2. 题目要…

unity line renderer绘制的颜色不是想要的红色

线条不是暗红色的,用的是默认的红色 将材质选则为如下即可

C# OpenCvSharp DNN HybridNets 同时处理车辆检测、可驾驶区域分割、车道线分割

效果 项目 代码 using OpenCvSharp; using OpenCvSharp.Dnn; using System; using System.Collections.Generic; using System.Drawing; using System.IO; using System.Linq; using System.Numerics; using System.Text; using System.Windows.Forms;namespace OpenCvSharp_D…

Python使用腾讯云SDK实现对象存储(上传文件、创建桶)

文章目录 1. 开通服务2. 创建存储桶3. 手动上传文件并查看4. python上传文件4.1 找到sdk文档4.2 初始化代码4.3 region获取4.4 secret_id和secret_key获取4.5 上传对象代码4.6 python实现上传文件 5 python创建桶 首先来到腾讯云官网 https://cloud.tencent.com/1. 开通服务 来…

vue项目pdf文件的预览

1.下载 您可以在以下网址下载pdfjsLib&#xff1a;https://github.com/mozilla/pdf.js pdfjsLib是一个开源项目&#xff0c;您可以在GitHub上找到其源代码和相关资源。 2.放置文件位置 3.进入 在index.html引入 <script src"<% BASE_URL %>static/pdfjs-dist/b…

C/C++输出硬币翻转 2021年6月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

目录 C/C硬币翻转 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 C/C硬币翻转 2021年6月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 假设有N个硬币(N为不大于5000的正整数)&#xff0c;从1…

ChatGPT 宕机?OpenAI 将中断归咎于 DDoS 攻击

您的 ChatGPT 已关闭吗&#xff1f;您是否遇到 ChatGPT 问题&#xff0c;例如连接问题或遇到“长响应时出现网络错误”&#xff1f;– ChatGPT 遭受了一系列 DDoS 攻击&#xff0c;显然是由匿名苏丹组织策划的。 OpenAI 的 ChatGPT 是一款流行的人工智能聊天机器人&#xff0c;…

工商银行卡安全码怎么看

工商银行的安全码&#xff0c;作为一项至关重要的安全措施&#xff0c;旨在保护用户的银行账户和交易安全。为了查看工商银行的安全码用户需要按照以下步骤操作&#xff1a; 首先&#xff0c;用户需要使用电脑或手机访问工商银行的网上银行平台。在平台首页&#xff0c;用户需要…

2023年A股借壳上市研究报告

第一章 借壳上市概况 1.1 定义 借壳上市作为一种独特的资本市场操作手法&#xff0c;历来是企业拓展融资渠道和实现市场战略目标的重要途径。具体来说&#xff0c;借壳上市可分为狭义与广义两种模式。在狭义的定义下&#xff0c;借壳上市是指一家已上市的公司的控股母公司&am…

JVM虚拟机-虚拟机性能监控、故障处理工具

1基础故障处理工具 jps&#xff08;JVM Process Status Tool&#xff09;是&#xff1a;虚拟机进程状况工具 作用&#xff1a;可以列出正在运行的虚拟机进程&#xff0c;并显示虚拟机执行主类&#xff08;Main Class&#xff0c;main()函数所在的类&#xff09;名称以及这些进…

基于遗传算法优化的直流电机PID控制器设计

PID控制器是工业控制中常用的一种控制算法&#xff0c;通过不断调节比例、积分和微分部分来实现对系统的稳定控制。然而&#xff0c;在一些复杂系统中&#xff0c;传统的PID参数调节方法可能存在局限性。本文将介绍一种基于遗传算法优化的直流电机PID控制器设计方法&#xff0c…

CSS3 多媒体查询、网格布局

一、CSS3多媒体查询&#xff1a; CSS3 多媒体查询继承了CSS2多媒体类型的所有思想&#xff0c;取代了查找设备的类型。CSS3根据设置自适应显示。 多媒体查询语法&#xff1a; media not|only mediatype and (expressions) { CSS 代码...; } not: not是用来排除掉某些特定…

系列二十二、idea Live Templates

一、idea Live Templates 1.1、Java Group 1.1.1、fast fast 快速在类上添加注解Data AllArgsConstructor NoArgsConstructor Accessors(chain true) ToString(callSuper true) 1.1.2、getThreadName getThreadName快速获取当前线程的名字Thread.currentThread().getName…

【Git】gui图形化界面的使用、ssh协议以及idea集成Git

目录 gui图形化界面的使用 介绍 特点 gui图形的使用 ssh协议 介绍 步骤及概念 ssh协议的使用 配置公钥 idea集成Git idea配置git IDEA安装gitee IDEA中登入Git ​编辑 项目分享 克隆分享的项目 ​编辑 ​编辑 idea上传远程 gui图形化界面的使用 介绍 GUI&#xff08…

Docker进阶——再次认识docker的概念 Docker的结构 Docker镜像结构 镜像的构建方式

前言 在微服务大量应用的互联网时代&#xff0c;经常能看到docker的身影。作为docker的爱好者&#xff08;在服务器安装MySQL&#xff0c;Redis。。。我用的都是docker&#xff09;&#xff0c;我也会持续深入学习和认识docker。 本篇博客再次介绍docker的基本概念&#xff0…