התקנת תעודה ב-Android SDK Emulator

מתוך ויקי נטפרי
גרסה מ־20:43, 16 בפברואר 2020 מאת שלו' (שיחה | תרומות)
(הבדל) → הגרסה הקודמת | הגרסה האחרונה (הבדל) | הגרסה הבאה ← (הבדל)
קפיצה אל: ניווט, חיפוש

For English click here

למעבר מתצוגת עריכה לתצוגת קריאה

עמוד ראשי > תעודת האבטחה > התקנת תעודה ב-Android SDK Emulator ‎‎


תיאור הבעיה

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

באמולטור של אנדרואיד סטודיו, מחיצת המערכת הוא לקריאה בלבד, לכן גם עם הרשאות רוט אי אפשר להוסיף קבצים למחיצת המערכת.

הפתרון

קבלת הרשאות כתיבה למחיצת המערכת

התהליך נוסה בהצלחה על מערכת אנדרואיד 9, לכאורה זה יעבוד גם בגירסאות נמוכות יותר, כרגע זה לא עובד באנדרואיד 10.

כדי לקבל אפשרות כתיבה למחיצת המערכת צריך להריץ את האמולטור משורת הפקודה עם פרמטר נוסף.

הפקודה הרגילה להרצת האמולטור היא: ‪‎%localappdata%\Android\Sdk\emulator\emulator.exe -avd ‏<שם המכשיר הוירטואלי>‏‬. במקום ‏<שם המכשיר הוירטואלי> צריך לכתוב שם של מכשיר וירטואלי שמוגדר כבר ב-AVD Manager מתוך תפריט הכלים ב-Android Studio, אפשר לקבל את השם על ידי לחיצה ימנית על המכשיר ובחירת View Details, או על ידי הרצת הפקודה: ‎%localappdata%\Android\Sdk\emulator\emulator.exe -list-avds (בד"כ זה יהיה זהה לשם שמוצג בממשק עם החלפת רווחים לקוים תחתונים).

כדי לקבל אפשרות כתיבה למחיצת המערכת, צריך להוסיף לסוף הפקודה הרגילה את הפרמטר ‎-writable-system.

הפקודה המלאה תיראה כך:

%localappdata%\Android\Sdk\emulator\emulator.exe -avd <שם המכשיר הוירטואלי> -writable-system

תהליך התקנת התעודה

ראשית נוריד מכאן את התעודה המותאמת לאנדרואיד, ונגרור אותה למסך המכשיר המדומה (זה יכניס את הקובץ לכרטיס ה-SD המדומה של המכשיר).

כדי להתקין תעודת נטפרי,

נפתח חלון שורת הפקודה ונריץ את הפקודות הבאות:

cd %localappdata%\Android\Sdk\platform-tools\
adb root
adb remount
adb shell

זה יכניס אותנו ל-shell עם הרשאות רוט.

לאחר מכן נריץ את הפקודות הבאות:

cp /sdcard/Download/XXXXXXXX.X /system/etc/security/cacerts/
chown a+r  /system/etc/security/cacerts/XXXXXXXX.0

במקום XXXXXXXX.0 נכתוב את שם קובץ התעודה.

זהו, התעודה הותקנה! אפשר לסגור את חלון הפקודה.

הרצות חוזרות

חשוב להבין שהתהליך הנ"ל לא משנה את מחיצת המערכת הקיימת! כאשר מריצים את המכונה עם הפרמטר ‎-writable-system זה מייצר שכבה נוספת על גבי המחיצה הקיימת שבה נשמרים השינויים שלנו. ולכן, כדי שהשינויים יופיעו בהרצות הבאות, חייבים להריץ את המכונה עם הפרמטר הנ"ל.