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가 없는 TV 빌드와 같은 사례를 올바르게 처리하는 디렉터리에서는 발생할 가능성이 매우 낮습니다.

매개변수
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 청크 디렉터리가 아닌 경우