fastboot烧录镜像--VTS&GSI镜像替换
fastboot简介
Android提供的原生工具,主要用于替换镜像。
源码在SDK工程中,/system/core/fastboot目录下
安卓分区&镜像
- boot:boot 分区包含通过 mkbootimg 组合在一起的内核映像和 RAM 磁盘。为了直接刷写内核而不刷写新的 boot 分区,可以使用虚拟分区:
- kernel:kernel 虚拟分区仅覆盖内核(zImage、zImage-dtb、Image.gz-dtb),方法是写入新的映像来覆盖旧的映像。为此,它会确定 eMMC 中现有内核映像的起始位置并将新内核映像复制到该位置。请记住,新内核映像可能会大于现有内核映像。引导加载程序可以通过移动其后的任何数据来腾出空间或放弃出错的操作。如果提供的开发内核不兼容,则可能需要使用相关的内核模块更新 dtb 分区(如果存在)、vendor 分区或 system 分区。
- ramdisk:ramdisk 虚拟分区通过将新映像写入旧磁盘来仅覆盖 RAM 磁盘。为此,它会确定 eMMC 中现有 ramdisk.img 的起始位置并将新 RAM 磁盘映像复制到该位置。请记住,新 RAM 磁盘映像可能会大于现有 RAM 磁盘映像。引导加载程序可以通过移动其后的任何数据来腾出空间或放弃出错的操作。
- system:system 分区主要包含 Android 框架。
- recovery:recovery 分区用于存储在 OTA 过程中启动的恢复映像。如果设备支持 A/B 更新,则恢复映像可以是启动映像中包含的 RAM 磁盘,而不是单独的映像。
- cache:cache 分区用于存储临时数据,如果设备使用 A/B 更新,则可以不要此分区。cache 分区不需要可从引导加载程序写入,而只需要可清空。大小取决于设备类型和 userdata 分区的可用空间。目前,50MB 至 100MB 应该没问题。
- misc:misc 分区供恢复映像使用,存储空间不能小于 4KB。
- userdata:userdata 分区包含用户安装的应用和数据,包括自定义数据。
- metadata:如果设备被加密,则需要使用 metadata 分区,该分区的存储空间不能小于 16MB。
- vendor:vendor 分区包含所有不可分发给 Android 开源项目 (AOSP) 的二进制文件。如果没有专有信息,则可以省略此分区。
- radio:radio 分区包含无线装置映像。只有包含无线装置且在专用分区中包含无线装置专用软件的设备才需要此分区。
- tos:tos 分区用于存储 Trusty 操作系统的二进制映像文件,仅在设备包含 Trusty 时使用。
VTS&CTS-on-GSI镜像替换
注意:以下流程适用于我司本项目产品。
前提要求
Android平台adb功能已开启
Linux pc端有adb工具、fastboot工具(配置好SDK工具,默认在platform-tools/路径下)
准备好要替换的img镜像
替换流程
adb devices #查看待烧录设备是否adb在线,另建议只在线一台设备,方便烧录不用加 -s 参数
adb reboot fastboot #adb重启并进入fastboot模式
fastboot devices #查看fastboot模式下的在线设备
fastboot flashing unlock #解锁操作
fastboot flashing unlock_critical #解锁操作
fastboot flash vbmeta /home/root/cts_on_gsi/vbmeta.no.chain.partition.img #烧录vbmeta分区镜像。注意:img镜像路径确保正确
fastboot erase system #擦除system分区
fastboot flash system /home/root/cts-on-gsi/system.20190505.img #烧录system分区镜像。注意:img镜像路径确保正确
#在以上shell程序执行结束后,执行以下命令进行设备重启
fastboot reboot
结果校验
如果出现“Select a Home app”的选择提示框则选第二项“com.android.tv.provision.DefaultActivity”--->>“JUST ONCE”按钮
若launcher界面如下,则替换成功,可进行之后的vts&cts-on-gsi测试

