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

一,安卓aosp源码编译环境搭建

系列文章目录

第一章 安卓aosp源码编译环境搭建
第二章 手机硬件参数介绍和校验算法
第三章 修改安卓aosp代码更改硬件参数
第四章 编译定制rom并刷机实现硬改(一)
第五章 编译定制rom并刷机实现硬改(二)
第六章 不root不magisk不xposed lsposed frida原生修改定位
第七章 安卓手机环境检测软件分享
第八章 硬改之设备画像
第九章 修改Art虚拟机对指定app的指定函数进行拦截(一)
第十章 修改Art虚拟机对指定app的指定函数进行拦截(二)


文章目录

  • 系列文章目录
  • 前言
  • 一、物理机还是真机?
  • 二、安卓源码版本与机型
  • 三、编译环境搭建
    • ubunt安装
      • 1.关闭系统休眠
      • 2.增加交换分区
      • 3.更换下载源
      • 4.安装常用软件
      • 5.安装java和python
      • 6.安装编译所需的依赖库
      • 7.安装安卓平台工具
      • 8.拷贝安卓代码
      • 9.下载手机的驱动包
  • 四、视频教程

前言

傻瓜式操作, 人人都能编译操作系统, 每个感兴趣的人都可以基于谷歌安卓aosp源码定制自己的系统

一、物理机还是真机?

在这里插入图片描述

真机

作者测试后没用任何区别,真机优点是编译速度快10%,真机推荐戴尔G15520。满足ubuntu官方认证机型不会出现黑屏,键鼠触摸板不好用等问题,3060显卡还能玩3A大作,以后还可以搭建GPU环境玩人工智能深度学习,具体知识的笔记本型号可以查看这个列表http://ubuntu.com/certified/laptops

虚拟机

虚拟机优点是拷贝方便,编译速度也不慢,英特尔的CPU是有对虚拟机优化的指令。虚拟机推荐vmware16,分配CPU:6核+12线程,内存>12G,磁盘空间>300G,操作系统选择:ubuntu20.04(千万别选22.04,全是坑),不要用kali版本,kali在后面会有各种问题,kali擅长渗透,并且是当成一次性工具使用的那种。

二、安卓源码版本与机型

推荐安卓源代码版本:andriod-8.1.0_r1

理由是省磁盘空间,且支持机型较多:piexl2、piexl、piexl C、nexus 6P、nexus 5X

最新的安卓13代码有100G,手机推荐二手Pixel或者Pixel 3,性价比高,Nexus太老了可以埋了。

三、编译环境搭建

ubunt安装

安装ubunt过程很简单,大约用时20分钟
在这里插入图片描述
U版图安装好之后需要做以下修改

1.关闭系统休眠

设置-电源-节电-息屏设置为从不

2.增加交换分区

编译需要较大的内存

sudo swapoft -a
sudo fallocate -| 16G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

设置后输入free -h 查看是否生效
在这里插入图片描述

3.更换下载源

在这里插入图片描述
由于系统默认使用国外下载源,下载速度很慢,需手动更换至国内下载源,推荐腾讯

4.安装常用软件

sudo apt-get update
sudo apt-get install git net-tools
sudo apt install -y p7zip-full vim #解压软件
sudo apt install -y open-vm-tools open-vm-tools-dkms #虚拟机工具
sudo aptinstall-y meld #文件对比工具
sudo apt-get install vsftpd # ftp工具(非必须)

5.安装java和python

sudo apt-get install openjdk-8-jdk 

openjdk支持: aosp8 aosp9
openjdk11支持: aosp10-13

sudo apt-get install -y python2
rm -rf /usr/bin/python
ln -s /usr/bin/python2 /usr/bin/python

6.安装编译所需的依赖库

sudo apt-get install -y git-core gnupg flex bison build-essential zip curl
sudo apt-get install -y zliblg-dev gcc-multilib g++-multilib libc6-dev-i386
sudo apt-get install -y libncurses5 lib32ncurses5-dev x11proto-core-dev
sudo apt-get install -y libx11-dev lib32z1-dev libgl1-mesa-dev
sudo apt-get install -y libxml2-utils xsltproc unzip fontconfig m4
sudo apt-get install -y libx11-dev:i386 libreadline6-dev:i386
sudo apt-get install -y gperf libncurses5-dev:i386
sudo apt-get install -y tofrodos python-markdown zliblg-dev:i386
sudo apt-get install -y dpkg-dev libsdl1.2-dev ccache

7.安装安卓平台工具

下载安装platform-tools并添加到环境https://developer.android.com/tools/releases/platform-tools

