Android_守望者

Android系统编译之AOSP刷机

2020-12-13  本文已影响0人  过期的薯条

1.引言

19年加入一家生产机顶盒的公司,第一次接触到Android 系统相关的知识。拓宽了我职业知识面。让我知道了原来编译系统可以在服务器上进行;知道了framework开发日常工作内容;知道使用串口刷机;知道使用一些常用的Linux命令和Linux工具。20年又加入了一家Android TV 开发公司。再次接触到Android系统编译的知识。系统编译知识对我而言充满了神秘感。像一个披着红布的新娘,坐着自己的面前,等待着我去掀开她的头巾。内心充满了好奇和激动。今天正式开启这块内容的学习,解锁内心的好奇。

2.开发环境

操作系统: Windows 10
远程服务器 ubantu 18.04
手机 Pixel
ssh工具 xshell
网络环境 能翻墙访问google

3.源码下载

参考:android官网下载指导

image-20201129124539154.png

假如不能翻墙,就通过清华镜像,按照官网的步骤一步一步执行即可。千万要注意同步的代码分支,一定要和刷机手机相匹配

4.下载驱动

官方驱动文档

因为我下载的是android-10.0.0_r5, 对应的build为 QP1A.191005.007.A1

image-20201129150038228.png

将这俩个文件下载下来之后,解压得到如下俩个sh:

extract-google_devices-sailfish.sh
extract-qcom-sailfish.sh

这个俩个sh最终生成vendor文件夹。是用bash命令写的。所以我们也得用bash去执行。但是在windows,运行会提示不成功。得在ubantu上运行

bash extract-google_devices-sailfish.sh
bash extract-qcom-sailfish.sh

运行成功,提示如下:并且得到一个vendor文件夹

Type "I ACCEPT" if you agree to the terms of the license: I ACCEPT

vendor/
vendor/google_devices/
vendor/google_devices/sailfish/
vendor/google_devices/sailfish/android-info.txt
vendor/google_devices/sailfish/BoardConfigPartial.mk
vendor/google_devices/sailfish/proprietary/
vendor/google_devices/sailfish/proprietary/vendor.img
vendor/google_devices/sailfish/device-partial.mk
vendor/google_devices/marlin/
vendor/google_devices/marlin/BoardConfigVendor.mk
vendor/google_devices/marlin/device-vendor-sailfish.mk

5.编译源码

官方文档

6.FastBoot刷机

进入fastboot有俩种方式:

  1. 在关机的情况下,同时按下power键和音量键,在boot驱动界面 手机插上USB线,进入CMD命令:

    fastboot devices  -- 查看设备是否连上
    
  1. 在开机情况下,手机插上USB线,进入CMD命令:

    adb reboot bootloader              -- 进入fastboot模式
    fastboot devices                 -- 查看设备是否连上
    

将服务器上的img,拷贝到本地,打开命令行执行下面的步骤:

fastboot  flashing  unlock 
fastboot  flash  boot  E:\aosp\boot.img
fastboot  flash  ramdisk E:\aosp\ramdisk.img 
fastboot  flash  ramdisk-recovery E:\aosp\ramdisk-recovery.img 
fastboot  flash  system  E:\aosp\system.img 
fastboot  flash  userdata E:\aosp\userdata.img 
fastboot  flash  vendor E:\aosp\vendor.img 
fastboot  flash  system_other E:\aosp\system_other.img 
fastboot reboot
image-20201129185824023.png

执行完毕,手机将会自动重启。

7.问题总结

image-20201129190214415.png

此时,让设备进入fastboot model。双击flash-all.bat 这个脚本会自动将img刷进手机中。之后,在将自己的img 以上述的方式刷进去。就能正常开机。

8.各个img简介

android 系统映射文件

img名称 img描述
system.img Android系统运行的程序包,framework就在此img中。挂载到/system下
boot.img 包含内核启动参数
ramdisk.img 小型文件系统,是android系统启动的关键。包含了android 根目录的镜像
userdata.img 各程数据存储所在,被挂载到/data目录下
cache.img 存储系统或用户应用产生的临时数据,通常的镜像文件名为chche.img
上一篇下一篇

猜你喜欢

热点阅读