Android factoryfs.img を展開する

Androidのfactoryfs.imgを展開する





factoryfs.imgを展開し中のファイルを取り出す手順です。
ubuntuでの作業です。

■0.ubuntuの端末を開く

基本的にはsudoで実行する。

毎回sudoが面倒なら
username@taki-nt9000:~$ sudo ${SHELL}
[sudo] password for username:

でパスワードを入力すれば後は全てroot権限で実行できます。

以降“# ”と表示されているのはroot権限での実行を表しています。

■1.ext4_utilsをダウンロード
simg2imgはext4_utilsの中に含まれているので
ext4_utils.zipを以下のサイトからダウンロードします。

[REF] Unpacking and repacking stock rom .img files - xda-developers

■2.zlib1g-devのインストール
ext4_utilsのmakeに必要なzlib1g-devをインストールする。

# apt-get install zlib1g-dev

※インストールの実行結果例

root@nt9000:~/ダウンロード/ext4_utils# apt-get install zlib1g-dev

パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
linux-headers-3.0.0-14 linux-headers-3.0.0-14-generic
これらを削除するには 'apt-get autoremove' を利用してください。
以下のパッケージが新たにインストールされます:
zlib1g-dev
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 111 個。
160 kB のアーカイブを取得する必要があります。
この操作後に追加で 426 kB のディスク容量が消費されます。
取得:1 http://jp.archive.ubuntu.com/ubuntu/ oneiric/main zlib1g-dev i386 1:1.2.3.4.dfsg-3ubuntu3 [160 kB]
160 kB を 0秒 で取得しました (393 kB/s)
未選択パッケージ zlib1g-dev を選択しています。
(データベースを読み込んでいます ... 現在 175478 個のファイルとディレクトリがインストールされています。)
(.../zlib1g-dev_1%3a1.2.3.4.dfsg-3ubuntu3_i386.deb から) zlib1g-dev を展開しています...
man-db のトリガを処理しています ...
zlib1g-dev (1:1.2.3.4.dfsg-3ubuntu3) を設定しています ...

■3.ext4_utils.zipの解凍
適当なディレクトリにコピーし解凍する。


root@nt9000:~# unzip ext4_utils.zip


■4.ext4_utilsのmake(実行モジュールの作成)
ext4_utils.zipの解凍先ディレクトリに移動しmakeを実行する。

※makeの実行結果

root@nt9000:~# cd ext4_utils
root@nt9000:~/ext4_utils# make
gcc -I. -DANDROID -c output_file.c
gcc -I. -DANDROID -c contents.c
contents.c: 関数 ‘make_directory’ 内:
contents.c:118:3: 警告: 書式 ‘%llu’ は引数の型が ‘long long unsigned int’ であると予期されますが、第 4 引数の型は ‘u32’ です [-Wformat]
gcc -I. -DANDROID -c extent.c
gcc -I. -DANDROID -c indirect.c
gcc -I. -DANDROID -c uuid.c
gcc -I. -DANDROID -c sha1.c
gcc -I. -DANDROID -c sparse_crc32.c
gcc make_ext4fs.o make_ext4fs_main.o ext4_utils.o allocate.o backed_block.o output_file.o contents.o extent.o indirect.o uuid.o sha1.o sparse_crc32.o -o make_ext4fs -lz
gcc -I. -DANDROID -c simg2img.c
gcc simg2img.o sparse_crc32.o -o simg2img


■5.実行モジュールのコピー

パスの通っているディレクトリに実行モジュールのコピー

root@nt9000:~/ext4_utils# cp make_ext4fs /bin/.
root@nt9000:~/ext4_utils# cp mkuserimg.sh /bin/.
root@nt9000:~/ext4_utils# cp simg2img /bin/.


■6.実行確認
simg2imgを実行しUsageが表示されることを確認する


root@nt9000:~/ext4_utils# simg2img
Usage: simg2img



■7.imgファイルの展開


root@taki-nt9000:~/wk# simg2img factoryfs.img output.img

