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 記錄檔內容,如果無法讀取記錄檔,則為空值。

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 並傳回空值。

參數
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:確認核心 OS 資料是否存在。

android-info.txt:確認這是官方建構套件,其中包含裝置和建構版本的中繼資料。

在非未壓縮裝置映像檔的目錄中,這種組合極不可能發生,且會正確處理 boot.img 不存在的電視版本等情況。

參數
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 分塊目錄。