অ্যান্ড্রয়েড 10 এবং 11-এ, প্রথম পর্যায়ের র্যামডিস্কে প্রথম পর্যায়ের init বাইনারি (যা fstab এন্ট্রি দ্বারা নির্দিষ্ট করা প্রাথমিকভাবে মাউন্ট করা হয়) এবং ভেন্ডার fstab ফাইল রয়েছে। (অ্যান্ড্রয়েড 9 এবং তার পরবর্তী সংস্করণের মতো, system.img
$TARGET_ROOT_OUT
এর বিষয়বস্তু রয়েছে।)
একটি boot-ramdisk (Non-A/B) সহ ডিভাইসগুলির জন্য, প্রথম পর্যায়ের init হল একটি স্ট্যাটিক এক্সিকিউটেবল যা
/init
এ অবস্থিত। এই ডিভাইসগুলিsystem.img
/system
হিসাবে মাউন্ট করে, তারপর/system
এ মাউন্টকে/
সরানোর জন্য একটি সুইচ রুট অপারেশন করে। রামডিস্কের বিষয়বস্তু মাউন্ট করার পরে মুক্ত করা হয়।রামডিস্ক হিসাবে পুনরুদ্ধার ব্যবহার করে এমন ডিভাইসগুলির জন্য, প্রথম পর্যায়ের init রিকভারি ramdisk-এর মধ্যে
/init
এ অবস্থিত। এই ডিভাইসগুলি পরিবেশ থেকে পুনরুদ্ধারের উপাদানগুলি সরাতে প্রথমে/first_stage_ramdisk
এ রুট স্যুইচ করে, তারপর একটি boot-ramdisk-এর সাথে ডিভাইসগুলির মতোই এগিয়ে যান (অর্থাৎ, mountsystem.img
/system
হিসাবে, সেই মাউন্টটিকে/
এ সরানোর জন্য রুটটি স্যুইচ করুন, এবং মাউন্ট করার পরে বিনামূল্যে রামডিস্ক বিষয়বস্তু)। যদিandroidboot.force_normal_boot=1
কার্নেল কমান্ড লাইনে উপস্থিত থাকে (অথবা Android 12 এর পর থেকে বুট কনফিগ), ডিভাইসগুলি পুনরুদ্ধার মোডে বুট করার পরিবর্তে স্বাভাবিকভাবে (অ্যান্ড্রয়েডে) বুট হয়।
প্রথম পর্যায় init শেষ হওয়ার পর, এটি /system/bin/init
selinux_setup
আর্গুমেন্টের সাহায্যে SELinux কম্পাইল ও সিস্টেমে লোড করে। অবশেষে, init /system/bin/init
আবার second_stage
আর্গুমেন্টের সাথে চালায়। এই মুহুর্তে, init-এর প্রধান পর্যায়টি init.rc
স্ক্রিপ্ট ব্যবহার করে বুট প্রক্রিয়া চালিয়ে যায়।
নিম্নলিখিত বিভাগগুলি Android 10 এর আগে এবং পরে নন-A/B ডিভাইসগুলির জন্য পার্টিশন লেআউটের পার্থক্যের বিশদ বিবরণ দেয়৷
পার্টিশন লেআউট (নন-এ/বি ডিভাইস)
নিম্নলিখিত বিভাগগুলি Android 10 এর আগে এবং পরে নন-A/B ডিভাইসগুলির জন্য পার্টিশন লেআউটের পার্থক্যের বিশদ বিবরণ দেয়৷
boot.img
রামডিস্ক (Android 8.x এবং নিম্ন) | রুট হিসাবে সিস্টেম (Android 9) | রামডিস্ক (অ্যান্ড্রয়েড 10 এবং 11) |
---|---|---|
একটি কার্নেল এবং একটি ramdisk.img -/ - init.rc - init - etc -> /system/etc - system/ (mount point) - vendor/ (mount point) - odm/ (mount point) ... | শুধুমাত্র একটি সাধারণ বুট কার্নেল ধারণ করে। | একটি কার্নেল এবং ramdisk.img -/ - init - vendor fstab files - system/ (mount point) - vendor/ (mount point) - odm/ (mount point) ... |
recovery.img
একটি রিকভারি কার্নেল এবং একটি রিকভারি ramdisk.img
রয়েছে
system.img
রামডিস্ক (Android 8.x এবং নিম্ন) | রুট হিসাবে সিস্টেম (Android 9) | রামডিস্ক (অ্যান্ড্রয়েড 10 এবং 11) |
---|---|---|
একটি system.img -/ - bin/ - etc - vendor -> /vendor - ... | system.img -/ - init.rc - init - etc -> /system/etc - system/ - bin/ - etc/ - vendor -> /vendor - ... - vendor/ (mount point) - odm/ (mount point) ... | system.img -/ - init.rc - init -> /system/bin/init - etc -> /system/etc - system/ - bin/ - etc/ - vendor -> /vendor - ... - vendor/ (mount point) - odm/ (mount point) ... |
পার্টিশন লেআউট (A/B ডিভাইস)
নিম্নলিখিত বিভাগগুলি অ্যান্ড্রয়েড 10-এর আগে এবং পরে A/B ডিভাইসগুলির জন্য পার্টিশন লেআউটের পার্থক্যগুলির বিশদ বিবরণ দেয়৷
boot.img
রুট হিসাবে সিস্টেম (Android 9) | রামডিস্ক (অ্যান্ড্রয়েড 10 এবং 11) |
---|---|
সাধারণ বুট কার্নেল এবং রিকভারি-র্যামডিস্ক ( BOARD_USES_RECOVERY_AS_BOOT := true ) ধারণ করে।Recovery-ramdisk শুধুমাত্র রিকভারিতে বুট করার জন্য ব্যবহার করা হয়। | সাধারণ বুট কার্নেল এবং রিকভারি-র্যামডিস্ক ( BOARD_USES_RECOVERY_AS_BOOT := true ) ধারণ করে।Recovery-ramdisk রিকভারি এবং অ্যান্ড্রয়েড উভয় ক্ষেত্রেই বুট করতে ব্যবহার করা হয়। ramdisk.img -/ - init -> /system/bin/init - first_stage_ramdisk - vendor fstab files - etc -> /system/etc - system/ (mount point) - vendor/ (mount point) - odm/ (mount point) ... |
system.img
$TARGET_SYSTEM_OUT
এবং $TARGET_ROOT_OUT
এর একত্রিত বিষয়বস্তু রয়েছে৷
system.img
-/
- init.rc
- init -> /system/bin/init
- etc -> /system/etc
- system/
- bin/
- etc/
- vendor -> /vendor
- ...
- vendor/ (mount point)
- odm/ (mount point)
...