הפעלת אדיאנטום

Adiantum היא שיטת הצפנה המיועדת למכשירים המריצים אנדרואיד 9 ומעלה שהמעבדים שלהם חסרים הוראות AES . אם אתה שולח מכשיר מבוסס ARM עם הרחבות קריפטוגרפיה ARMv8 או מכשיר מבוסס x86 עם AES-NI, אל תשתמש באדיאנטום. AES מהיר יותר בפלטפורמות הללו.

עבור מכשירים חסרי הוראות מעבד AES אלה, Adiantum מספקת הצפנה במכשיר שלך עם מעט מאוד ביצועים. לבחינת מספרים, עיין במאמר Adiantum . למקור ההשוואה להפעלה על החומרה שלך, עיין במקור Adiantum ב-GitHub .

כדי להפעיל את Adiantum במכשיר עם אנדרואיד 9 ומעלה, עליך לבצע שינויים בקרנל ושינויים במרחב המשתמש.

שינויים בגרעין

Adiantum נתמך על ידי הגרעינים הנפוצים של אנדרואיד, גרסה 4.9 ומעלה.

אם הליבה של המכשיר שלך עדיין לא תומך ב-Adiantum, בחר דובדבן בשינויים המפורטים להלן. אם אתה נתקל בבעיות בבחירת דובדבנים, מכשירים המשתמשים בהצפנת דיסק מלא (FDE) יכולים להוציא את התיקון fscrypt:

גרסת ליבה תיקוני Crypto ו-fscrypt תיקון dm-crypt
4.19 4.19 ליבה תיקון dm-crypt
4.14 4.14 ליבה תיקון dm-crypt
4.9 4.9 ליבה תיקון dm-crypt

הפעל את Adiantum בקרנל שלך

אנדרואיד 11 ומעלה

אם המכשיר שלך מופעל עם אנדרואיד 11 ומעלה, הפעל את ההגדרות הבאות בתצורת הליבה של המכשיר שלך:

CONFIG_CRYPTO_ADIANTUM=y
CONFIG_FS_ENCRYPTION=y
CONFIG_BLK_INLINE_ENCRYPTION=y
CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK=y
CONFIG_FS_ENCRYPTION_INLINE_CRYPT=y
CONFIG_DM_DEFAULT_KEY=y

אם המכשיר שלך מריץ ליבת ARM של 32 סיביות, אפשר גם הוראות NEON לשיפור הביצועים:

CONFIG_KERNEL_MODE_NEON=y
CONFIG_CRYPTO_AES_ARM=y
CONFIG_CRYPTO_CHACHA20_NEON=y
CONFIG_CRYPTO_NHPOLY1305_NEON=y

אנדרואיד 9 ו-10

אם המכשיר שלך מופעל עם אנדרואיד 9 או 10, יש צורך בהגדרות תצורת ליבה מעט שונות. הפעל את ההגדרות הבאות:

CONFIG_CRYPTO_ADIANTUM=y
CONFIG_DM_CRYPT=y

אם המכשיר שלך משתמש בהצפנה מבוססת קבצים, הפעל גם:

CONFIG_F2FS_FS_ENCRYPTION=y

לבסוף, אם המכשיר שלך מריץ ליבת ARM של 32 סיביות, אפשר הוראות NEON כדי לשפר את הביצועים:

CONFIG_KERNEL_MODE_NEON=y
CONFIG_CRYPTO_AES_ARM=y
CONFIG_CRYPTO_CHACHA20_NEON=y
CONFIG_CRYPTO_NHPOLY1305_NEON=y

שינויים במרחב המשתמש

עבור מכשירים עם אנדרואיד 10 ומעלה, השינויים במרחב המשתמש של Adiantum כבר קיימים.

עבור מכשירים עם אנדרואיד 9, בחר את השינויים הבאים:

הפעל את Adiantum במכשיר שלך

