自己编译 Android 源码烧写到手机里,需要做什么准备工作?

2022-03-23 20:41:15 +08:00
 amiwrong123

目前手里有书《深入理解 Android 内核设计思想》《深入理解 Android 卷 I 》,我可以按照书上的步骤编译出 img 来。这两本书里都有介绍怎么编译 Android 源码。

但之前确实没有烧写过手机,只是之前买过小米手机(忘了什么型号,这手机还掉了),然后升级过 ROM ,我记得步骤是先解锁,然后用 论坛上的方法来 线刷。

  1. 第一个问题,我是从淘宝上随便买一个二手安卓手机就可以吗(如何询问卖家,哪种二手手机才是我需要的 可以烧写的手机)?是不是最好买小米的,因为小米的可以解锁

  2. 如果把自己编译出来的 img ,烧写进手机里,我可以之后自己再去百度。不过大佬们也可以推荐点 博客或者教程。

搞这个事的目的,主要是为了研究 Android 源码,光看书总觉得少了点什么。理论上,我可以加打印日志,或者修改源码了。

9701 次点击
所在节点    Android
24 条回复
shangyu7
2022-03-25 17:27:47 +08:00
这都要问,不建议继续搞下去
huruwo
2022-03-25 18:24:08 +08:00
纯净的 ubuntu 环境编译 ASOP 完成步骤

### 下载同步 repo 源码

#### 1.安装 repo

repo:管理多个 git 项目的项目管理工具

```
sudo apt install repo
```
#### 2.安装 curl
curl:下载工具

```
sudo apt-get install curl
```

#### 3.下载全局 repo 配置文件

参考 https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/

```

mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
```

下载完成检测

```
huruwo@ubuntu:~/bin$ ls
repo
```

#### 4.设置更新镜像地址

```
sudo gedit ~/.bashrc
```
新增代码

```
# repo
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'
```
配置生效
```
source ~/.bashrc
```

![599c69079316046551daba98c6bfc61f.png](en-resource://database/1886:1)


#### 5.配置 git config 信息

```
git config --global user.email "1458476478@qq.com"
git config --global user.name "huruwo"
```

#### 6.查询适配的系统版本 初始化 repo

https://source.android.com/setup/start/build-numbers#source-code-tags-and-builds

![deda6924d9dbfb70dcb2bd25548eda0f.png](en-resource://database/1888:1)


选择 android-10.0.0_r30 进行下载编译

```
python3 ~/bin/repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-10.0.0_r30
```

初始化仓库 不要很久

#### 7.同步代码

耗时最久 还容易失败的操作

``
python3 ~/bin/repo sync
```

### 编译

#### 1.安装 open jdk

```
sudo apt install openjdk-8-jdk-headless
```
nicevar
2022-03-27 11:54:47 +08:00
楼主可能连 fastboot 这东西都还不知道,更不要说 EDL 了,手机不是随便就能刷 ROM 的,驱动、BL 解锁、校验这些东西都有影响,这些问题不解决,ROM 刷进去你也没法开机启动,你需要有一整套开发板还得配备资料齐全,从头开始学习,uboot/UEFI 之类的,再往前还得知道数电模电,坑很大,如果知识储备相差很远真不如在模拟器玩玩就好了。
SupperMary
2022-04-06 00:29:35 +08:00
楼上说的蛮全的。小小的给几个关键点
如果你不需要调试 WiFi ,蓝牙这些硬件,只是单纯的看 framework 的话,直接用虚拟机就可以。
如果你需要调试硬件,推荐 pixel 或者配套安卓源码的机子。

编译环境:Ubuntu ,CPU 频率尽量高,核数尽量多,最好使用固态来编译。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/842458

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX