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: コア 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 チャンク ディレクトリでない場合。