Google 致力于为黑人社区推动种族平等。查看具体举措

FastbootDeviceFlasher

public class FastbootDeviceFlasher
extends Object implements IDeviceFlasher

对象
com.android.tradefed.targetprep.FastbootDeviceFlasher


依赖于 fastboot 在物理 Android 硬件上刷新映像的类。

概括

字段

public static final String BASEBAND_IMAGE_NAME

公共构造函数

FastbootDeviceFlasher ()

公共方法

void flash (ITestDevice device, IDeviceBuildInfo deviceBuild)

闪烁建立在设备上。

CommandStatus getSystemFlashingStatus ()

检索闪存主系统分区的命令执行状态。

IDeviceFlasher.UserDataFlashOption getUserDataFlashOption ()

获取是否应刷写、擦除或保留用户数据图像

void overrideDeviceOptions (ITestDevice device)

覆盖设备的选项。

void setDataWipeSkipList ( dataWipeSkipList) setDataWipeSkipList ( dataWipeSkipList)

设置下的路径列表/data使用时避免清算ITestsZipInstaller

请注意,跳跃列表的粒度的直接子/data

void setFlashOptions ( flashOptions) setFlashOptions ( flashOptions)

设置要通过 flash/update 命令传递的选项列表。

void setFlashingResourcesRetriever ( IFlashingResourcesRetriever retriever)

设置 flasher 可以检索用于 flash 的资源文件的机制。

void setForceSystemFlash (boolean forceSystemFlash)

设置系统是否应该始终闪烁,即使正在运行当前构建

void setRamdiskPartition (String ramdiskPartition)

设置 ramdisk 分区

void setShouldFlashRamdisk (boolean shouldFlashRamdisk)

设置是否在通过映像 zip 更新设备后刷新额外的 ramdisk

void setUserDataFlashOption ( IDeviceFlasher.UserDataFlashOption flashOption)

切换用户数据图像是否应刷写、擦除或保留

void setWipeTimeout (long timeout)

设置擦除数据的超时时间。

boolean shouldFlashRamdisk ()

检查 flasher 是否设置为有一个额外的 ramdisk 应该在通过 image zip 更新设备后刷新

受保护的方法

void checkAndFlashBaseband (ITestDevice device, IDeviceBuildInfo deviceBuild)

如果需要,在设备上刷新基带映像。

boolean checkAndFlashBootloader (ITestDevice device, IDeviceBuildInfo deviceBuild)

如果需要,在设备上刷新引导加载程序映像。

boolean checkAndFlashSystem (ITestDevice device, String systemBuildId, String systemBuildFlavor, IDeviceBuildInfo deviceBuild)

如果需要,刷新设备上的系统映像。

boolean checkShouldFlashBaseband (ITestDevice device, IDeviceBuildInfo deviceBuild)

检查所提供设备上的基带是否需要刷机。

IFlashingResourcesParser createFlashingResourcesParser ( IDeviceBuildInfo localBuild, DeviceDescriptor descriptor)

创建一个工厂方法IFlashingResourcesParser

void downloadExtraImageFiles ( IFlashingResourcesParser resourceParser, IFlashingResourcesRetriever retriever, IDeviceBuildInfo localBuild)

如果需要,钩子允许子类下载额外的自定义图像文件。

void downloadFlashingResources (ITestDevice device, IDeviceBuildInfo localBuild)

下载所需的额外闪烁图像文件

String executeFastbootCmd (ITestDevice device, String... cmdArgs)

执行 fastboot 命令的辅助方法。

String executeLongFastbootCmd (ITestDevice device, String... cmdArgs)

执行长时间运行的 fastboot 命令的辅助方法。

void flashBaseband (ITestDevice device, File basebandImageFile)

闪烁给定的基带映像并重新启动到引导加载程序

void flashBootloader (ITestDevice device, File bootloaderImageFile)

刷新给定的引导加载程序映像并重新引导回引导加载程序

void flashExtraImages (ITestDevice device, IDeviceBuildInfo deviceBuild)

在刷新系统并重新启动之前刷新任何特定于设备的分区。

void flashPartition (ITestDevice device, File imgFile, String partition)

闪存设备的单个分区

void flashRamdiskIfNeeded (ITestDevice device, IDeviceBuildInfo deviceBuild)
void flashSystem (ITestDevice device, IDeviceBuildInfo deviceBuild)

在设备上刷写系统映像。

void flashUserData (ITestDevice device, IDeviceBuildInfo deviceBuild)

设备上的闪存用户数据分区。

void flashUserDataFromDeviceImageFile (ITestDevice device, IDeviceBuildInfo deviceBuild)

从设备映像文件中提取 userdata.img 并将其刷入设备

String getBootPartitionName ()

获取此设备 flasher 的启动分区名称。

String getBootloaderFilePrefix (ITestDevice device)

获取引导加载程序文件前缀。

String getCurrentSlot (ITestDevice device)

检索当前插槽的辅助方法(适用于支持 A/B 的设备)。

IFlashingResourcesRetriever getFlashingResourcesRetriever ()
String getImageVersion (ITestDevice device, String imageName)

获取设备上当前图像版本的辅助方法。

IRunUtil getRunUtil ()

暴露用于测试。

void handleUserDataFlashing (ITestDevice device, IDeviceBuildInfo deviceBuild)

处理用户数据/缓存分区的闪烁

boolean hasPartition (ITestDevice device, String partition)

使用引导加载程序检查指定的分区是否存在

void preFlashSetup (ITestDevice device, IDeviceBuildInfo deviceBuild)

执行所需的任何其他预闪设置。

void verifyRequiredBoards (ITestDevice device, IFlashingResourcesParser resourceParser, String deviceProductType)

验证设备的产品类型是否支持待烧写版本。

void wipeCache (ITestDevice device)

擦除设备上的缓存分区。

void wipePartition (ITestDevice device, String partition)

使用“fastboot erase <name>”擦除指定分区

字段

BASEBAND_IMAGE_NAME

public static final String BASEBAND_IMAGE_NAME

公共构造函数

FastbootDeviceFlasher

public FastbootDeviceFlasher ()

公共方法

闪光

public void flash (ITestDevice device, 
                IDeviceBuildInfo deviceBuild)

闪烁建立在设备上。

闪烁完成后立即返回。在继续测试之前,呼叫者应等待设备在线且可用。

参数
device ITestDevice :在ITestDevice闪烁

deviceBuild IDeviceBuildInfo :在IDeviceBuildInfo闪烁

投掷
DeviceNotAvailableException
TargetSetupError

获取系统闪烁状态

public CommandStatus getSystemFlashingStatus ()

检索闪存主系统分区的命令执行状态。

需要注意的是,如果系统分区没有闪现(系统已构建被刷新)命令状态可能为null

退货
CommandStatus

获取用户数据Flash选项

public IDeviceFlasher.UserDataFlashOption getUserDataFlashOption ()

获取是否应刷写、擦除或保留用户数据图像

退货
IDeviceFlasher.UserDataFlashOption是否应该刷写、擦除或保留用户数据图像

覆盖设备选项

public void overrideDeviceOptions (ITestDevice device)

覆盖设备的选项。如果特定设备不支持默认值,则用于覆盖默认选项值。

setDataWipeSkipList

public void setDataWipeSkipList ( dataWipeSkipList)

设置下的路径列表/data使用时避免清算ITestsZipInstaller

请注意,跳跃列表的粒度的直接子/data

参数
dataWipeSkipList

设置Flash选项

public void setFlashOptions ( flashOptions)

设置要通过 flash/update 命令传递的选项列表。

setFlashingResourcesRetriever

public void setFlashingResourcesRetriever (IFlashingResourcesRetriever retriever)

设置 flasher 可以检索用于 flash 的资源文件的机制。

参数
retriever IFlashingResourcesRetriever :在IFlashingResourcesRetriever来使用

setForceSystemFlash

public void setForceSystemFlash (boolean forceSystemFlash)

设置系统是否应该始终闪烁,即使正在运行当前构建

设置随机磁盘分区

public void setRamdiskPartition (String ramdiskPartition)

设置 ramdisk 分区

setShouldFlashRamdisk

public void setShouldFlashRamdisk (boolean shouldFlashRamdisk)

设置是否在通过映像 zip 更新设备后刷新额外的 ramdisk

设置用户数据Flash选项

public void setUserDataFlashOption (IDeviceFlasher.UserDataFlashOption flashOption)

切换用户数据图像是否应刷写、擦除或保留

设置擦除超时