sudo vim ~/.bashrc
export PATH=/home/ggg/aosp/platform-tools:$PATH
sudo source ~/.bashrc

8.拷贝安卓代码

解压 aosp810r1.7z
安卓8.1的源码解压后有30G+70万个文件

不要从谷歌或者镜像服务器下载了,那会等到海枯石烂, 直接把下载好的源码压缩包U盘复制进去就行了

9.下载手机的驱动包

因需要下载对应手机的驱动包,具体提取驱动方法请自行百度,各机型的方法都有,本文就不一一阐述

谷歌手机的驱动从这里下载:https://developers.google.com/android/drivers?hl=zh-cn
非开源厂商的手机例如小米、一加等,可以从cm下载或者从厂家rom中提取。
cm下载地址:http://download.lineageos.org/changes

到这一步环境配置的已经差不多了

输入以下命令检查环境是否已经配置完成

free -h
echo $SHELL
java -version
python -v
cd /home/ggg/aosp/pixel &&source build /envsetup.sh
lunch aosp_sailfish-user
make

全部通过,那么恭喜你

四、视频教程

相关文章:

一,安卓aosp源码编译环境搭建

系列文章目录 第一章 安卓aosp源码编译环境搭建 第二章 手机硬件参数介绍和校验算法 第三章 修改安卓aosp代码更改硬件参数 第四章 编译定制rom并刷机实现硬改(一) 第五章 编译定制rom并刷机实现硬改(二) 第六章 不root不magisk不xposed lsposed frida原生修改定位 第七章 安卓…...

video 视频编解码一些debug方法

文章目录 一、通过命令去获取一些数据1.2 确定我们xml配置文件: 二、查看我们芯片支持的编码能力三、通过log去获取信息 这个文章的主要内容是为了后期性能方面的debug, 设计到前期的bringup则没有 一、通过命令去获取一些数据 获取媒体相关的参数: # getprop |…...

中秋国庆假期——模板推荐

要说最近能让人开心的事情是什么?大概就是下周将迎来8天假,小编帮大家数了数还有11天,就要放中秋国庆的假期了。作为一个资深打工人,本周的日常即将变成:上班想放假、下班想放假、想放假… 但是宝子们要注意,大家在盼…...

【配代码演示】Cookie和Session的区别

一、共同之处: cookie和session都是用来跟踪浏览器用户身份的会话方式。 二、工作原理: 1.Cookie的工作原理 (1)浏览器端第一次发送请求到服务器端 (2)服务器端创建Cookie,该Cookie中包含用户的…...

【Linux初阶】信号入门2 | 信号阻塞、捕捉、保存

文章目录 ☀️前言☀️一、信号阻塞🌻1.信号其他相关常见概念🌻2.信号在内核中的表示 ☀️二、信号捕捉(重点)🌻1.用户态 & 内核态🌻2.如何判断进程处于用户态或内核态🌻3.OS接口的访问方法…...

【已解决】:该该虚拟机似乎正在使用中。如果该虚拟机未在使用,请按“获取所有权(T)“按钮获取它的所有权。否则,请按“取消(C)“按钮以防损坏。

现象 启动VMware虚拟机,无法正常打开并出现以下信息: 原因 这是因为当运行一个“虚拟系统”时,为防止该系统被另外一个VMware程序打开,导致数据被修改或损坏,VMware会自动在该“虚拟系统”所在的文件夹下&#xff0c…...

系统架构常用的工具

HBase HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样&#xff…...

腾讯云2核4G服务器5M带宽 218元一年 优惠价格明细表

腾讯云2核4G服务器5M带宽可以选择轻量应用服务器或云服务器ECS,轻量2核4G5M带宽服务器218元一年: 腾讯云2核4G服务器5M带宽收费 腾讯云2核4G服务器可以选择轻量应用服务器或者ECS云服务器,云服务器ECS是专业级云服务器,大多数使用…...

[C++ 网络协议] 多播与广播

目录 1. 多播 1.1 多播的使用情形 1.2 多播的原理 1.3 如何实现多播 1.4 多播的代码实现 2. 广播 2.1 广播与多播的区别 2.2 广播的分类 2.3 实现广播 1. 多播 1.1 多播的使用情形 考虑一种情形,你要向10000名用户发送数据,此时如果用TCP提供服…...

IOS17正式版今日发布

北京时间9月19日凌晨,苹果公司正式向全球用户推送了期待已久的iOS 17正式版。此次更新为iPhone带来了多项激动人心的功能,包括对“电话”、“信息”、FaceTime通话的重大更新,“待机显示”以及音乐、小组件、Safari浏览器的升级等。 据了解&…...

2560. 打家劫舍 IV

