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

‫methods ציבוריים

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)

הפונקציה מחזירה true אם הנתיב שצוין הוא ספרייה חוקית עם נתונים בחלקים בפורמט FastCDC.

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"

‫methods ציבוריים

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

הקפצת הודעות שגיאה (throw)
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.

הקפצת הודעות שגיאה (throw)
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)

הפונקציה מחזירה true אם הנתיב שצוין הוא ספרייה חוקית עם נתונים בחלקים בפורמט FastCDC.

פרמטרים
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 לא קיים.

פרמטרים
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: הנתיב לספרייה עם החלקים.

הקפצת הודעות שגיאה (throw)
IOException אם הנתיב לא תקין, כלומר לא מכיל קבצים שחולקו לחלקים באמצעות FastCDC.