root@taki-nt9000:~/wk# mkdir temp

root@taki-nt9000:~/wk# mount -o loop output.img temp


■8.ファイル抽出


appをまるまるtarで固める

お目当てのファイルがどこにあるか確認しtarで固める

root@taki-nt9000:~/wk# find * -name AuManagementSystem.apk -print
temp/app/AuManagementSystem.apk

root@taki-nt9000:~/wk# tar cvfz app.tar.z temp/app/*
temp/app/AccountAndSyncSettings.apk
temp/app/AccountAndSyncSettings.odex
temp/app/AlertRecipients.apk
temp/app/AlertRecipients.odex
temp/app/AnalogClock.apk
temp/app/AnalogClock.odex
temp/app/AppleJapan.apk
temp/app/ApplicationsProvider.apk
temp/app/ApplicationsProvider.odex
temp/app/AuManagementSystem.apk
temp/app/AuOneMarket.apk
temp/app/AuthInfo.apk
temp/app/AuthInfo.odex
temp/app/AxT9IME.apk
temp/app/AxT9IME.odex
temp/app/BadgeProvider.apk
temp/app/BadgeProvider.odex
temp/app/BluetoothAvrcp.apk
temp/app/BluetoothAvrcp.odex
temp/app/BluetoothOpp.apk
temp/app/BluetoothOpp.odex
temp/app/BluetoothPbap.apk
temp/app/BluetoothPbap.odex
temp/app/BluetoothTestMode.apk
temp/app/BluetoothTestMode.odex
temp/app/BrcmBluetoothServices.apk
temp/app/BrcmBluetoothServices.odex
temp/app/Browser.apk
temp/app/Browser.odex
temp/app/BuddiesNow.apk
temp/app/BuddiesNow.odex
temp/app/CSC.apk
temp/app/CSC.odex
temp/app/CT.apk
temp/app/CT.odex
temp/app/CalendarProvider.apk
temp/app/CalendarProvider.odex
temp/app/CallSetting.apk
temp/app/CallSetting.odex
temp/app/Camera.apk
temp/app/Camera.odex
temp/app/CertInstaller.apk
temp/app/CertInstaller.odex
temp/app/ChocoJapan.apk
temp/app/ClockPackage.apk
temp/app/ClockPackage.odex
temp/app/Cmail.apk
temp/app/Contacts.apk
temp/app/Contacts.odex
temp/app/ContactsProvider.apk
temp/app/ContactsProvider.odex
temp/app/DEmojiProvider.apk
temp/app/DM.apk
temp/app/DM.odex
temp/app/DSMForwarding.apk
temp/app/DSMForwarding.odex
temp/app/DSMLawmo.apk
temp/app/DSMLawmo.odex
temp/app/DataCreate.apk
temp/app/DataCreate.odex
temp/app/DefaultContainerService.apk
temp/app/DefaultContainerService.odex
temp/app/DigitalClock.apk
temp/app/DigitalClock.odex
temp/app/DisasterApp.apk
temp/app/Divx.apk
temp/app/Divx.odex
temp/app/Dlna.apk
temp/app/Dlna.odex
temp/app/DownloadProvider.apk
temp/app/DownloadProvider.odex
temp/app/DownloadProviderUi.apk
temp/app/DownloadProviderUi.odex
temp/app/DrmProvider.apk
temp/app/DrmProvider.odex
temp/app/DrmUA.apk
temp/app/DrmUA.odex
temp/app/DualClock.apk
temp/app/DualClock.odex
temp/app/EdmVpnServices.apk
temp/app/EdmVpnServices.odex
temp/app/Email.apk
temp/app/Email.odex
temp/app/EmailWidget.apk
temp/app/EmailWidget.odex
temp/app/EmojiDisplayProvider.apk
temp/app/Encrypt.apk
temp/app/Encrypt.odex
temp/app/FTC.apk
temp/app/FTC.odex
temp/app/FTM.apk
temp/app/FTM.odex
temp/app/FTS.apk
temp/app/FTS.odex
temp/app/Facebook.apk
temp/app/FactoryTest.apk
temp/app/FactoryTest.odex
temp/app/FriendsNote.apk
temp/app/GLOBAL__PASSPORT_PLUS.apk
temp/app/Gallery3D.apk
temp/app/Gallery3D.odex
temp/app/GenieWidget.apk
temp/app/GenieWidget.odex
temp/app/Gmail.apk
temp/app/Gmail.odex
temp/app/GoogleBackupTransport.apk
temp/app/GoogleBackupTransport.odex
temp/app/GoogleCalendarSyncAdapter.apk
temp/app/GoogleCalendarSyncAdapter.odex
temp/app/GoogleContactsSyncAdapter.apk
temp/app/GoogleContactsSyncAdapter.odex
temp/app/GoogleFeedback.apk
temp/app/GoogleFeedback.odex
temp/app/GooglePartnerSetup.apk
temp/app/GooglePartnerSetup.odex
temp/app/GoogleQuickSearchBox.apk
temp/app/GoogleQuickSearchBox.odex
temp/app/GoogleServicesFramework.apk
temp/app/GoogleServicesFramework.odex
temp/app/GreeMarket.apk
temp/app/HTMLViewer.apk
temp/app/HTMLViewer.odex
temp/app/HelvNeueLT.apk
temp/app/HiddenMenu.apk
temp/app/HiddenMenu.odex
temp/app/HomeChangeApp.apk
temp/app/HomeChangeApp.odex
temp/app/InputEventApp.apk
temp/app/InputEventApp.odex
temp/app/JobManager.apk
temp/app/JobManager.odex
temp/app/JpnCommonEkitan.apk
temp/app/JpnCommonEkitan.odex
temp/app/JpnCommonGameHub.apk
temp/app/JpnCommonGameHub.odex
temp/app/JpnCommonNdrive.apk
temp/app/JpnCommonNdrive.odex
temp/app/JpnCommonNetPeople.apk
temp/app/JpnCommonNetPeople.odex
temp/app/JpnCommonOriconStyle.apk
temp/app/JpnCommonOriconStyle.odex
temp/app/JpnCommonVideoMarket.apk
temp/app/JpnCommonVideoMarket.odex
temp/app/JpnDaliDioDict.apk
temp/app/JpnDaliDioDict.odex
temp/app/JpnDaliManual.apk
temp/app/JpnDaliManual.odex
temp/app/JpnDaliSpriteBackup.apk
temp/app/JpnDaliSpriteBackup.odex
temp/app/JpnDaliSpriteBackupService.apk
temp/app/JpnDaliSpriteBackupService.odex
temp/app/KddiInstaller.apk
temp/app/Keytracer.apk
temp/app/Keytracer.odex
temp/app/Kies.apk
temp/app/Kies.odex
temp/app/KiesAir.apk
temp/app/LISMOBookStore.apk
temp/app/LISMOPlayer.apk
temp/app/LiveWallpapers.apk
temp/app/LiveWallpapers.odex
temp/app/LiveWallpapersPicker.apk
temp/app/LiveWallpapersPicker.odex
temp/app/LogsProvider.apk
temp/app/LogsProvider.odex
temp/app/Maps.apk
temp/app/Maps.odex
temp/app/MarketUpdater.apk
temp/app/MarketUpdater.odex
temp/app/MediaProvider.apk
temp/app/MediaProvider.odex
temp/app/MediaUploader.apk
temp/app/MediaUploader.odex
temp/app/Memo.apk
temp/app/Memo.odex
temp/app/Microbesgl.apk
temp/app/Microbesgl.odex
temp/app/MiniDiary.apk
temp/app/MiniDiary.odex
temp/app/MinimalHome.apk
temp/app/MinimalHome.odex
temp/app/MmsProvisioning.apk
temp/app/MmsProvisioning.odex
temp/app/MobilePrint.apk
temp/app/MobilePrint.odex
temp/app/MobileTrackerEngineTwo.apk
temp/app/MobileTrackerEngineTwo.odex
temp/app/MotionsSettings.apk
temp/app/MotionsSettings.odex
temp/app/MtpApplication.apk
temp/app/MtpApplication.odex
temp/app/MusicPlayer.apk
temp/app/MusicPlayer.odex
temp/app/MyFiles.apk
temp/app/MyFiles.odex
temp/app/NFCTagReader.apk
temp/app/NFCTestMode.apk
temp/app/NFCTestMode.odex
temp/app/NetworkLocation.apk
temp/app/NetworkLocation.odex
temp/app/NewsEx.apk
temp/app/Nfc.apk
temp/app/Nfc.odex
temp/app/NfcMenu.apk
temp/app/ODB.apk
temp/app/ODB.odex
temp/app/OceanWeatherWXGA.apk
temp/app/OceanWeatherWXGA.odex
temp/app/PCWClientS.apk
temp/app/PRUI.apk
temp/app/PRUI.odex
temp/app/PackageInstaller.apk
temp/app/PackageInstaller.odex
temp/app/PanningTryActually.apk
temp/app/PanningTryActually.odex
temp/app/ParentalLock.apk
temp/app/Personalization.apk
temp/app/Personalization.odex
temp/app/Phone.apk
temp/app/Phone.odex
temp/app/PhoneCrashNotifier.apk
temp/app/PhoneCrashNotifier.odex
temp/app/PhoneErrService.apk
temp/app/PhoneErrService.odex
temp/app/Phone_Util.apk
temp/app/Phone_Util.odex
temp/app/Phonesky.apk
temp/app/Phonesky.odex
temp/app/PhotoRetouching.apk
temp/app/PicoTts.apk
temp/app/PicoTts.odex
temp/app/PolarisOfficeXHDPI.apk
temp/app/PopupuiReceiver.apk
temp/app/PopupuiReceiver.odex
temp/app/PostIt.apk
temp/app/PostIt.odex
temp/app/Preconfig.apk
temp/app/Preconfig.odex
temp/app/PressReader.apk
temp/app/PrlDataProvider.apk
temp/app/PrlDataProvider.odex
temp/app/Protips.apk
temp/app/Protips.odex
temp/app/QuickView.apk
temp/app/QuickView.odex
temp/app/SMTEngine.apk
temp/app/SMTSetup.apk
temp/app/SMTSetup.odex
temp/app/SamsungApps.apk
temp/app/SamsungWidget_Contact.apk
temp/app/SamsungWidget_Contact.odex
temp/app/SamsungWidget_FavoriteApp.apk
temp/app/SamsungWidget_FavoriteApp.odex
temp/app/SamsungWidget_News.apk
temp/app/SamsungWidget_News.odex
temp/app/SamsungWidget_ProgramMonitor.apk
temp/app/SamsungWidget_ProgramMonitor.odex
temp/app/SamsungWidget_StockClock.apk
temp/app/SamsungWidget_StockClock.odex
temp/app/SamsungWidget_WeatherClock.apk
temp/app/SamsungWidget_WeatherClock.odex
temp/app/Samsungservice.apk
temp/app/ScreenCaptureService.apk
temp/app/ScreenCaptureService.odex
temp/app/SecDownloadProvider.apk
temp/app/SecDownloadProvider.odex
temp/app/SecurityProvider.apk
temp/app/SecurityProvider.odex
temp/app/SelfTestMode.apk
temp/app/SelfTestMode.odex
temp/app/SeniorCalendarAppWidget.apk
temp/app/SeniorCalendarAppWidget.odex
temp/app/SeniorLauncher.apk
temp/app/SeniorLauncher.odex
temp/app/SerialNumberLabelIndicator.apk
temp/app/SerialNumberLabelIndicator.odex
temp/app/SetWimaxSettings.apk
temp/app/SetWimaxSettings.odex
temp/app/Settings.apk
temp/app/Settings.odex
temp/app/SettingsProvider.apk
temp/app/SettingsProvider.odex
temp/app/SetupWizard.apk
temp/app/SetupWizard.odex
temp/app/ShareApp.apk
temp/app/ShareApp.odex
temp/app/ShortCut.apk
temp/app/SisoDrmProvider.apk
temp/app/SisoDrmProvider.odex
temp/app/Skype.apk
temp/app/SmartcardService.apk
temp/app/SmartcardService.odex
temp/app/SnsAccountFb.apk
temp/app/SnsAccountFb.odex
temp/app/SnsAccountLi.apk
temp/app/SnsAccountLi.odex
temp/app/SnsAccountMx.apk
temp/app/SnsAccountMx.odex
temp/app/SnsAccountTw.apk
temp/app/SnsAccountTw.odex
temp/app/SnsDisclaimer.apk
temp/app/SnsDisclaimer.odex
temp/app/SnsImageCache.apk
temp/app/SnsImageCache.odex
temp/app/SnsProvider.apk
temp/app/SnsProvider.odex
temp/app/SocialHub.apk
temp/app/SocialHub.odex
temp/app/SocialHubWidget.apk
temp/app/SocialHubWidget.odex
temp/app/SoundPlayer.apk
temp/app/SoundPlayer.odex
temp/app/SpeechRecorder.apk
temp/app/SpeechRecorder.odex
temp/app/StaticIP.apk
temp/app/StaticIP.odex
temp/app/Street.apk
temp/app/Street.odex
temp/app/Swype.apk
temp/app/SystemInfo.apk
temp/app/SystemInfo.odex
temp/app/SystemUI.apk
temp/app/SystemUI.odex
temp/app/TSMProxy.apk
temp/app/Tag.apk
temp/app/Tag.odex
temp/app/Talk2.apk
temp/app/Talk2.odex
temp/app/Tasks.apk
temp/app/Tasks.odex
temp/app/TasksProvider.apk
temp/app/TasksProvider.odex
temp/app/TelephonyProvider.apk
temp/app/TelephonyProvider.odex
temp/app/Term.apk
temp/app/Term.odex
temp/app/TinkerJapan.apk
temp/app/TouchWiz30Launcher.apk
temp/app/TouchWiz30Launcher.odex
temp/app/TouchWizCalculator.apk
temp/app/TouchWizCalculator.odex
temp/app/TouchWizCalendar.apk
temp/app/TouchWizCalendar.odex
temp/app/TrimApp.apk
temp/app/TrimApp.odex
temp/app/TtsService.apk
temp/app/TtsService.odex
temp/app/TwCalendarAppWidget.apk
temp/app/TwCalendarAppWidget.odex
temp/app/TwWallpaperChooser.apk
temp/app/TwWallpaperChooser.odex
temp/app/UserDictionaryProvider.apk
temp/app/UserDictionaryProvider.odex
temp/app/Utk.apk
temp/app/Utk.odex
temp/app/VideoEditor.apk
temp/app/VideoEditor.odex
temp/app/VideoPlayer.apk
temp/app/VideoPlayer.odex
temp/app/VoiceRecorder.apk
temp/app/VoiceRecorder.odex
temp/app/VoiceSearch.apk
temp/app/VoiceSearch.odex
temp/app/VpnServices.apk
temp/app/VpnServices.odex
temp/app/WiBroPath.apk
temp/app/WiBroPath.odex
temp/app/WiMAXLineTest.apk
temp/app/WiMAXLineTest.odex
temp/app/WiMAXWTM.apk
temp/app/WiMAXWTM.odex
temp/app/WiMAX_NETEST.apk
temp/app/WiMAX_NETEST.odex
temp/app/WiMAX_RC.apk
temp/app/WiMAX_RC.odex
temp/app/WimaxConfig.apk
temp/app/WimaxConfig.odex
temp/app/WindyWeatherWXGA.apk
temp/app/WindyWeatherWXGA.odex
temp/app/WlanTest.apk
temp/app/WlanTest.odex
temp/app/YouTube.apk
temp/app/YouTube.odex
temp/app/au_Wi-Fi_Connect.apk
temp/app/aucs.apk
temp/app/auoneNaviWalk_shortcut.apk
temp/app/auoneidsetting.apk
temp/app/com.kddi.android.email.apk
temp/app/emailprov.apk
temp/app/fotaclient2.apk
temp/app/fotaclient2.odex
temp/app/iWnnIME.apk
temp/app/kieswifi.apk
temp/app/kieswifi.odex
temp/app/lcdtest.apk
temp/app/lcdtest.odex
temp/app/oem_install_flash_player.apk
temp/app/serviceModeApp.apk
temp/app/serviceModeApp.odex
temp/app/shortcut_eyefi.apk
temp/app/shutdown.apk
temp/app/shutdown.odex
temp/app/syncmldm2.apk
temp/app/syncmldm2.odex
temp/app/syncmlds.apk
temp/app/syncmlds.odex
temp/app/talkback.apk
temp/app/wssomacp.apk
temp/app/wssomacp.odex
temp/app/wssyncmlnps.apk
temp/app/wssyncmlnps.odex