沿街有一排连续的房屋。每间房屋内都藏有一定的现金。现在有一位小偷计划从这些房屋中窃取现金。 由于相邻的房屋装有相互连通的防盗系统,所以小偷 不会窃取相邻的房屋 。 小偷的 窃取能力 定义为他在窃取过程中能从单间房屋中窃取的 最大金额 。 给你一个整数数…...

java web中部署log4j.xml

标题:Java Web中部署log4j.xml 目录: 1. 介绍 2. 配置log4j.xml文件 3. 配置web.xml文件 4. 配置Spring框架 5. 配置Spring Bean 6. 总结 ## 1. 介绍 在Java Web开发中,日志记录是非常重要的一部分。log4j是一个常用的Java日志记录框架&am…...

【张兔兔送书第一期:考研必备书单】

考研书单必备 《数据结构与算法分析》《计算机网络:自顶向下方法》《现代操作系统》《深入理解计算机系统》《概率论基础教程(原书第10版》《线性代数(原书第10版)》《线性代数及其应用》赠书活动 八九月的朋友圈刮起了一股晒通知…...

基于Spring Boot+ Vue的健身房管理系统与实现

小熊学Java全能学面试指南:https://javaxiaobear.cn 摘要 随着健身行业的快速发展,健身房管理系统成为了提高管理效率和用户体验的重要工具。本论文旨在设计与实现一种基于前后端分离的健身房管理系统,通过前后端分离的架构模式,…...

ThreadLocal线程局部变量

1.原理 ThreadLocal是用来保存当前线程数据的,每一个线程的内部都有一个ThreadLocalMap,当前这个map中存储了以当前ThreadLocal作键,具体的数据作值的一个个Entry对象。 为什么非得以ThreadLocal对象作键呢?因为一个线程可能使用了…...

C++ Primer (第五版)第一章习题部分答案

在我自学C过程中,我选择了CPrimer这本书,并对部分代码习题进行了求解以及运行结果。接下来几个月我将为大家定时按章节更新习题答案与运行结果: 目录 1.9编写程序,使用while循环将50到100的整数相加 1.10 除了运算符将运算对象的值增加1之外,还有一个…...

Python与GUI集成:零基础也能开发国际象棋游戏

引言: 国际象棋,作为世界上最受欢迎的棋类游戏之一,拥有丰富的策略和深度。但是,你知道自己可以使用Python来创建一个简单的国际象棋游戏并为其添加图形用户界面(GUI)吗?在本教程中&#xff0c…...

SaaS软件能保证数据安全吗?

SaaS软件能保证数据安全吗? 本文将要尝试从各个方面尽可能客观的去阐述这个问题,而不是简单自嗨式的说简道云平台如何保障数据安全。 建议先收藏起来慢慢品! 01 SaaS安全到底是什么?——定义解读 本文所用SaaS平台>>>…...

方案:基于AI烟火识别与视频技术的秸秆焚烧智能化监控预警方案

一、方案背景 为严控秸秆露天焚烧,改善环境空气质量,各省相继发布秸秆禁烧工作内容。以安徽省为例,大气污染防治联席会议下发了该省2020年秸秆禁烧工作部署通知。2020年起,气象局将对全省秸秆焚烧火点实施卫星全年全时段监测&…...

phantomjs插件---实现通过链接生成网页截图

Phantomjs | PhantomJS 配置要求 windows下,安装完成phantomJS 设置phantomjs环境变量【也可直接使用phantomjs目录下的执行文件】 直接通过访问php文件执行/通过cmd命令行执行【phantomjs phantom_script.js】 linux下,安装完成phantomJS 设置phantomjs环境变量 直…...

SpringBoot分页实现查询数据

1.原生查询 1.1创建分页查询实体类 package com.itheima.pojo;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;import java.util.List;//分页查询结果封装类 Data NoArgsConstructor AllArgsConstructor public class PageBean {pr…...

Jetson Xavier NX 与飞控(Pixhawk 4 Mini)实现串口通信

一、飞控端配置 首先对 Pixhawk 4 Mini 烧录固件参考 Kakute H7 刷写 px4 固件_想要个小姑娘的博客-CSDN博客 烧录完成后打开 QGroundControl,进入参数设置并搜索 MAV,如下所示 然后修改 MAV_1_CONFIG,修改为自己想要连接机载电脑&#xf…...

为什么2022年秋招嵌入式开发岗位薪资大涨?

今天看到一个网友讨论的问题,其实这个问题也很简答。从嵌入式本身优势来说,首先是因为该行业人才人才需求大,据权威统计机构统计在所有软件开发类人才的需求中,对嵌入式工程师的需求达到全部需求量的60%~80%,并且每年以…...

在HTML里,attribute和property有什么区别?

在HTML中,attribute 和 property 之间的区别是一个常见但容易混淆的概念。它们都与HTML元素有关,但它们在功能、用途和行为上有所不同。以下是它们之间的主要区别: 定义和来源: Attribute: 它们是在HTML标记中定义的,通常用于提供…...

机器学习入门与实践:从原理到代码

💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 在本文中,我…...

SpringCloud在idea中一键启动项目

1、如下图文件中加上&#xff1a; <component name"RunDashboard"><option name"configurationTypes"><set><option value"SpringBootApplicationConfigurationType" /></set></option></component>…...

VB过程的递归调用,辗转相除法求最大公约数

VB过程的递归调用&#xff0c;辗转相除法求最大公约数 过程的递归调用&#xff0c;辗转相除法求最大公约数 Private Function gys(ByVal m%, ByVal n%) As IntegerDim r%r m Mod n m大或者n大都无所谓&#xff0c;这个不影响计算&#xff0c;由于辗转相除法的算法&#xff0c…...

OpenCV(三十九):积分图像

1.积分图像介绍 积分图像中的每个像素表示了原始图像中对应位置及其左上方矩形区域内像素值的总和。如图&#xff0c;p0表示原始图像蓝色区域内像素值的总和。 倾斜求和&#xff08;Skewed Sum&#xff09;是积分图像的一种扩展形式&#xff0c;用于计算图像区域内的像素和&…...

【Electron 拦截请求实现自定义网络处理】

文章目录 Electron 拦截请求实现自定义网络处理1. 获取默认会话2. 拦截请求3. 完整示例代码总结 Electron 拦截请求实现自定义网络处理 在 Electron 中&#xff0c;我们可以使用 session 模块来拦截和处理网络请求。通过拦截请求&#xff0c;我们可以对请求进行修改、添加请求…...

Pytest系列-内置标签skip和skipif 跳过测试用例的详细使用(5)

简介 skip和skipif&#xff0c;见名知意就是跳过测试&#xff0c;主要用于不想执行的代码&#xff0c;标记后&#xff0c;标记的代码不执行。希望满足某些条件才执行某些测试用例&#xff0c;否则pytest会跳过运行该测试用例实际常见场景&#xff1a;根据平台不同执行测试、跳…...

电子商务网站有哪些内容/关键词完整版

密集而有序的弹道攻击 以及有序的动态群体角色冲锋 带来的视觉冲击力极强 哪怕是像素级的单位 所造成的画面感也可以是宏伟的 转载于:https://www.cnblogs.com/dandansang/p/7133610.html...

建个企业网站还是开个淘宝店/美国最新新闻头条

http://blog.csdn.net/pipisorry/article/details/30311253 C语言的存储类型可分为&#xff1a;extern、auto、static、register。 外部变量定义在函数之外&#xff0c;通过同一个名字对外部变量的所有引用(即使这种引用来自于单独编译的不同函数)&#xff0c;实际上都是引用同…...

网站做多少屏合适/seo优化培训多少钱

效果预览 在线演示按下右侧的“点击预览”按钮在当前页面预览&#xff0c;点击链接全屏预览。https://codepen.io/zhang-ou/pen/zjoOgX可交互视频教程此视频是可以交互的&#xff0c;你可以随时暂停视频&#xff0c;编辑视频中的代码。请用 chrome, safari, edge 打开观看。htt…...

我想花钱做网站/企业网站开发费用

巧妙转换Excel文件(转)广大中小学教师已经习惯了利用Excel来进行数据的输入和处理&#xff0c;但是我们经常碰到这种情况&#xff0c;上级主管部门为了进行统考&#xff0c;往往会用VF编写一套软件&#xff0c;要求下属学校统一上报成绩的格式&#xff0c;上报的文件需是DBF格式…...

国外域名注册商网站/查询网站相关网址

题目如下&#xff1a; (1) 将代码写在.asm中&#xff0c;然后打开boxdos即可生成t1.exe. (2) 首先来分析一下&#xff0c;代码完成的功能。 assum cs:codesg codesg segmentmov ax,2000 // ax 2000mov ss,ax // ss 2000 mov sp,0 // sp 0add…...

佛山网站建设方案/百度广告推广怎么做

1057 数零壹 (20 分) 题目链接 算法分析 从字符串第一位开始到最后一位&#xff0c;如果是小写或大写的字母&#xff0c;依次更新sum的值&#xff0c;然后转化为二进制数&#xff0c;统计0和1的个数 代码实现 #include<bits/stdc.h> using namespace std;int main()…...