ראשית, ודא ש- PRODUCT_SHIPPING_API_LEVEL מוגדר כהלכה במכשיר שלך כך שיתאים לגרסת האנדרואיד שאיתה הוא מופעל. לדוגמה, מכשיר המופעל עם Android 11 חייב להיות בעל PRODUCT_SHIPPING_API_LEVEL := 30 . זה חשוב מכיוון שלחלק מהגדרות ההצפנה יש ברירות מחדל שונות בגרסאות השקה שונות.

מכשירים עם הצפנה מבוססת קבצים

כדי להפעיל הצפנה מבוססת קבצים של Adiantum באחסון הפנימי של המכשיר שלך, הוסף את האפשרות הבאה לעמודה האחרונה (עמודת fs_mgr_flags ) בשורה עבור מחיצת userdata בקובץ fstab של המכשיר:

fileencryption=adiantum

אם המכשיר שלך מופעל עם אנדרואיד 11 ומעלה, נדרשת גם הפעלת הצפנת מטא נתונים . כדי להשתמש באדיאנטום להצפנת מטא נתונים באחסון פנימי, ה- fs_mgr_flags עבור userdata חייבים להכיל גם את האפשרויות הבאות:

metadata_encryption=adiantum,keydirectory=/metadata/vold/metadata_encryption

לאחר מכן, הפעל את הצפנת Adiantum באחסון הניתן לאימוץ . לשם כך, הגדר את מאפייני המערכת הבאים ב- PRODUCT_PROPERTY_OVERRIDES :

עבור אנדרואיד 11 ומעלה:

ro.crypto.volume.options=adiantum
ro.crypto.volume.metadata.encryption=adiantum

עבור אנדרואיד 9 ו-10:

ro.crypto.volume.contents_mode=adiantum
ro.crypto.volume.filenames_mode=adiantum
ro.crypto.fde_algorithm=adiantum
ro.crypto.fde_sector_size=4096

לבסוף, הוסף אופציונלי blk-crypto-fallback.num_keyslots=1 לשורת הפקודה של הליבה. זה יקטין מעט את השימוש בזיכרון כאשר נעשה שימוש בהצפנת מטא נתונים של Adiantum. לפני שתעשה זאת, ודא שאפשרות הטעינה inlinecrypt לא צוינה ב- fstab . אם הוא צוין, הסר אותו, מכיוון שהוא אינו נחוץ להצפנת Adiantum, והוא גורם לבעיות ביצועים בשימוש בשילוב עם blk-crypto-fallback.num_keyslots=1 .

כדי לוודא שהיישום שלך עבד, קח דוח באג או הרץ:

adb root
adb shell dmesg

אם Adiantum מופעלת כהלכה, אתה אמור לראות זאת ביומן הליבה:

fscrypt: Adiantum using implementation "adiantum(xchacha12-neon,aes-arm,nhpoly1305-neon)"

אם הפעלת הצפנת מטא נתונים, הפעל גם את הפעולות הבאות כדי לוודא שהצפנת מטא נתונים של Adiantum מופעלת כהלכה:

adb root
adb shell dmctl table userdata

השדה השלישי של הפלט צריך להיות xchacha12,aes-adiantum-plain64 .

מכשירים עם הצפנת דיסק מלא

כדי להפעיל את Adiantum ולשפר את הביצועים שלה, הגדר את המאפיינים האלה ב- PRODUCT_PROPERTY_OVERRIDES :

ro.crypto.fde_algorithm=adiantum
ro.crypto.fde_sector_size=4096

הגדרת fde_sector_size ל-4096 משפרת את הביצועים, אך אינה נדרשת כדי שאדיאנטום יפעל. כדי להשתמש בהגדרה זו, מחיצת נתוני המשתמש חייבת להתחיל בהיסט מיושר של 4096 בתים בדיסק.

ב- fstab , עבור ערכת נתוני משתמש:

forceencrypt=footer

כדי לוודא שהיישום שלך עבד, קח דוח באג או הרץ:

adb root
adb shell dmesg

אם Adiantum מופעלת כהלכה, אתה אמור לראות זאת ביומן הליבה:

device-mapper: crypt: adiantum(xchacha12,aes) using implementation "adiantum(xchacha12-neon,aes-arm,nhpoly1305-neon)"
,

