מדריך | פירק והרכבת מחיצת Super
-
התהליך קצת מורכב ודורש ידע מקדים
האחריות על המשתמש
מחיצת super היא מחיצה שמאחדת בתוכה 3 מחיצות system/vendor/product
במכשירי A\B זה יהיה כפול 2 = 6
שימו לב שיש לכם גיבוי למחיצה תקינה / לפני השינויים
לפתוח ראש בפקודות ולשנות את שמות הקבצים לפי מה שיש לכםלינוקס
נתקין אובנטו
נעתיק את מחיצת ה super לאובנטו
נוריד את הקבצים האלה ונחלץ
ניכנס בטרמינל לנתיב של הקבצים שחילצנו ונקישsudo ./install.sh
כעת ניכנס לטרמינל בנתיב של מחיצת ה super ונקיש לפירוק המחיצה
sudo lpunpack super.img
קריאת המחיצה ועריכת השינויים
ניצור תיקייה (בשם system)
mkdir system
נפרוס את הקבצים שבקובץ ה img לתיקייה שייצרנו
sudo mount -t ext4 -o loop system.img system
כעת הקבצים בתוך התיקייה בצעו את השינוים, (השתמשו בפקודות sudo)
במחיצות vendor / product השתמשו בפקודה
sudo mount -o loop
ביטול טעינת הקבצים ובדיקת שגיאות
נחזור לתיקייה הראשית בה נמצאים קובץ ה img והתיקייה אליה פרסנו את הקבצים
נבטל את טעינת הקבצים על התיקייהsudo umount system
נקיש את הפקודה הבאה לבדיקת שגיאות במבנה המחיצות, (לבדוק את כל המחיצות)
sudo e2fsck -yf partition name
נבדוק מה הגודל של כל מחיצה באמצעות הפקודה (נצטרך את זה בהמשך)
stat -c '%n %s' partition name
לבדיקה ב Mbstat -c '%n %s' partition name | awk '{printf("%s %.2f MB\n", $1, $2/1024/1024)}'
אריזת ה super חזרה
כעת נראה איך בנויה הפקודה
גישה לפקודהsudo lpmake
גודל הנתונים של המכשיר (לא הבנתי את הפקודה במדויק אבל למכשירי 64 ביט זה עובד)
--metadata-size 65536
שם המחיצה שניצור
--super-name super
הפרמטר הבא משתנה בין מכשיר עם מחיצות A\B שזה שווה ל 2 ולמכשירי A בלבד שווה ל 1
--metadata-slots 1\2
הגודל שהיצרן הקצה למחיצה במכשיר ולא הגודל הפיזי שלה (נבדוק את גודל ה super ששאבנו מהמכשיר)
--device super:XXXXXXXX
גודל של כל המחיצות בתרגיל ועוד של מה שקיבלנו בפקודה למעלה
--group main:XXXXXXXX
הגדרת מידע על כל מחיצה, מה שצריך לשנות זה את הגודל שיצא מהפקודה למעלה במקום ה X
--partition system_a:readonly:XXXXXXXX:main --image system_a=./system_a.img --partition system_b:readonly:XXXXXXXX:main --image system_b=./system_b.img --partition vendor_a:readonly:XXXXXXXX:main --image vendor_a=./vendor_a.img --partition vendor_b:readonly:XXXXXXXX:main --image vendor_b=./vendor_b.img --partition product_a:readonly:XXXXXXXX:main --image product_a=./product_a.img --partition product_b:readonly:XXXXXXXX:main --image product_b=./product_b.img
הפרמטר הבא יצור מחיצה בגודל הפיזי שלה
--sparse
זה השם של המחיצה שתיווצר
--output ./super.new.img
הפקודה המלאה
מכשירים עם מחיצות A\B
sudo lpmake \ --metadata-size 65536 \ --super-name super \ --metadata-slots 2 \ --device super:XXXXXXXX \ --group main:XXXXXXXX \ --partition system_a:readonly:XXXXXXXX:main --image system_a=./system_a.img \ --partition system_b:readonly:XXXXXXXX:main --image system_b=./system_b.img \ --partition vendor_a:readonly:XXXXXXXX:main --image vendor_a=./vendor_a.img \ --partition vendor_b:readonly:XXXXXXXX:main --image vendor_b=./vendor_b.img \ --partition product_a:readonly:XXXXXXXX:main --image product_a=./product_a.img \ --partition product_b:readonly:XXXXXXXX:main --image product_b=./product_b.img \ --sparse \ --output ./super.new.img
מכשירים עם מחיצות A בלבד
sudo lpmake \ --metadata-size 65536 \ --super-name super \ --metadata-slots 1 \ --device super:XXXXXXXX \ --group main:XXXXXXXX \ --partition system:readonly:XXXXXXXX:main --image system=./system.img \ --partition vendor:readonly:XXXXXXXX:main --image vendor=./vendor.img \ --partition product:readonly:XXXXXXXX:main --image product=./product.img \ --sparse \ --output ./super.new.img
ווינדוס
נתקין אובנטו באמצעות WSL
נוריד את הקצים האלה
נחלץ ונעתיק את מחיצת ה super לתיקייה המחולצת
ניכנס ל cmd בנתיב התיקייה ונקישlpunpack.exe super.img
קריאת המחיצה ועריכת השינויים
כעת המחיצות שחולצו יהיו בתוך התיקייה ניקח את המחיצה שרוצים לערוך ונעתיק ללינוקס בתיקיית המשתמש
ניכנס לאובנטו בנתיב ששמנו את המחיצה
ניצור תיקייה (בשם system)mkdir system
נפרוס את הקבצים שבקובץ ה img לתיקייה שייצרנו
sudo mount -t ext4 -o loop system.img system
כעת הקבצים בתוך התיקייה בצעו את השינוים, (השתמשו בפקודות sudo)
במחיצות vendor / product השתמשו בפקודה
sudo mount -o loop
ביטול טעינת הקבצים ובדיקת שגיאות
נחזור לתיקייה הראשית בה נמצאים קובץ ה img והתיקייה אליה פרסנו את הקבצים
נבטל את טעינת הקבצים על התיקייהsudo umount system
נקיש את הפקודה הבאה לבדיקת שגיאות במבנה המחיצות, (לבדוק את כל המחיצות)
sudo e2fsck -yf partition name
נבדוק מה הגודל של כל מחיצה באמצעות הפקודה (נצטרך את זה בהמשך)
stat -c '%n %s' partition name
אריזת ה super חזרה
נעתיק את המחיצה לתיקייה בה פירקנו את מחיצת ה super (להחליף עם המחיצה הישנה)
כעת נראה איך בנויה הפקודה
גישה לפקודהlpmake.exe
גודל הנתונים של המכשיר (לא הבנתי את הפקודה במדויק אבל למכשירי 64 ביט זה עובד)
--metadata-size 65536
שם המחיצה שניצור
--super-name super
הפרמטר הבא משתנה בין מכשיר עם מחיצות A\B שזה שווה ל 2 ולמכשירי A בלבד שווה ל 1
--metadata-slots 1\2
הגודל שהיצרן הקצה למחיצה במכשיר ולא הגודל הפיזי שלה (נבדוק את גודל ה super ששאבנו מהמכשיר)
--device super:XXXXXXXX
גודל של כל המחיצות בתרגיל ועוד של מה שקיבלנו בפקודה למעלה
--group main:XXXXXXXX
הגדרת מידע על כל מחיצה, מה שצריך לשנות זה את הגודל שיצא מהפקודה למעלה במקום ה X
--partition system_a:readonly:XXXXXXXX:main --image system_a=./system_a.img --partition system_b:readonly:XXXXXXXX:main --image system_b=./system_b.img --partition vendor_a:readonly:XXXXXXXX:main --image vendor_a=./vendor_a.img --partition vendor_b:readonly:XXXXXXXX:main --image vendor_b=./vendor_b.img --partition product_a:readonly:XXXXXXXX:main --image product_a=./product_a.img --partition product_b:readonly:XXXXXXXX:main --image product_b=./product_b.img
הפרמטר הבא יצור מחיצה בגודל הפיזי שלה (ניתן להוריד את זה)
--sparse
זה השם של המחיצה שתיווצר
--output ./super.new.img
הפקודה המלאה
מכשירים עם מחיצות A\B
lpmake.exe --metadata-size 65536 --super-name super --metadata-slots 2 --device super:XXXXXXXX --group main:XXXXXXXX --partition system_a:readonly:XXXXXXXX:main --image system_a=./system_a.img --partition system_b:readonly:XXXXXXXX:main --image system_b=./system_b.img --partition vendor_a:readonly:XXXXXXXX:main --image vendor_a=./vendor_a.img --partition vendor_b:readonly:XXXXXXXX:main --image vendor_b=./vendor_b.img --partition product_a:readonly:XXXXXXXX:main --image product_a=./product_a.img --partition product_b:readonly:XXXXXXXX:main --image product_b=./product_b.img --sparse --output ./super.new.img
מכשירים עם מחיצות A בלבד
lpmake.exe --metadata-size 65536 --super-name super --metadata-slots 1 --device super:XXXXXXXX --group main:XXXXXXXX --partition system:readonly:XXXXXXXX:main --image system=./system.img --partition vendor:readonly:XXXXXXXX:main --image vendor=./vendor.img --partition product:readonly:XXXXXXXX:main --image product=./product.img --sparse --output ./super.new.img
שימו לב בווינדוס תצטרכו אחרי העריכה של הפקודה לצמצם את הפקודה לשורה אחת
קרדיטים
XDA משם המדריך נבנה,
@Harwona על העזרה בהבנת הפקודות,
הארות והערות כאןבמדריך הושקע זמן רב ורצון שיהיה נגיש לכולם אם יש לכם הערות לשיפור אשמח לשמוע -
-
-