■9.ファイルの転送

後はAndroid端末をUSB接続し
app.tar.zを転送します。


■10.その他

今までの説明はファイルシステムが「ext4」の場合です。

システムが「ext3」の場合はsimg2imgは不要でそのままmountします。

実行例

root@taki-nt9000:~/sc-01c# mkdir temp
root@taki-nt9000:~/sc-01c# mount -o loop,rw factoryfs.rfs temp
root@taki-nt9000:~/sc-01c# cd temp
root@taki-nt9000:~/sc-01c/temp# ls -l
合計 116
drwxr-xr-x 2 root root 32768 5月 9 2011 app
drwxr-xr-x 2 root root 16384 5月 9 2011 bin
-rwxr-xr-x 1 root root 2433 5月 9 2011 build.prop
drwxr-xr-x 2 root root 4096 5月 9 2011 cameradata
drwxr-xr-x 10 root root 4096 5月 9 2011 etc
drwxr-xr-x 2 root root 4096 5月 9 2011 fonts
drwxr-xr-x 2 root root 8192 5月 9 2011 framework
drwxr-xr-x 7 root root 32768 5月 9 2011 lib
drwxr-xr-x 4 root root 4096 5月 9 2011 media
drwxr-xr-x 7 root root 4096 5月 9 2011 usr
drwxr-xr-x 2 root root 4096 5月 9 2011 xbin


Android端末の adb shellからも

localhost wk # ls -l
-rwxrwxr-x 1 system media_rw 329474048 Sep 13 15:19 factoryfs.rfs
localhost wk # mkdir temp
localhost wk # mount -o loop,rw factoryfs.rfs temp
localhost wk # cd temp
localhost temp # ls -l
drwxrwxrwx 2 root root 32768 May 9 2011 app
drwxrwxrwx 2 root root 16384 May 9 2011 bin
-rwxrwxrwx 1 root root 2433 May 9 2011 build.prop
drwxrwxrwx 2 root root 4096 May 9 2011 cameradata
drwxrwxrwx 10 root root 4096 May 9 2011 etc
drwxrwxrwx 2 root root 4096 May 9 2011 fonts
drwxrwxrwx 2 root root 8192 May 9 2011 framework
drwxrwxrwx 7 root root 32768 May 9 2011 lib
drwxrwxrwx 4 root root 4096 May 9 2011 media
drwxrwxrwx 7 root root 4096 May 9 2011 usr
drwxrwxrwx 2 root root 4096 May 9 2011 xbin




コメントの投稿

非公開コメント

アクセスカウンタ
オンラインカウンター
現在の閲覧者数:
プロフィール

たっきー

Author:たっきー
たっきーのブログへようこそ!
パソコン・スマホを
より使いやすくするため奮闘中!
改造したり、root取ったり
色々やってます。

カテゴリ
最新記事
最新コメント
月別アーカイブ
最新トラックバック
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR