2011-12-29 24 views
20

Gần đây, tôi quan tâm đến rom android, tôi muốn thay đổi và xây dựng lại chúng.
Vì vậy, tôi đã làm một số thử nghiệm trên XOOM của tôi, nó rất dễ dàng để flash cái gì đó vào máy.
Tôi có một số ROM từ MOTOROLA (http://developer.motorola.com/products/software/), chúng là một số tệp img và tôi muốn biết nội dung bên trong, tôi hy vọng sẽ giải nén chúng.Cách gắn tập tin img android dưới linux?

Tôi đã thử unyaffs, nó cho biết broken img file.
Tôi cố gắng gắn kết chúng, nó hoạt động tốt trên system.img và tôi có thể lấy tệp bên trong.

Khi tôi muốn gắn kết userdata.img bởi mount -o loop userdata.img /mnt/userdata (giống như system.img), nó nói với tôi mount: you must specify the filesystem type vì vậy tôi thử mount -t ext2 -o loop userdata.img /mnt/userdata, nó nói mount: wrong fs type, bad option, bad superblock on...

Vì vậy, làm thế nào để có được các tập tin từ bên trong userdata.img ?

+0

Tôi đã thử hệ thống tệp khác, nó trả về cùng một lỗi. – FrankDeng

+0

system.img: Dữ liệu hệ thống tệp ext4 Linux rev 1.0, UUID = 57f8f4bc-abf4-0000-675f-946fc0f9f25b (cần khôi phục nhật ký) (extents) (tệp lớn) – FrankDeng

+0

userdata.img: dữ liệu – FrankDeng

Trả lời

24

Xem câu trả lời tại: http://omappedia.org/wiki/Android_eMMC_Booting#Modifying_.IMG_Files

Trước tiên, bạn cần phải "giải nén" userdata.img với simg2img, sau đó bạn có thể gắn nó thông qua các thiết bị lặp.

+0

Tôi đã tìm thấy trang đó có mọi thứ cần thiết: (bao gồm cả nguồn sẵn sàng để được xây dựng). Đã làm việc trên hình ảnh Nexus 4. http://forum.xda-developers.com/showthread.php?t=1081239 – genetix

+0

Câu trả lời hoàn hảo. – benchuk

2

Trong hệ thống tệp Android, "system.img" và "userdata.img" là tệp thực thi VMS Alpha. "system.img" và "userdata.img" có nội dung của thư mục/system và/data trên hệ thống tệp gốc. Chúng được ánh xạ trên các thiết bị NAND với hệ thống tệp yaffs2. Bây giờ, tập tin hình ảnh yaffs2 không thể được gắn trên máy tính Linux. Nếu bạn có thể, có thể bạn có một số rom không được đóng gói trong hệ thống tệp yaffs2. Bạn có thể kiểm tra các tệp rom đó bằng cách thực hiện lệnh:

file <system.img/userdata.img> 

Nếu hiển thị "VMS Alpha executable" thì bạn có thể sử dụng "unyaffs" để trích xuất.

+0

Có thể đúng đối với các thiết bị Samsung, nhưng không đúng cho các thiết bị Nexus. – Mikel

+0

Nhập 'adb shell mount' để kiểm tra xem hệ thống tập tin nào thiết bị Android nghĩ rằng các tệp .img này là: Tôi lãng phí thời gian cố gắng hủy gắn ảnh ext4 ... –

16

Tôi đã tìm thấy một giải pháp đơn giản: http://andwise.net/?p=403

Trích

này là dành cho tất cả những ai muốn giải nén và sửa đổi các system.img ban đầu mà bạn có thể flash sử dụng phục hồi.

system.img (ví dụ: ví dụ bạn nhận được từ hình ảnh nhà máy của Google) đại diện cho hệ thống tệp được gắn kết vòng lặp ext4 bị rải rác.

Nó được gắn vào/hệ thống thiết bị của bạn. Lưu ý rằng hướng dẫn này dành cho hệ thống tệp ext4, bạn có thể có hình ảnh hệ thống, ví dụ yaffs2.

cách thức mà nó được gắn trên Galaxy Nexus:

“/dev/block/platform/omap/omap_hsmmc.0/by-name/system/hệ thống ext4 ro, relatime, hàng rào = 1, data = lệnh 0 0 " Điều kiện tiên quyết:

Linux hộp hoặc ảo máy simg2img, make_ext4fs nhị phân có thể được tải về từ đây http://andwise.net/?attachment_id=406

Thủ tục:

nơi bạn system.img và t anh ta 2 nhị phân trong một thư mục, và chắc chắn rằng các tập tin nhị phân có quyền exec. Phần 1 - gắn kết hệ thống tập tin

mkdir sys 
./simg2img system.img sys.raw 
sudo mount -t ext4 -o loop sys.raw sys/ 

Sau đó, bạn có tất cả các phân vùng hệ thống của bạn mouned trong ‘sys’ và bạn có thể thay đổi bất cứ điều gì bạn muốn trong ‘sys’. Ví dụ: ap-odex apks và lọ khuôn. Phần 2 - tạo hình ảnh hệ thống có thể flash mới.

sudo -s ./make_ext4fs -l 512M -a hệ thống new.img sys/ sudo umount sys rm -fr sys

Bây giờ bạn có thể chỉ cần gõ:

fastboot hệ thống đèn flash new.img

+3

'simg2img' (và' make_ext4fs') cũng có sẵn trong 'android -tools-fsutils' gói trên Debian và Ubuntu. – Mikel

+0

Xin chào, bằng cách sử dụng phương pháp này, tôi đã gặp phải lỗi "Định dạng tệp thưa thớt không hợp lệ tại tiêu đề magi Không thể đọc tệp thưa thớt" – Lysdexia

0

Một tùy chọn khác là sử dụng File Explorer trong DDMS (Eclipse SDK), bạn có thể xem toàn bộ hệ thống tệp ở đó và tải xuống/tải tệp lên vị trí mong muốn. Bằng cách đó bạn không phải gắn kết và xử lý hình ảnh. Chỉ cần nhớ đặt thiết bị của bạn là USB debuggable (từ Công cụ dành cho nhà phát triển)

-1

Tôi đã nhận thấy rằng gắn kết Furius ISO hoạt động tốt nhất cho tôi. Tôi đang sử dụng một distro dựa trên Debian Knoppix. Tôi sử dụng nó để mở các tệp system.img mọi lúc.

Furius ISO núi: https://packages.debian.org/sid/otherosfs/furiusisomount

"Khi tôi muốn gắn kết userdata.img bởi lệnh mount -o loop userdata.img/mnt/userdata (giống như system.img), nó nói với tôi gắn kết: bạn phải xác định loại hệ thống tập tin vì vậy tôi thử mount-ext2 -o vòng lặp userdata.img/mnt/userdata, nó nói mount: sai fs loại, tùy chọn xấu, bad superblock trên ...

Vì vậy, làm thế nào để có được tệp từ bên trong userdata.img? " Để tải .img file bạn phải chọn vòng lặp và tải các .imgSelect loop

Tiếp theo bạn chọn gắn Select mount

Furius ISO gắn kết xử lý tất cả các tùy chọn khác tải file .img đến/home của bạn/dir.

Các vấn đề liên quan