Adiantum היא שיטת הצפנה המיועדת למכשירים המריצים אנדרואיד 9 ומעלה שהמעבדים שלהם חסרים הוראות AES . אם אתה שולח מכשיר מבוסס ARM עם הרחבות קריפטוגרפיה ARMv8 או מכשיר מבוסס x86 עם AES-NI, אל תשתמש באדיאנטום. AES מהיר יותר בפלטפורמות הללו.

עבור מכשירים חסרי הוראות מעבד AES אלה, Adiantum מספקת הצפנה במכשיר שלך עם מעט מאוד ביצועים. לבחינת מספרים, עיין במאמר Adiantum . למקור ההשוואה להפעלה על החומרה שלך, עיין במקור Adiantum ב-GitHub .

כדי להפעיל את Adiantum במכשיר עם אנדרואיד 9 ומעלה, עליך לבצע שינויים בקרנל ושינויים במרחב המשתמש.

שינויים בגרעין

Adiantum נתמך על ידי הגרעינים הנפוצים של אנדרואיד, גרסה 4.9 ומעלה.

אם הליבה של המכשיר שלך עדיין לא תומך ב-Adiantum, בחר דובדבן בשינויים המפורטים להלן. אם אתה נתקל בבעיות בבחירת דובדבנים, מכשירים המשתמשים בהצפנת דיסק מלא (FDE) יכולים להוציא את התיקון fscrypt:

גרסת ליבה תיקוני Crypto ו-fscrypt תיקון dm-crypt
4.19 4.19 ליבה תיקון dm-crypt
4.14 4.14 ליבה תיקון dm-crypt
4.9 4.9 ליבה תיקון dm-crypt

הפעל את Adiantum בקרנל שלך

אנדרואיד 11 ומעלה

אם המכשיר שלך מופעל עם אנדרואיד 11 ומעלה, הפעל את ההגדרות הבאות בתצורת הליבה של המכשיר שלך:

CONFIG_CRYPTO_ADIANTUM=y
CONFIG_FS_ENCRYPTION=y
CONFIG_BLK_INLINE_ENCRYPTION=y
CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK=y
CONFIG_FS_ENCRYPTION_INLINE_CRYPT=y
CONFIG_DM_DEFAULT_KEY=y

אם המכשיר שלך מריץ ליבת ARM של 32 סיביות, אפשר גם הוראות NEON לשיפור הביצועים:

CONFIG_KERNEL_MODE_NEON=y
CONFIG_CRYPTO_AES_ARM=y
CONFIG_CRYPTO_CHACHA20_NEON=y
CONFIG_CRYPTO_NHPOLY1305_NEON=y

אנדרואיד 9 ו-10

אם המכשיר שלך מופעל עם אנדרואיד 9 או 10, יש צורך בהגדרות תצורת ליבה מעט שונות. הפעל את ההגדרות הבאות:

CONFIG_CRYPTO_ADIANTUM=y
CONFIG_DM_CRYPT=y

אם המכשיר שלך משתמש בהצפנה מבוססת קבצים, הפעל גם:

CONFIG_F2FS_FS_ENCRYPTION=y

לבסוף, אם המכשיר שלך מריץ ליבת ARM של 32 סיביות, אפשר הוראות NEON כדי לשפר את הביצועים:

CONFIG_KERNEL_MODE_NEON=y
CONFIG_CRYPTO_AES_ARM=y
CONFIG_CRYPTO_CHACHA20_NEON=y
CONFIG_CRYPTO_NHPOLY1305_NEON=y

שינויים במרחב המשתמש

עבור מכשירים עם אנדרואיד 10 ומעלה, השינויים במרחב המשתמש של Adiantum כבר קיימים.

עבור מכשירים שבהם פועל אנדרואיד 9, בחר את השינויים הבאים:

הפעל את Adiantum במכשיר שלך

