解壓三星.rfs檔案

jackie_gnu發表於2011-07-18

 copy from:http://www.hiapk.com/thread-543835-1-1.html

你的環境是linux,且安裝了ruby
2、執行ruby stage1.rb,在本目錄下會生成stage1檔案,此生成過程比較長,因為ruby的效率實在太差(到時候改成C實現應該快多了)
3、執行ruby stage2.rb,生成output.vfat(這是vfat格式檔案)
4、即然生成了vfat檔案,就可以用mount載入了,以下命令就是把output.vfat載入到/mnt/rfs目錄下
      sudo mount -o loop -t vfat ~/rfs-extract/output.vfat /mnt/rfs
5、這時候你可以到/mnt/rfs目錄中訪問factory.rfs內的檔案
6、如果你想解壓其它檔案,如data.rfs ,請把stage1.rb中的factory.rfs改成data.rfs

copy from:http://www.hiapk.com/thread-530298-1-1.html

三星出廠和官方ROM裡頭的system分割槽,cache分割槽和data分割槽,用的是所謂Samsung RFS Filesystem, 官方ROM裡頭的pda.tar裡包括factoryfs.rfs和datafs.rfs,CSC.tar裡是cachefs.rfs,一直不明白,這個RFS是什麼格式,嘗試按fat掛載,不成功,用ext2掛載,不成功,用android root filesystem,也不成功,ramfs也不成功。我就靠了,怎麼會有個這麼變態的私有檔案系統啊。嘗試了一下分析其blocks,居然發現,和fat格式的區別是每隔2048就多了一個64bits的東東,再上google搜尋一下,偉大的Samsung RFS的實質,居然,居然是:Fat格式再帶一個日誌,就是每隔2048記錄一下,以起到斷電保護的作用。

靠,Fat本身就是效能低下的格式,還要再直接嵌入日誌,你每次開機mount的時間和所花費的記憶體,會非常大! 難怪每次開機5700都要一分鐘以上了。為什麼不用ext3呢?

根據這個原理,將每隔2048去除64bits,得到一個新檔案,再將該檔案轉成fat,然後以硬碟映象掛載,終於看到了每一個官方ROM裡頭的檔案。

ps, 這些檔案沒有新意,pda包的factoryfs.rfs就是rom裡頭system的內容,包括各種系統自帶apk和odex, 和MOD的zip裡的主體結構幾乎是一樣的,datafs.rfs裡僅僅是幾個文字文件,csc包裡的cachefs.rfs相當於一個recovery,就是給系統打上補丁,補丁一般是指定語言區域的apk和其它系統檔案。

只要不刷csc包,你的機子就是一個純淨的國際版ROM,不帶中文

這樣的ROM檔案系統,明顯禍害不小啊,速度和記憶體開銷,輸在起跑線上了。

相關文章