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

相关文章:

aosp定制android系统

目录 AOSP 准备工作(配置) 确定机型和版本 初始化 git安装 curl安装 同步源码 环境变量 创建aosp目录 指定同步版本 解下来安装编译需要的依赖 编译aosp源码 刷入系统 AOSP 全称 Android Open Source Project 是指Android开源项目,它是由Google主导的…...

程序员的护城河:构建数字世界的守护者

目录 前言1 持续学习的愿望和能力2 与他人沟通和合作的能力3 追求技术的深度和广度4 具备分享的精神结语 前言 在数字化时代,程序员是现代社会的护城河。他们的工作不仅是构建应用程序和系统,更是为保障系统安全、数据防护以及网络稳定发挥着至关重要的…...

Sample Average Approximation,SAA

1. sample average approximation,SAA “样本平均近似”(Sample Average Approximation,SAA)方法是数学优化和运筹学领域广泛使用的优化技术。它主要用于处理优化问题的目标函数或约束涉及随机或不确定参数的情况。SAA尤其适用于具有随机或概…...

springbootMysql文华学院青年志愿者服务预约系统97973-计算机毕业设计项目选题推荐(附源码)

摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 文华学院青年志愿者服务预约系统,主要的模块包括管理员:后台首页、轮播图、通知公告管理、资源管理(新闻资…...

Go 语言向函数传递数组

Go 语言向函数传递数组 在 Go 语言中,数组是值类型,因此将数组传递给函数时,将复制整个数组。如果数组非常大,这可能会导致性能问题。为了避免复制整个数组,可以通过传递切片(Slice)来传递数组…...

高压放大器在铁电测试中的用途有哪些

高压放大器在铁电测试中有多种重要用途。铁电材料是指具有自发极化的晶体材料,具有一系列特殊的电学和物理性质。铁电测试是研究铁电材料性质的关键实验手段之一。下面安泰电子将介绍高压放大器在铁电测试中的几个主要用途。 极化场施加:铁电材料的最显著…...

一款高效、简洁的数据处理和清洗加工工具,值得收藏!

随着数字化时代的快速发展,数据已经成为企业运营和决策的重要依据。然而,处理和分析大量复杂数据是一个具有挑战性的任务,特别是在数据清洗和加工环节。为了满足这一需求,JVS-BI提供了一套高效、简洁的数据处理和分析解决方案。 …...

很多个pdf怎么合并在一起?

很多个pdf怎么合并在一起?作为一个办公室的伙伴,对于PDF格式肯定不会陌生。它强大的功能为我们的工作提供了许多便利。由于PDF文件格式的稳定性和安全性较高,我们通常在工作或学习中使用它来传输文件,很多人都喜欢将办公文件都做成…...

Ubuntu apt更换国内镜像源,apt 更新源,apt 国内镜像

详细一篇: https://midoq.github.io/2022/05/30/Ubuntu20-04%E6%9B%B4%E6%8D%A2%E5%9B%BD%E5%86%85%E9%95%9C%E5%83%8F%E6%BA%90/ 更换方法 Ubuntu采用apt作为软件安装工具,其镜像源列表记录在/etc/apt/source.list文件中。 首先将source.list复制为s…...

时序预测 | MATLAB实现WOA-CNN-BiLSTM-Attention时间序列预测(SE注意力机制)

时序预测 | MATLAB实现WOA-CNN-BiLSTM-Attention时间序列预测(SE注意力机制) 目录 时序预测 | MATLAB实现WOA-CNN-BiLSTM-Attention时间序列预测(SE注意力机制)预测效果基本描述模型描述程序设计参考资料 预测效果 基本描述 1.MAT…...

VINS-Mono-后端优化 (一:预积分残差计算-IMU预积分约束)

这里先回顾一下预积分是怎么来的 VINS-Mono-IMU预积分 (三:为什么要预积分预积分推导) 这里贴出预积分的公式 具体含义解释看对对应的文章 整个误差函数如下 预积分 α \alpha α β \beta β γ \gamma γ 是用 IMU 预积分获得的增量&a…...

怎么调整excel表里面所有单元格中,某个相同字体大小,单元格中其他文字大小不变?

环境: excel 2021 python3.8 问题描述: 怎么调整excel表里面所有单元格里面1这个字体大小,单元格里面其他文字不变? excel表里面。很多单元格都有1,1和文字都是10号字体,现在想把全部1字字体调整为16号其他字大小都不变 解决方案: 一、使用python来实现,经过测…...

流式数据库引擎备受关注,亚信安慧AntDB数据库受邀参加“2023中国PostgreSQL数据库生态大会”

11月3日至5日,2023中国PostgreSQL数据库生态大会在北京中科院软件所大报告厅盛大召开,大会现场百余位专家学者、企业、用户代表及线上数千位观众,就近年来国产数据库技术与市场变革进行深入探讨。湖南亚信安慧科技有限公司(简称&a…...

kafka开启SSL认证(包括内置zookeeper开启SSL)

zookeeper和kafka的SSL开启都可单独进行 生成SSL证书 使用jre自带的keytool工具生成,linux和windows下生成的证书可以通用 生成含有一个私钥的keystore文件,有效期10年(本文证书密码统一使用test123) keytool -genkeypair -ali…...

Powerpoint不小心被覆盖?PPT误删文件如何恢复?

PowerPoint不小心删除了,这可能是众多学生和工作人员最头痛的事情了。PPT被覆盖或误删可能意味着几个小时的努力付之东流。那么PPT覆盖的文档要如何救回来呢?小编将会在本篇文章中为大家分享几个解决方案,使PPT文档覆盖还原操作成为可能&…...

美团产品经理面试题大解密:流量VS口碑,如何找到最佳平衡点?

大家好,我是你们的小米。最近我参加了一场美团的产品经理面试,其中一个问题让我颇为犯愁:“产品应该追求高流量还是高口碑?”这个问题困扰了很多产品经理,因为两者似乎都对产品的成功有着重要影响。今天我就来和大家一…...

docker部署tomcat

1.下载tomcat镜像 尽量去下载最新版本 直接输入docker pull tomcat 后面不跟版本号(要是跟版本号,你还要去官网去查看是否有此版本,太麻烦了) 2.查看镜像 3.通过镜像去run启动容器 -d 就是后台运行 --name 给容器取个新名字 -p 3355:8080…...

大语言模型(LLM)综述(七):大语言模型设计应用与未来方向

A Survey of Large Language Models 前言8 A PRACTICAL GUIDEBOOK OF PROMPT DESIGN8.1 提示创建8.2 结果与分析 9 APPLICATIONS10 CONCLUSION AND FUTURE DIRECTIONS 前言 随着人工智能和机器学习领域的迅速发展,语言模型已经从简单的词袋模型(Bag-of-…...

牛客网:链表分割

一、题目 函数原型: ListNode* partition(ListNode* pHead, int x) 二、思路 根据题意,可以设置两个新的链表,将原链表中所有小于x的结点链接到链表1中,大于x的结点链接到链表2中,最后再将两个链表合并即可。 此题有两…...

pytorch(小土堆)深度学习

第五节课讲项目的创建和对比 第六节:Dataset,Dataloader Dataset提供一种方式区获取数据及其label(如何获取每一个数据及其label,告诉我们总共有多少的数据) Dataloader为后面的网络提供不同的数据形式 第七节:Dataset类代码实战 显示图片 f…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频

使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...