কিভাবে বুট.আইএমজি এক্সট্রাক্ট করবেন?


15

আমি boot.imgএকটি অ্যান্ড্রয়েড চিত্র থেকে কোনও ফাইলে সামগ্রীটি দেখার চেষ্টা করছি ।

আমি googled এবং এই নিবন্ধটি নিষ্কাশন করতে পেয়েছি system.img, কিন্তু এটি কার্যকর হয় না boot.img। এটি করার চেষ্টা করার সময় boot.imgএটি নিম্নলিখিতটি দেখায়:

Invalid sparse file format at header magi
Failed to read sparse file

হয় simg2imgশুধুমাত্র আহরণের জন্য ব্যবহার করা system.img?

  1. যদি তাই হয়, আহরণের আরও কোন পদ্ধতি আছে কি boot.img?
  2. যদি তা না হয় তবে উত্তোলন না করায় সমস্যা কী boot.img?

দয়া করে নির্দিষ্ট লিনাক্স বিতরণ এবং কার্নেল সংস্করণ সনাক্ত করুন।
এমডিপিসি

উত্তর:


19

boot.img একটি ছোট (ইশ) ফাইল যা দুটি প্রধান অংশ ধারণ করে।

          * kernel(important for android)
          * ramdisk( a core set of instruction & binaries)

আনপ্যাক করুন boot.img:

এটিতে নিম্নলিখিত পদক্ষেপ রয়েছে:

  1. ব্যবহার করে সরঞ্জামটি ডাউনলোড করুন wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/android-serialport-api/android_bootimg_tools.tar.gz

  2. ব্যবহার করে ফাইলটি বের করুন tar xvzf android_bootimg_tools.tar.gz

    এটিতে twoবাইনারি রয়েছে :

           * unpackbootimg
           * mkbootimg
    

3.পরে এক্সিকিউট করুন ./unpackbootimg -i <filename.img> -o <output_path>

It will contain,

           * boot.img-zImage     ----> kernel
           * boot.img-ramdisk.gz ----> ramdisk

নিম্নলিখিত কমান্ডটি ব্যবহার করে আমরা রামডিস্কও বের করতে পারি

gunzip -c boot.img-ramdisk.gz | cpio -i

ফাইলগুলি পরিবর্তন করার পরে, আমরা আবার সেই ফাইলগুলি বুট.আইএমজি হিসাবে প্যাক করতে পারি mkbootimg

আনন্দ কর!


1
তৃতীয় ধাপে আমি ত্রুটি পাচ্ছি দয়া করে আমাকে সহায়তা করুন ... টার্মিনালটি আনপ্যাকবুটিমগ কমান্ডটি পাওয়া যায়নি
রাহুল ম্যাট

1
এখানে পুদিনা 17 তে 3 ধাপের জন্য একই ত্রুটি পাওয়া যাচ্ছে। এগুলি sudo দ্বারা চালানোর চেষ্টা করা হয়েছে এবং chmod 755 এর পরে কোনও লাভ হয়নি।
নিস

পদক্ষেপ 3 এ, output_pathইতিমধ্যে উপস্থিত রয়েছে তা নিশ্চিত করুন , অন্যথায় unpackbootimgসেগফল্ট হবে।
আলদাভিভা

2
সরঞ্জামটির লিঙ্কটি মারা গেছে।
অ্যাডিসন

1
এর জন্য স্থির করুন: "আনপ্যাকবूटিমগ কমান্ড পাওয়া যায় নি", আপনি 32 বিট মেশিনে 32 বিট বাইনারি চালাচ্ছেন 32 বিট নির্ভরতা ছাড়াই। তাদের "ইনস্টল করুন gcc-multilib ইনস্টল করুন" দিয়ে ইনস্টল করুন
WHOL

6

boot.imgসংকীর্ণ ফাইল সিস্টেমের মতো চিত্র নয় system.img। এটি বুটলোডার দ্বারা পড়া হয় এবং এতে কার্নেল চিত্র এবং র‌্যামডিস্ক চিত্রের চেয়ে কিছুটা বেশি থাকে।

কিছু বাইনারি বিতরণ কর্নেল এবং রামডিস্ক চিত্র পৃথকভাবে জাহাজে পাঠায়। সেক্ষেত্রে আপনাকে কিছু করার দরকার নেই boot.img, কেবল একটি নতুন সাথে জেনারেট করুন mkbootimg

আপনার যদি একটি থেকে তথ্য আহরণের প্রয়োজন হয় তবে boot.imgচেষ্টা করুন split_bootimg( উইলিয়াম এনকের মাধ্যমে , অ্যান্ড্রয়েড উইকির মাধ্যমে )।


লিঙ্কটি split_bootimgআর বৈধ নয়।
নাথান ওসমান

@ নাথানঅসমান উইলিয়াম এনকের পৃষ্ঠায় থাকা অনুলিপিটির লিঙ্ক দ্বারা প্রতিস্থাপন করেছেন।
গিলস 'এস-অশুভ হওয়া বন্ধ করুন'

4

আমি খোলামেলা ব্যবহার করি। আমি আবুটিমগ ইনস্টল করেছি। আপনি যদি এক্সট্রাক্ট করতে চান (বুট | পুনরুদ্ধার) im

abootimg -x (boot|recovery).img

তারপরে আপনি পরবর্তী ফাইলগুলি পাবেন: bootimg.cgf, zImage এবং initrd.img আপনি যদি চিত্রটি প্যাক করতে চান তবে আপনি এই জাতীয় চালনা করেন

abootimg --create (boot|recovery).img -f bootimg.cfg -k zImage -r initrd.img

তারপরে আপনি (বুট | পুনরুদ্ধার) .আইএমজি পাবেন

উপভোগ করুন


1

অ্যান্ড্রয়েড বুট চিত্রটি বের করতে এবং পুনরায় প্যাক করতে আপনি নীচের সরঞ্জামটি ব্যবহার করতে পারেন

$ git clone https://github.com/cfig/Android_boot_image_editor.git

ক্লোন করা গিট সংগ্রহস্থলীতে আপনার boot.img অনুলিপি করুন। চালান:

$ ./gradlew unpack

প্রথমবারের জন্য ইন্টারনেট থেকে প্রয়োজনীয় পাছা ডাউনলোড করতে হবে, ধৈর্য ধরুন। আপনি এই বিষয়গুলি "বিল্ড / আনজিপ_বুট /" এ পেতে পারেন:

build/unzip_boot/
├── bootimg.json (boot image info)
├── kernel
├── second (2nd bootloader, if exists)
├── boot.img.avb.json (AVB only)
└── root

এটি উত্তর, কারণ এই কোড এবং প্রকল্পটি বর্তমান এবং বজায় রয়েছে।
গ্যাব্রিয়েল ফেয়ার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.