CasUtil

public final class CasUtil
extends Object

java.lang.Object
   ↳ com.android.tradefed.util.CasUtil


摘要

常量

String ANDROID_INFO_FILENAME

String CAS_LOG_ROOT_NAME

String CHUNKS_DIR_NAME

String CHUNKS_INDEX_FILENAME

String SUPER_IMAGE_FILENAME

String SYSTEM_IMAGE_FILENAME

公共方法

static void checkCasClientFlags(Path clientPath, Consumer<Set<String>> flagsConsumerFn)

检查 CAS 客户端支持的标志。

static Path createUniqueCasLogDir(Path logDirRootPath)
static void ensureCasClientExecutable(Path casClientPath, boolean logMetricsIfNotExecutable)
static String getCasLogFromDir(Path logDirPath)

从指定目录中读取 CAS 日志文件“.INFO”。

static String getCasLogFromDir(Path logDirPath, String clientName, String tag, boolean removeLogDirAfterRead)

从给定目录读取 CAS 日志文件。

static String getCasLogFromDir(Path logDirPath, String clientName)

从给定目录读取 CAS 日志文件“.INFO”,然后移除日志目录。

static boolean isChunkedDir(Path path)

如果给定路径是有效的 FastCDC 分块目录,则返回 true。

static boolean isUncompressedDeviceImage(Path path)

如果指定路径是有效的未压缩设备映像,则返回 true。

static void logCasClientVersion(Path clientPath, Consumer<String> versionHandlerFn)
static void logCasClientVersion(Path clientPath)
static void validateChunkedDir(Path path)

验证给定路径是否为有效的 FastCDC 分块目录。

常量

ANDROID_INFO_FILENAME

public static final String ANDROID_INFO_FILENAME

常量值: "android-info.txt"

CAS_LOG_ROOT_NAME

public static final String CAS_LOG_ROOT_NAME

常量值: "tf-cas-fuse-log-root"

CHUNKS_DIR_NAME

public static final String CHUNKS_DIR_NAME

常量值: "_chunks"

CHUNKS_INDEX_FILENAME

public static final String CHUNKS_INDEX_FILENAME

常量值: "_chunks_index.json"

SUPER_IMAGE_FILENAME

public static final String SUPER_IMAGE_FILENAME

常量值: “super.img”

SYSTEM_IMAGE_FILENAME

public static final String SYSTEM_IMAGE_FILENAME

常量值: “system.img”

公共方法

checkCasClientFlags

public static void checkCasClientFlags (Path clientPath, 
                Consumer<Set<String>> flagsConsumerFn)

检查 CAS 客户端支持的标志。

参数
clientPath Path:CAS 客户端二进制文件的路径。

flagsConsumerFn Consumer:接受支持的标志集的消费者。

createUniqueCasLogDir

public static Path createUniqueCasLogDir (Path logDirRootPath)

参数
logDirRootPath Path

返回
Path

抛出
IOException

ensureCasClientExecutable

public static void ensureCasClientExecutable (Path casClientPath, 
                boolean logMetricsIfNotExecutable)

参数
casClientPath Path

logMetricsIfNotExecutable boolean

getCasLogFromDir

public static String getCasLogFromDir (Path logDirPath)

从指定目录读取 CAS 日志文件“.INFO”。它假定日志目录适用于单个 CAS 客户端,并从日志文件名中推断出 `clientName`。

参数
logDirPath Path:要从中读取 CAS 日志文件的目录路径。

返回
String CAS 日志文件内容;如果无法读取日志文件,则为 null。

getCasLogFromDir

public static String getCasLogFromDir (Path logDirPath, 
                String clientName, 
                String tag, 
                boolean removeLogDirAfterRead)

从给定目录读取 CAS 日志文件。

参数
logDirPath Path:要从中读取 CAS 日志文件的目录路径。

clientName String:CAS 客户端的名称。

tag String:CAS 日志文件的标记,例如“INFO”“WARNING”“ERROR”等。

removeLogDirAfterRead boolean:是否在读取日志文件后移除日志目录。

返回
String CAS 日志文件内容。

抛出
IOException 如果无法读取 CAS 日志文件。

getCasLogFromDir

public static String getCasLogFromDir (Path logDirPath, 
                String clientName)

从给定目录读取 CAS 日志文件“.INFO”,然后移除日志目录。此便捷方法使用默认参数封装了上述方法。 如果无法读取日志文件,它还会处理 IOException 并返回 null。

参数
logDirPath Path:要从中读取 CAS 日志文件的目录路径。

clientName String:CAS 客户端的名称。

返回
String CAS 日志文件内容,如果无法读取日志文件,则为“”。

isChunkedDir

public static boolean isChunkedDir (Path path)

如果给定路径是有效的 FastCDC 分块目录,则返回 true。

参数
path Path

返回
boolean

isUncompressedDeviceImage

public static boolean isUncompressedDeviceImage (Path path)

如果指定路径是有效的未压缩设备映像,则返回 true。

为了进行最可靠的检查,请验证是否存在 (system.img 或 super.img) 和 android-info.txt。

system.img/super.img:确认核心操作系统数据是否存在。

android-info.txt:确认这是一个官方 build 软件包,其中包含描述设备和 build 版本的元数据。

在非未压缩的设备映像且能正确处理缺少 boot.img 的电视 build 等情况的目录中,这种组合极不可能出现。

参数
path Path:设备映像的绝对路径。

返回
boolean 如果路径是有效的未压缩设备映像,则返回 true,否则返回 false。

logCasClientVersion

public static void logCasClientVersion (Path clientPath, 
                Consumer<String> versionHandlerFn)

参数
clientPath Path

versionHandlerFn Consumer

logCasClientVersion

public static void logCasClientVersion (Path clientPath)

参数
clientPath Path

validateChunkedDir

public static void validateChunkedDir (Path path)

验证给定路径是否为有效的 FastCDC 分块目录。

   device_image.zip/
     _chunks/
       _chunks_index.json
       chunk1.img
     _chunks_index.json
 
仅检查源数据路径的内容是否有效。_chunks_index.json 必须位于 _chunks 目录中,或者与 _chunks 位于同一级目录中(为了向后兼容)。

参数
path Path:分块目录的路径。

抛出
IOException 如果路径不是有效的 FastCDC 分块目录。