צריבה של ROM עבור Galaxy S1 i9000 מלינוקס

בפוסט קודם הסברתי על אודות מחיצות באנדרויד. “הקהילה” קוראת לאסופה של ה־images של המחיצות הללו בתור ROM. אין הרבה הסברים באינטרנט שמסבירים איך לצרוב מכשירי Galaxy S i9000 בעברית בלינוקס. אז – מעכשיו יש.

  1. תורידו את ה־ROM־ים המקוריים של החברה המתאימה לכם. אין בעייה גדולה לשים רום של חברה אחרת. אם זה לא עובד, אפשר לצרוב את המודם המתאים. באתר של iAndroid יש קישורים להורדה: http://iandroid.co.il/forum/viewtopic.php?f=42&t=18962
  2. הקבצים שתורידו הם self extracting exe לחלונות. אצלי wine עשה את מלאכתו נאמנה והקבצים שנוצרו וחתימות ה־MD5 הם (קבצי ה־exe הם ממש ישנים, ייתכן ועכשיו יש קבצים עם חתימה שונה, מה שחושב זה קבצי ה־tar שנוצרים מהם):
    82d5a5fffd1fea566aab7fe39522aa2c  I9000.Cellcom.JIJVG.exe
    0cb6ef26ce3076c5b3ffde7cb2ad2a1a  I9000.Partner.JHJVG.exe
    254ef10b0ddacfeabc44cf547082e856  I9000.Pelephone.JJJVB.exe
    eedb05d074db2026b38c8f00ca18f935  Cellcom.JIJVG.tar
    33535d9aff3e39d04b0cc504ac389b51  Pelephone.JJJVB.tar
    7d593eae36a2d5151e6a84454c739827  Partner.JHJVG.tar
  3. עכשיו צריך לפתוח את אחד הקבצים, בתוך ספרייה חדשה (לדוגמה):
     mkdir open-android-firmware
     cd open-android-firmware
     tar xf ../Cellcom.JIJVG.tar
  4. כדי לצרוב צריך גם קובץ pit שמגדיר את מבנה המחיצות. חיפוש ברשת אחר s1_odin_20100512.pit  תניב קובץ שהתחימה שלו היא 1d927b36d2fa807a22e64fc86b445130
  5. צריך גם קובץ שמגדיר dbdatafs, הוא נקרא גם PDA (אין לי שמץ של מושג מה זה). אותו אפשר להוריד מכאן: http://forum.xda-developers.com/showthread.php?t=2184403 החתימה של מה שהורדתי היא 868b81b9e28d30c82a00038d29e65d8c
  6. הצריבה תיעשה על ידי תוכנה heimdall. היא זמינה מהמאגרים החופשיים של דביאן. להתקנה:
     sudo apt install heimdall-flash
  7. אופציונאלי: אני לא אוהב להשתמש ב־root, ולכן הגדרתי חוק udev שהמכשיר יהיה ניתן לתכנות גם בעזרת המשתמש שלי. צריך רק לדאוג שהמשתמש יהיה תחת הקבוצה plugdev ואז החוק הבא יעבוד (זה גם טוב לעבודה מול adb בתור משתמש רגיל, ולכן מומלץ).השורה אחרונה מתאימה לגלקסי, האחרות לנקסוס וואללה, לא זוכר 🙂
    elcuco@pinky ~ $ cat  /etc/udev/rules.d/51-android.rules 
    SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666", GROUP="plugdev" 
    SUBSYSTEM=="usb", ATTR{idVendor}=="681c", MODE="0666", GROUP="plugdev" SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666", GROUP="plugdev"
  8. בשלב זה נשים את המכשיר במצב download. תוציאו את המכסה האחורי,ואז תוציאו את הסוללה (פשוט לתת מכה והיא יוצאת). תכניסו מחדש את הסוללה ואז ללחוץ על השילוש הקדוש: מקש הבית, כפתור שמע תחתון וכפתור ההדלקה. על הצג יהיה אנדרויד צהוב.
    המלצה: לא לשים את המכסה אחורי. יהיה יותר קל להוציא את הסוללה ולהתחיל מההתחלה, ואני מבטיח שיהיה צורך בזה 🙂
  9. כעת פשוט מפעילים את הפקודה הבאה (אני שמרתי אותה בתסריט בשם flash-all.sh)
    heimdall flash --repartition  \
       --pit s1_odin_20100512.pit \
       --FACTORYFS factoryfs.rfs  \    
       --CACHE cache.rfs          \
       --DBDATAFS dbdata.rfs      \
       --IBL+PBL boot.bin         \
       --SBL Sbl.bin              \
       --PARAM param.lfs          \
       --KERNEL zImage            \   
       --MODEM modem.bin
  10. זהו. הצריבה לוקחת כמה דקות ואחרי המכשיר עולה כמו חדש.