public void setWipeTimeout (long timeout)

设置擦除数据的超时时间。

参数
timeout long

应该是闪存盘

public boolean shouldFlashRamdisk ()

检查 flasher 是否设置为有一个额外的 ramdisk 应该在通过 image zip 更新设备后刷新

退货
boolean

受保护的方法

checkAndFlash基带

protected void checkAndFlashBaseband (ITestDevice device, 
                IDeviceBuildInfo deviceBuild)

如果需要,在设备上刷新基带映像。如果设备上的当前版本为 != 所需版本,则只会刷新基带

参数
device ITestDevice :在ITestDevice闪烁

deviceBuild IDeviceBuildInfo :在IDeviceBuildInfo包含基带图像闪烁

投掷
DeviceNotAvailableException如果设备不可用
TargetSetupError如果刷基带失败

checkAndFlashBootloader

protected boolean checkAndFlashBootloader (ITestDevice device, 
                IDeviceBuildInfo deviceBuild)

如果需要,在设备上刷新引导加载程序映像。

如果设备上的当前版本 != 所需版本,则只会刷新引导加载程序。

参数
device ITestDevice :在ITestDevice闪烁

deviceBuild IDeviceBuildInfo :在IDeviceBuildInfo包含引导加载器的图像闪烁

退货
boolean true如果引导程序是一闪而过, false ,如果它被跳过

投掷
DeviceNotAvailableException如果设备不可用
TargetSetupError如果闪存引导加载程序失败

检查和闪光系统

protected boolean checkAndFlashSystem (ITestDevice device, 
                String systemBuildId, 
                String systemBuildFlavor, 
                IDeviceBuildInfo deviceBuild)

如果需要,刷新设备上的系统映像。

请看看ERROR(/#shouldFlashSystem(String,String,com.android.tradefed.build.IDeviceBuildInfo))

无论选择什么路径,方法执行后设备都应该启动到用户空间。

参数
device ITestDevice :在ITestDevice闪烁

systemBuildId String :在设备上运行的当前版本ID

systemBuildFlavor String :当前构建的味道在设备上运行

deviceBuild IDeviceBuildInfo :在IDeviceBuildInfo包含系统图像闪烁

退货
boolean true如果系统是一闪而过, false ,如果它被跳过

投掷
DeviceNotAvailableException如果设备不可用
TargetSetupError如果闪存引导加载程序失败

checkShouldFlashBaseband

protected boolean checkShouldFlashBaseband (ITestDevice device, 
                IDeviceBuildInfo deviceBuild)

检查所提供设备上的基带是否需要刷机。

参数
device ITestDevice :在ITestDevice要检查

deviceBuild IDeviceBuildInfo :在IDeviceBuildInfo包含基带图片签

退货
boolean

投掷
DeviceNotAvailableException如果设备不可用
TargetSetupError如果刷基带失败

创建闪烁资源解析器

protected IFlashingResourcesParser createFlashingResourcesParser (IDeviceBuildInfo localBuild, 
                DeviceDescriptor descriptor)

创建一个工厂方法IFlashingResourcesParser

暴露用于单元测试。

参数
localBuild IDeviceBuildInfo :在IDeviceBuildInfo解析

descriptor DeviceDescriptor :该装置的描述符被闪蒸。

退货
IFlashingResourcesParser一个IFlashingResourcesParser创建由工厂方法。

投掷
TargetSetupError

下载ExtraImageFiles

protected void downloadExtraImageFiles (IFlashingResourcesParser resourceParser, 
                IFlashingResourcesRetriever retriever, 
                IDeviceBuildInfo localBuild)

如果需要,钩子允许子类下载额外的自定义图像文件。

参数
resourceParser IFlashingResourcesParser :在IFlashingResourcesParser

retriever IFlashingResourcesRetriever :在IFlashingResourcesRetriever

localBuild IDeviceBuildInfo :在IDeviceBuildInfo

投掷
TargetSetupError

下载闪烁资源

protected void downloadFlashingResources (ITestDevice device, 
                IDeviceBuildInfo localBuild)

下载所需的额外闪烁图像文件

参数
device ITestDevice :在ITestDevice到下载资源

localBuild IDeviceBuildInfo :在IDeviceBuildInfo来填充。假设设备映像文件已经设置

投掷
DeviceNotAvailableException如果设备不可用
TargetSetupError如果检索资源失败

执行FastbootCmd

protected String executeFastbootCmd (ITestDevice device, 
                String... cmdArgs)

执行 fastboot 命令的辅助方法。

参数
device ITestDevice :在ITestDevice上执行命令

cmdArgs String :参数提供给FASTBOOT

退货
String如果非空,则将命令的 stderr 输出字符串化。否则返回 stdout 一些 fastboot 命令很奇怪,因为它们在成功的情况下将输出转储到 stderr

投掷
DeviceNotAvailableException如果设备不可用
TargetSetupError如果 fastboot 命令失败

executeLongFastbootCmd

protected String executeLongFastbootCmd (ITestDevice device, 
                String... cmdArgs)

执行长时间运行的 fastboot 命令的辅助方法。

注:大多数FASTBOOT命令通常所允许的超时时间内执行INativeDevice.executeFastbootCommand(String) 。但是,当多个设备同时刷新设备时,fastboot 命令可能需要比正常情况更长的时间。

参数
device ITestDevice :在ITestDevice上执行命令

cmdArgs String :参数提供给FASTBOOT

退货
String如果非空,则将命令的 stderr 输出字符串化。否则返回 stdout 一些 fastboot 命令很奇怪,因为它们在成功的情况下将输出转储到 stderr

投掷
DeviceNotAvailableException如果设备不可用
TargetSetupError如果 fastboot 命令失败

闪存基带

protected void flashBaseband (ITestDevice device, 
                File basebandImageFile)

刷新给定的基带映像并重新启动到引导加载程序

参数
device ITestDevice :在ITestDevice闪烁

basebandImageFile File :基带图像ERROR(/File)

投掷
DeviceNotAvailableException如果设备不可用
TargetSetupError如果刷基带失败

闪存引导程序

protected void flashBootloader (ITestDevice device, 
                File bootloaderImageFile)

刷新给定的引导加载程序映像并重新引导回引导加载程序

参数
device ITestDevice :在ITestDevice闪烁

bootloaderImageFile File :引导程序图像ERROR(/File)

投掷
DeviceNotAvailableException如果设备不可用
TargetSetupError如果刷机失败

flashExtraImages

protected void flashExtraImages (ITestDevice device, 
                IDeviceBuildInfo deviceBuild)

在刷新系统并重新启动之前刷新任何特定于设备的分区。除非被覆盖,否则无操作。

参数
device ITestDevice :在ITestDevice闪烁

deviceBuild IDeviceBuildInfo :在IDeviceBuildInfo包含构建文件

投掷
com.android.tradefed.device.DeviceNotAvailableException
TargetSetupError
DeviceNotAvailableException

闪存分区

protected void flashPartition (ITestDevice device, 
                File imgFile, 
                String partition)

闪存设备的单个分区

参数
device ITestDevice :在ITestDevice闪烁

imgFile File :一个ERROR(/File)指向图像被闪蒸

partition String :分区的名字闪现

投掷
DeviceNotAvailableException
TargetSetupError

flashRamdiskIfNeeded

protected void flashRamdiskIfNeeded (ITestDevice device, 
                IDeviceBuildInfo deviceBuild)

参数
device ITestDevice

deviceBuild IDeviceBuildInfo

投掷
DeviceNotAvailableException
TargetSetupError

闪光系统

protected void flashSystem (ITestDevice device, 
                IDeviceBuildInfo deviceBuild)

在设备上刷写系统映像。

参数
device ITestDevice :在ITestDevice闪烁

deviceBuild IDeviceBuildInfo :在IDeviceBuildInfo闪烁

投掷
DeviceNotAvailableException如果设备不可用
TargetSetupError如果 fastboot 命令失败

闪存用户数据

protected void flashUserData (ITestDevice device, 
                IDeviceBuildInfo deviceBuild)

设备上的闪存用户数据分区。

参数
device ITestDevice :在ITestDevice闪烁

deviceBuild IDeviceBuildInfo :在IDeviceBuildInfo包含文件闪光

投掷
DeviceNotAvailableException如果设备不可用
TargetSetupError如果刷写用户数据失败

flashUserDataFromDeviceImageFile

protected void flashUserDataFromDeviceImageFile (ITestDevice device, 
                IDeviceBuildInfo deviceBuild)

从设备映像文件中提取 userdata.img 并将其刷入设备

参数
device ITestDevice :在ITestDevice闪烁

deviceBuild IDeviceBuildInfo :在IDeviceBuildInfo包含文件闪光

投掷
DeviceNotAvailableException如果设备不可用
TargetSetupError如果无法提取或闪存用户数据

获取引导分区名称

protected String getBootPartitionName ()

获取此设备 flasher 的启动分区名称。

默认为“引导加载程序”。如有必要,子类应覆盖。

退货
String

获取引导加载程序文件前缀

protected String getBootloaderFilePrefix (ITestDevice device)

获取引导加载程序文件前缀。

默认为getBootPartitionName()如有必要,子类应覆盖。

参数
device ITestDevice :在ITestDevice闪烁

退货
String

投掷
DeviceNotAvailableException如果设备不可用
TargetSetupError如果获取前缀失败

获取当前插槽

protected String getCurrentSlot (ITestDevice device)

检索当前插槽的辅助方法(适用于支持 A/B 的设备)。

参数
device ITestDevice :在ITestDevice上执行命令。

退货
String "a"、"b" 或 null(如果设备不支持 A/B)

投掷
com.android.tradefed.device.DeviceNotAvailableException
TargetSetupError
DeviceNotAvailableException

getFlashingResourcesRetriever

protected IFlashingResourcesRetriever getFlashingResourcesRetriever ()

退货
IFlashingResourcesRetriever

获取图像版本

protected String getImageVersion (ITestDevice device, 
                String imageName)

获取设备上当前图像版本的辅助方法。

参数
device ITestDevice :在ITestDevice上执行命令

imageName String :图像的名称来获得。

退货
String将命令的 stdout 输出字符串化

投掷
DeviceNotAvailableException如果设备不可用
TargetSetupError如果 fastboot 命令失败或无法确定版本

获取运行工具

protected IRunUtil getRunUtil ()

暴露用于测试。

退货
IRunUtil

处理用户数据闪烁

protected void handleUserDataFlashing (ITestDevice device, 
                IDeviceBuildInfo deviceBuild)

处理用户数据/缓存分区的闪烁

参数
device ITestDevice :在ITestDevice闪烁

deviceBuild IDeviceBuildInfo :在IDeviceBuildInfo包含文件闪光

投掷
com.android.tradefed.device.DeviceNotAvailableException
TargetSetupError
DeviceNotAvailableException

有分区

protected boolean hasPartition (ITestDevice device, 
                String partition)

使用引导加载程序检查指定的分区是否存在

参数
device ITestDevice :在ITestDevice进行操作

partition String :该分区的名称进行检查

退货
boolean

投掷
DeviceNotAvailableException

预闪存设置

protected void preFlashSetup (ITestDevice device, 
                IDeviceBuildInfo deviceBuild)

执行所需的任何其他预闪设置。除非被覆盖,否则无操作。

参数
device ITestDevice :在ITestDevice准备

deviceBuild IDeviceBuildInfo :在IDeviceBuildInfo包含构建文件

投掷
com.android.tradefed.device.DeviceNotAvailableException
TargetSetupError
DeviceNotAvailableException

验证必需板

protected void verifyRequiredBoards (ITestDevice device, 
                IFlashingResourcesParser resourceParser, 
                String deviceProductType)

验证设备的产品类型是否支持待烧写版本。

基本实现将验证deviceProductType包括在IFlashingResourcesParser.getRequiredBoards()集合。子类可以根据需要覆盖。

参数
device ITestDevice :在ITestDevice将闪现

resourceParser IFlashingResourcesParser :在IFlashingResourcesParser

deviceProductType String :该device的产品类型

投掷
TargetSetupError如果构建所需的电路板信息与设备不匹配

擦除缓存

protected void wipeCache (ITestDevice device)

擦除设备上的缓存分区。

参数
device ITestDevice :在ITestDevice闪烁

投掷
DeviceNotAvailableException如果设备不可用
TargetSetupError如果闪存缓存失败

擦分区

protected void wipePartition (ITestDevice device, 
                String partition)

使用“fastboot erase <name>”擦除指定分区

参数
device ITestDevice :在ITestDevice进行操作

partition String :分区的名称被消灭

投掷
DeviceNotAvailableException
TargetSetupError