2011-12-29 34 views
20

最近,我對android rom感興趣,我想改變並重建它們。
所以,我在我的XOOM上做了一些測試,很容易在機器中閃動某些東西。
我從摩托羅拉獲得了一些ROM(http://developer.motorola.com/products/software/), 他們是一些img文件,我想知道里面有什麼,我希望能解開它們。如何在linux下安裝android img文件?

我試過unyaffs,它說的是broken img file
我嘗試裝載它們,它在system.img上效果很好,我可以在裏面找到文件。

當我想通過mount -o loop userdata.img /mnt/userdata(同system.img)安裝userdata.img,它告訴我mount: you must specify the filesystem type所以我儘量的mount -t ext2 -o loop userdata.img /mnt/userdata,故稱mount: wrong fs type, bad option, bad superblock on...

那麼,如何從userdata.img內部得到的文件?

+0

我試過其他文件系統,它返回相同的錯誤。 – FrankDeng 2011-12-29 05:41:55

+0

system.img:Linux rev 1.0 ext4文件系統數據,UUID = 57f8f4bc-abf4-0000-675f-946fc0f9f25b(需要日誌恢復)(範圍)(大文件) – FrankDeng 2011-12-29 05:47:44

+0

userdata.img:data – FrankDeng 2011-12-29 05:48:01

回答

24

看到答案在:http://omappedia.org/wiki/Android_eMMC_Booting#Modifying_.IMG_Files

首先,你需要「解壓縮」 userdata.imgsimg2img,那麼你可以通過循環設備安裝它。

+0

我發現該頁面有所需的一切:(包括準備建立的源代碼)。使用Nexus 4圖像。 http://forum.xda-developers.com/showthread.php?t=1081239 – genetix 2013-02-14 08:42:03

+0

完美答案。 – benchuk 2014-10-14 19:55:01

2

在Android文件系統中,「system.img」和「userdata.img」是VMS Alpha可執行文件。 「system.img」和「userdata.img」在根文件系統上具有/ system和/ data目錄的內容。它們使用yaffs2文件系統映射到NAND設備。現在,yaffs2映像文件無法安裝在Linux PC上。如果可以的話,也許你會得到一些不包含在yaffs2文件系統中的ROM。您可以檢查這些ROM文件通過執行以下命令:

file <system.img/userdata.img> 

如果顯示「VMS阿爾法可執行文件」,那麼你可以使用「unyaffs」來解壓。

+0

可能適用於三星設備,但不適用於Nexus設備。 – Mikel 2014-10-06 21:27:52

+0

輸入'adb shell mount'來檢查Android設備認爲這些.img文件是什麼文件系統:我浪費時間嘗試unyaff一個ext4圖像... – 2015-03-26 10:58:03

16

我發現了一個簡單的解決方案:http://andwise.net/?p=403

報價

這是所有誰願意來解壓和修改原始system.img,你可以使用閃恢復。

system.img(例如,您從google工廠圖像中獲得的)表示一個稀疏的ext4循環裝入文件系統。

它被安裝到您的設備的/系統中。請注意,本教程適用於ext4文件系統,您可能有系統映像,例如yaffs2。

它被安裝在Galaxy Nexus的方式:

「/dev/block/platform/omap/omap_hsmmc.0/by-name/system /系統EXT4 RO,relatime,屏障= 1,數據=有序0 0「 先決條件:

Linux主機或虛擬機 simg2img,make_ext4fs二進制文件可以從這裏下載http://andwise.net/?attachment_id=406

步驟:

的地方,你system.img和T他將2個二進制文件放在一個目錄中,並確保二進制文件具有exec權限。 第1部分 - 掛載文件系統

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

然後你有你的所有的系統分區中的「SYS」 mouned,你可以修改任何你想要在「SYS」。例如de-odex apks和框架罐。 第2部分 - 創建一個新的可崩解系統映像。

須藤./make_ext4fs -s -l 512M -a系統new.img SYS/ 須藤卸除SYS RM -fr SYS

現在,你可以簡單地輸入:

FASTBOOT閃光系統new.img

+3

'simg2img'(和'make_ext4fs')也可以在'android Debian和Ubuntu上的-tools-fsutils'軟件包。 – Mikel 2014-10-06 21:30:07

+0

嗨,使用這種方法,我遇到了一個錯誤說:「無效稀疏文件格式在標題magi 無法讀取稀疏文件」 – Lysdexia 2017-08-29 05:13:45

0

另一個選擇是使用DDMS中的文件瀏覽器(Eclipse SDK),您可以在那裏看到整個文件系統並將文件下載/上傳到所需的位置。這樣你就不必安裝和處理圖像。請記住將您的設備設置爲USB可調試(來自Developer Tools)

-1

我發現Furius ISO mount最適合我。我使用的是基於Debian的發行版Knoppix。我用這個來打開system.img文件。

Furius ISO掛載:https://packages.debian.org/sid/otherosfs/furiusisomount

「當我想安裝鄰環userdata.img到/ mnt /用戶數據(同system.img)安裝userdata.img,它告訴我安裝:你必須指定文件系統類型,所以我嘗試安裝-t ext2 -o循環userdata.img/mnt/userdata,它表示mount:錯誤的fs類型,錯誤的選項,壞的超級塊...

那麼,如何獲得來自userdata.img內部的文件?「 要加載.img必須選擇循環文件並加載.imgSelect loop

接下來,您選擇安裝 Select mount

Furius ISO掛載處理所有其他選項.img文件加載到你的/ home /目錄。