ראשית, ודא ש- PRODUCT_SHIPPING_API_LEVEL מוגדר כהלכה במכשיר שלך כך שיתאים לגרסת ה-Android שאיתה הוא מופעל. לדוגמה, מכשיר המופעל עם Android 11 חייב להיות בעל PRODUCT_SHIPPING_API_LEVEL := 30 . זה חשוב מכיוון שלחלק מהגדרות ההצפנה יש ברירות מחדל שונות בגרסאות השקה שונות.

מכשירים עם הצפנה מבוססת קבצים

כדי להפעיל הצפנה מבוססת קבצים של Adiantum באחסון הפנימי של המכשיר שלך, הוסף את האפשרות הבאה לעמודה האחרונה (עמודת fs_mgr_flags ) בשורה עבור מחיצת userdata בקובץ fstab של המכשיר:

fileencryption=adiantum

אם המכשיר שלך מופעל עם אנדרואיד 11 ומעלה, נדרשת גם הפעלת הצפנת מטא נתונים . כדי להשתמש באדיאנטום להצפנת מטא נתונים באחסון פנימי, ה- fs_mgr_flags עבור userdata חייבים להכיל גם את האפשרויות הבאות:

metadata_encryption=adiantum,keydirectory=/metadata/vold/metadata_encryption

לאחר מכן, הפעל את הצפנת Adiantum באחסון הניתן לאימוץ . לשם כך, הגדר את מאפייני המערכת הבאים ב- PRODUCT_PROPERTY_OVERRIDES :

עבור אנדרואיד 11 ומעלה:

ro.crypto.volume.options=adiantum
ro.crypto.volume.metadata.encryption=adiantum

עבור אנדרואיד 9 ו-10:

ro.crypto.volume.contents_mode=adiantum
ro.crypto.volume.filenames_mode=adiantum
ro.crypto.fde_algorithm=adiantum
ro.crypto.fde_sector_size=4096

לבסוף, הוסף אופציונלי blk-crypto-fallback.num_keyslots=1 לשורת הפקודה של הליבה. זה יקטין מעט את השימוש בזיכרון כאשר נעשה שימוש בהצפנת מטא נתונים של Adiantum. לפני שתעשה זאת, ודא שאפשרות הטעינה inlinecrypt לא צוינה ב- fstab . אם הוא צוין, הסר אותו, מכיוון שהוא אינו נחוץ להצפנת Adiantum, והוא גורם לבעיות ביצועים בשימוש בשילוב עם blk-crypto-fallback.num_keyslots=1 .

כדי לוודא שהיישום שלך עבד, קח דוח באג או הרץ:

adb root
adb shell dmesg

אם Adiantum מופעלת כהלכה, אתה אמור לראות זאת ביומן הליבה:

fscrypt: Adiantum using implementation "adiantum(xchacha12-neon,aes-arm,nhpoly1305-neon)"

אם הפעלת הצפנת מטא נתונים, הפעל גם את הפעולות הבאות כדי לוודא שהצפנת מטא נתונים של Adiantum מופעלת כהלכה:

adb root
adb shell dmctl table userdata

השדה השלישי של הפלט צריך להיות xchacha12,aes-adiantum-plain64 .

מכשירים עם הצפנת דיסק מלא

כדי להפעיל את Adiantum ולשפר את הביצועים שלה, הגדר את המאפיינים האלה ב- PRODUCT_PROPERTY_OVERRIDES :

ro.crypto.fde_algorithm=adiantum
ro.crypto.fde_sector_size=4096

הגדרת fde_sector_size ל-4096 משפרת את הביצועים, אך אינה נדרשת כדי שאדיאנטום יפעל. כדי להשתמש בהגדרה זו, מחיצת נתוני המשתמש חייבת להתחיל בהיסט מיושר של 4096 בתים בדיסק.

ב- fstab , עבור ערכת נתוני משתמש:

forceencrypt=footer

כדי לוודא שהיישום שלך עבד, קח דוח באג או הרץ:

adb root
adb shell dmesg

אם Adiantum מופעלת כהלכה, אתה אמור לראות זאת ביומן הליבה:

device-mapper: crypt: adiantum(xchacha12,aes) using implementation "adiantum(xchacha12-neon,aes-arm,nhpoly1305-neon)"