fastboot烧录镜像--VTS&GSI镜像替换的更多相关文章
- 创建Python数据分析的Docker镜像+Docker自定义镜像commit,Dockerfile方式解析+pull,push,rmi操作
实例解析Docker如何通过commit,Dockerfile两种方式自定义Dcoker镜像,对自定义镜像的pull,push,rmi等常用操作,通过实例创建一个Python数据分析开发环境的Dock ...
- CentOS7安装Docker,运行Nginx镜像、Centos镜像
摘要 总体思路:yum命令直接安装Docker,下载想要的镜像并启动 1.环境,CentOS7 Minimal 64位,Docker必须要64位的系统 2.通过yum命令直接安装,yum instal ...
- Mycat 镜像-创建 Docker 镜像
将 Mycat-server 创建到镜像,使其能够进行容器化部署,我们需要创建 Dockerfile 并在文件中安装其依赖项,使用 centos 做为 base 镜像,并安装 jdk 依赖即可,因此创 ...
- Docker学习笔记之从镜像仓库获得镜像
0x00 概述 之前我们说到了,Docker 与其他虚拟化软件的一处不同就是将镜像管理纳入到了功能之中.实现虚拟化只是程序能够无缝移植的一部分,而有了镜像管理,就真正取代了我们在移植过程中的繁琐操作. ...
- 第 3 章 镜像 - 021 - Docker 镜像小结
镜像小结 镜像的常用操作子命令: images 显示镜像列表 history 显示镜像构建历史 commit 从容器创建新镜像 build 从 Dockerfile 构建镜像 ...
- 四:FAQ附录(容器交互,镜像交互,镜像导出)
1.交互式运行容器的方法: 1>-it进入到操作系统中: 2>另开一个cmd验证: 3>这是在image之上多了一个可写的从:可以运行centos的命令做一些事(touch .yum ...
- Mirror--如何TSQL查看镜像状态和镜像相关存储过程
--==================================================== --查看镜像状态 SELECT DB_NAME(database_id) AS Datab ...
- docker-ubuntu镜像,nginx镜像
docker 是将程序与机器隔开,使程序不受环境影响. 安装 sudo apt-get install docker.io ## 好用的一些命令 1.停用全部运行中的容器: docker stop $ ...
- [How to]基于本地镜像的yum镜像源搭建
1.简介 本文介绍如何在封闭环境(无外网)下安装离线安装本地镜像与基于本地镜像的yum镜像源. 2.环境版本交代: OS:CentOS-6.7-x86_64-minimal yum: yum-3.2. ...
随机推荐
- pandas读取Excel文件
In [7]: import pandas as pd filname = 'ch02数据导入\\student.xlsx' data = pd.read_excel(filname) data Ou ...
- 开发板安装google浏览器
source.list中含有https 所以在更换源之前安装 apt-get install apt-transport-https 然后更换为中科大的源貌似不行 deb https://mirror ...
- 左半连接left demi-join
返回左边表的记录,前提是其记录对于右边表满足on语句的判定条件 对于左表中一条指定的记录,在右表中一旦找到匹配的记录,hive就会立即停止扫描 1.sql select s.myd,s,symbol, ...
- 使用pycharm创建git项目的过程
首先建立远程仓库,然后将远程仓库克隆到本地 然后在pycharm中以该目录创建项目(如果遇到说目录非空,不用管它,Location直接粘贴古来,不然找不到路径) 如果构建好项目说无效的SDK,那么选择 ...
- es6的...用法
...将一个数组转为用符号分隔的参数序列 1.console.log(1, ...[2, 3, 4], 5) // 1 2 3 4 5 2. var args = [0, 1, 2]; f.apply ...
- MySql的导入导出
可以参看之前的博客:https://www.cnblogs.com/shijinglu2018/p/8672699.html 可以参看视频:https://i.cnblogs.com/EditPost ...
- springboot日期转换器
注:该功能并非springboot特有的功能,springmvc同样具有 一.使用方法 创建一个DateConverter类实现Converter接口 注:importorg. ...
- tapmode="hover"属性
.hover{ opacity: .; } <span tapmode="hover" onclick="fnOpen()">open</sp ...
- 【Geek议题】合理的VueSPA架构讨论(下)
接上篇<[Geek议题]合理的VueSPA架构讨论(上)>传送门. 自动化维护登录状态 登录状态标识符跟token类似,都是需要自动维护有效期,但也有些许不同,获取过程只在用户登录或注册的 ...
- laravel5.6 邮件队列database驱动简单demo
一: 邮件初始参数配置 配置 .env (demo示例是163邮箱,开启POP3和SMTP服务,获取授权密码) MAIL_DRIVER=smtp MAIL_HOST=smtp.163.com MAI ...