שימו לב לאותיות הגדולות. הטקסט הזה מגדיר את שמות המחיצות כפי שמוגדרות בקובץ pit שבחרתם (תפתחו אותו בעורך טקסט ותבינו). אני מניח שאם נשנה את שמות המחיצות לאותיות קטנות נוכל לשנות את הפקודה שתהיה באותיות קטנות. אם מישהו בודק את זה – תכתוב את זה בתגובות, זה יהיה נחמד לדעת.

המלצות נוספות:

  1. אל תנסו את זה בחלונות. צריך להשתמש בתוכנה odin שאין לי מושג מה היא עושה מי כתב אותה. זאת הדלפה של מישהו ואני לא סומך על קוד של מישהו אחר במחשב שלי. התוכנות שיש בלינוקס נבדקו והן קוד פתוח, אני סומך עליהן יותר.
  2. תוודאו את החתימות (md5 במיקרה של מה שאני נותן כאן).
  3. כמה שיותר מהר נסו לשים רום אלטרנטיבי. cyanogenmod הוא בסדר גמור. אני חושב ש־Replicant יהיה יותר טוב – אבל לא בדקתי אישית, והוא לא זמין לכל מכשיר.
  4. על מכשיר ישן זה, לא הייתי ממליץ על gapps כלל. אני השתמשתי ב־FDroid והשלמתי כמה תוכנות עם Aptoid. האחרון מפוקפק משהו… אבל זאת פשרה שאני נאלץ לחיות איתה.
  5. כדי להחליף מודם, יש לשים את המכשיר במצב download ולצרוב בעזרת הפקודה הבאה (את המודם צריך לקחת מהרום המתאים):
    heimdall flash --MODEM modem.bin
  6. אם דילגת על השלב של udev פשוט לשים sudo לפני כל פקודה.

שאלות שנותרו לי ללא מענה:

  1. מה התוכן של dbdata.rfs ומה המטרה של המחיצה הזאת.
  2. מה זה param.lfs.

תזכורת: מחיצות באנדרויד

Share Button

2 thoughts on “צריבה של ROM עבור Galaxy S1 i9000 מלינוקס”

  1. בשלב 6 –
    האם אלו פקודות שאתה עושה מהמכשיר (איפה? באיזו אפליקציה?)
    או ממכונת לינוקס אחרת, ואז: איך המכשיר מחובר? מה דרוש לצורך חיבור זה?

  2. אתה מפעיל את כל הפקודות במחשב שלך, בלינוקס. הפקודות הן פקודות של מסוף (terminal). המכשיר הסלולרי שלך *תמיד* מחובר ב-USB למחשב. הדבר היחיד שאתה עושה במכשיר הסלולרי – זה השילוש הקדוש (שלב 8).

    הפקודה בשלב 6 תתקין את תוכנת הצריבה במערכות דביאן (או אובונטו). אם הכלי כבר מותקן אצלך – אתה יכול לוותר עליו (הוא לא יעשה כלום בכל מיקרה).

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *