התקנת תעודה ב-Android SDK Emulator: הבדלים בין גרסאות בדף
(יצירת דף עם התוכן "== תיאור הבעיה == באנדרויד גירסה 7 ואילך קיים צורך להטמיע את תעודת נטפרי במחיצת המערכת כדי...") |
(אין הבדלים)
|
גרסה מ־12:12, 14 בפברואר 2020
תיאור הבעיה
באנדרויד גירסה 7 ואילך קיים צורך להטמיע את תעודת נטפרי במחיצת המערכת כדי שאפליקציות ישתמשו בה בברירת מחדל.
באמולטור של אנדרויד סטודיו, מחיצת המערכת הוא לקריאה בלבד, לכן גם עם הרשאות רוט אי אפשר לשנות להוסיף קבצים למחיצת המערכת.
הפתרון
קבלת הרשאות כתיבה למחיצת המערכת
כדי לקבל אפשרות כתיבה למחיצת המערכת צריך להריץ את האמולטור משורת הפקודה עם פרמטר נוסף.
הפקודה הרגילה להרצת האמולטור היא: %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
תהליך התקנת התעודה
כדי להתקין תעודת נטפרי, נפתח חלון שורת הפקודה ונריץ את הפקודות הבאות:
cd %localappdata%\Android\Sdk\platform-tools\
adb root
adb remount
adb shell
זה יכניס אותנו ל-shell עם הרשאות רוט. עכשיו נגרור את קובץ התעודה הנכונה (המותאמת לאנדרויד, ניתן להורידה מכאן לפי ספק) על גבי חלון האמולטור (זה יכניס את הקובץ לכרטיס ה-SD המדומה של המכשיר).
ואז נריץ את הפקודות הבאות:
cp /sdcard/Download/XXXXXXXX.X /system/etc/security/cacerts/
chown a+r /system/etc/security/cacerts/XXXXXXXX.X
זהו, התעודה הותקנה! אפשר לסגור את חלון הפקודה.
הרצות חוזרות
חשוב להבין שהתהליך הנ"ל לא משנה את מחיצת המערכת הקיימת! כאשר מריצים את המכונה עם הפרמטר -writable-system
זה מייצר שכבה נוספת על גבי המחיצה הקיימת שבה נשמרים השינויים שלנו. ולכן, כדי שהשינויים יופיעו בהרצות הבאות, חייבים להריץ את המכונה עם הפרמטר הנ"ל.