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

news2025/1/17 0:11:12

系列文章目录

第一章 安卓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

全部通过,那么恭喜你

四、视频教程

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Unity基础】4.动画Animation

【Unity基础】4.动画Animation 大家好,我是Lampard~~ 欢迎来到Unity基础系列博客,所学知识来自B站阿发老师~感谢 (一)Unity动画编辑器 (1)Animation组件 这一张我们要学习如何在unity编辑器中&…

神经网络常用模型与应用

上手AI的一个捷径就是了解和使用各种网络模型,结合实际场景去打造自己的应用。神经网络模型是人类的共同财富。 神经网络 神经网络可以分为三种主要类型:前馈神经网络、反馈神经网络和图神经网络。 前馈神经⽹络(feedforward neural netwo…

mybatis mapper.xml转建表语句

从网上下载了代码&#xff0c;但是发现没有DDL建表语句&#xff0c;只能自己手动创建了&#xff0c;感觉太麻烦&#xff0c;就写了一个工具类 将所有的mapper.xml放入到一个文件夹中&#xff0c;程序会自动读取生成建表语句 依赖的jar <dependency><groupId>org.d…

非常详细的git-flow分支管理流程配置及使用

非常详细的git-flow分支管理流程配置及使用。 git-flow有两个涵义,一个是指软件开发领域的版本管理流程Gitflow。另一个是指git命令工具git flow。 目前业界主流的版本管理流程是Gitflow 和 trunk-based。 Gitflow流行的比较早。但是目前的流行度要低于 trunk-based模式工作…

Linux系统:OpenSSH7.4p升级到9.0p(服务器漏洞)

清华大学开源软件镜像站下载地址&#xff1a; https://mirrors.tuna.tsinghua.edu.cn/pub/OpenBSD/OpenSSH/portable/openssh-9.0p1.tar.gz 一、升级 0、安装Telnet &#xff08;1&#xff09;为防止安装失败&#xff0c;无法用ssh做远程连接&#xff0c;因此先安装telnet yum…

elasticsearch3-索引库的操作

个人名片&#xff1a; 博主&#xff1a;酒徒ᝰ. 个人简介&#xff1a;沉醉在酒中&#xff0c;借着一股酒劲&#xff0c;去拼搏一个未来。 本篇励志&#xff1a;三人行&#xff0c;必有我师焉。 本项目基于B站黑马程序员Java《SpringCloud微服务技术栈》&#xff0c;SpringCloud…

视屏点播项目

项目背景 大家应该在电脑上刷过视频吧,这个项目就是模拟一下我们刷视频的整个流程,我们要做的是一个类似B站的网页,这里面包含视频的上传修改和观看以及删除,注意我这个是一个简易版本的,在后面我会做一个升级,增加其他的功能. 基本原理 下面我们说一下我们项目的基本原理.我…

RabbitMQ快速实战以及集群架构详解

一、 MQ 介绍 1 、什么是 MQ &#xff1f;为什么要用 MQ &#xff1f; ChatGPT 中对于消息队列的介绍是这样的&#xff1a; MQ &#xff1a; MessageQueue &#xff0c;消息队列。这东西分两个部分来理解&#xff1a;队列&#xff0c;是一种 FIFO 先进先出的数据结构。 消…

社区团购商城小程序v18.1开源独立版+前端

新增后台清理缓存功能 修复定位权限 修复无法删除手机端管理员 11月新登录接口修复&#xff01; 修复商家付款到零钱&#xff0c; 修复会员登陆不显示头像&#xff0c; 修复无法修改会员开添加绑定

elasticsearch10-查询文档处理

个人名片&#xff1a; 博主&#xff1a;酒徒ᝰ. 个人简介&#xff1a;沉醉在酒中&#xff0c;借着一股酒劲&#xff0c;去拼搏一个未来。 本篇励志&#xff1a;三人行&#xff0c;必有我师焉。 本项目基于B站黑马程序员Java《SpringCloud微服务技术栈》&#xff0c;SpringCloud…

C++核心编程之类和对象---C++面向对象的三大特性--封装

目录 类和对象 类和对象的概念 C面向对象的三大特性 一、封装 封装案例1&#xff1a;设计一个学生类&#xff0c;可以给姓名和学号赋值&#xff0c;可以显示学生的姓名和学号。 二、访问权限 访问权限有三种 struct和class的区别 三、成员属性私有化 成员属性私有化的…

第十三章总结

一.泛型 1.定义泛型类 泛型机制语法&#xff1a; 类名<T> 其中&#xff0c;T是泛型的名称&#xff0c;代表某一种类型。 【例13.6】创建带泛型的图书类 代码&#xff1a; 结果&#xff1a; 2.泛型的常规用法 (1)定义泛型类时声明多个变量 class MyCla…

【MySQL集群一】CentOS 7上搭建MySQL集群:一主一从、多主多从

CentOS 7上搭建MySQL集群 介绍一主一从步骤1&#xff1a;准备工作步骤2&#xff1a;安装MySQL步骤3&#xff1a;配置主服务器步骤4&#xff1a;创建复制用户步骤5&#xff1a;备份主服务器数据&#xff0c;如果没有数据则省略这一步步骤6&#xff1a;配置从服务器步骤7&#xf…

Javase | 集合-上

目录&#xff1a; 一、集合&#xff1a;1.集合的概述2.集合的分类 二、“单个方式”存储元素&#xff1a;1.Collection1.1 Collection的概述1.2 Collection接口中常用的方法Iterator<T> iterator( ) 1.3 Collection下的子接口 2.Iterable&#xff1a;2.1 Iterable的概述2…

国内AI语言大模型【星火】各类模块及部分功能使用方法介绍

一、前言 现在AI语言大模型是百花齐放,挺好!有竞争,有发展,才能推出更好的产品。现在,科大讯飞就推出了大语言模型——星火!能够学习和理解人类的语言,进行多轮对话,回答问题,高效便捷地帮助人们获取信息、知识和灵感。星火在对话栏设置了三个插件:文档回答、PPT生成…

Java中transient关键字的详细总结

Java中transient关键字的详细总结 概要介绍 本文要介绍的是Java中的transient关键字&#xff0c;transient是短暂的意思。对于transient 修饰的成员变量&#xff0c;在类的实例对象的序列化处理过程中会被忽略。 因此&#xff0c;transient变量不会贯穿对象的序列化和反序列化…

C2基础设施威胁情报对抗策略

威胁情报是指在信息安全和安全防御领域&#xff0c;收集、分析和解释与潜在威胁相关的信息&#xff0c;以便预先发现并评估可能对组织资产造成损害的潜在威胁&#xff0c;是一种多维度、综合性的方法&#xff0c;其通过信息的收集、分析和研判&#xff0c;帮助组织了解可能对其…

Linux学习第11天:字符设备驱动开发:一字一符总见情

本文是驱动开发的第一篇笔记。主要内容是字符设备驱动开发最基础的内容&#xff0c;主要包括字符设备的概念、开发步骤以及一个十分重要的概念&#xff1a;设备号。其思维导图能简单的显示本文的基本框架&#xff0c;如下&#xff1a; 一、字符设备 字符设备就是一个一个字节&a…

MySQL注入绕安全狗脚本 -- MySQLByPassForSafeDog,以及端口爆破工具 -- PortBrute配置使用

工具介绍 此Tamper仅仅适用于MySQL数据库&#xff0c;在SQLMap使用过程中添加参数–tamperMySQLByPassForSafeDog。 安装与使用 1、安装网站安全狗Apache最新版 2、启用安全狗&#xff0c;不加MySQLByPassForSafeDog绕狗Tamper: python sqlmap.py -u "http://192.168.…

又一个Python调试利器

迷途小书童 读完需要 5分钟 速读仅需 2 分钟 1 简介 在编程过程中&#xff0c;几乎难以避免的会出现错误。事实上&#xff0c;程序员为了消除错误&#xff0c;要花费大量的时间在代码调试上。在调试过程中&#xff0c;使用 print() 语句来理解程序流程和发现意外行为无疑是最常…