SGP771 ROMにワンセグTVを入れてみる

前記事ではSO-05Gに海外ROMに書換えました。ユーザさんから質問があったので調べてみました。ワンセグ、10年前はよく耳にしたコトバですが、ネットTVがたくさんある中、衰退気味のようですが未だ現存しているようです。小生はワンセグ全盛当時から SC-02D か Xperia SIMフリー を使っていたため、観たこともなく、No眼中でした。たぶん開発費/型費/生産/在庫管理の費用対効果から、ハードウェアとドライバ部は共通ではないかと思いますので、アプリをインストールできれば使えるかもしれません。

SO-05G純正ROMに入っていたテレビアプリはいませんね。Google TV というのがはいってますが、ただのネットTVのメニューでした。

汎用のワンセグTVアプリは存在しないようです。Google Playで 地上波テレビ 視聴、ワンセグ 地デジ リアルタイム配信 なるものがありますが使い方がわるいのか何もみれません。

SO-05G And6純正ROMに戻すには、機種をSO-05Gに戻さないといけないため直ぐにはできないです。SO-05G And7純正ROMは入手不能なので、And6純正ROMの .ftf からapkを探ってみます。

.ftf からapk展開手順は以下のとおりです。iCore7 3.5GHzのpcで30分はかかります

  1. 7zip で一次解凍
  2. system.sin を SONY flash tool のメニュー tool -> Sin Editer -> Extact data で二次解凍
  3. system.ext4 7zip で三次解凍。データのペイロード後にデータが存在します とmsgが出る場合がありますが気にしなくていいみたいです。
  4. oem.sin も上記2. 3.を実施します。
  5. 解凍フォルダを .apk で検索。

検索した結果は、

ActiveClipper.apk
album-albumLive-release.apk
android-res-305.apk
AndroidGGM-dcm-8_1.5.0-shortcut-product.apk
AnonymousData.apk
anshinmode_dummy-v002_sha1.apk
AntHalService.apk
apk_list.csv
ApnSwitcher_sha2.apk
app-smallbrowser-ed.apk
AppReport_sha1.apk
AptxNotifier.apk
ar-effect.apk
AreaMail_sha1.apk
ArtFilterCamera-xhdpi-release.apk
autogps_sha1.apk
BackupRestoreConfirmation.apk
BasicDreams.apk
Bluetooth.apk
BluetoothMidiService.apk
Books.apk
bootinfo.apk
BridgeLauncher_sha1.apk
Browser.apk
CalendarProvider.apk
CallLogBackup.apk
CameraAddonPermission-release.apk
CameraCommon.apk
CameraCommonPermission-release.apk
CameraExtensionPermission-release.apk
CameraWearableBridgeHandheldServer.apk
CaptivePortalLogin.apk
CarrierConfig.apk
CertInstaller.apk
chkapl_sha1.apk
Chrome.apk
ChromeCustomizations.apk
ClockWidgets-release.apk
CloudPrint.apk
Cloudset_sha1.apk
CloudStorageService_BM_sha1.apk
CNEService.apk
com.android.browser-res-305.apk
com.android.calendar-res-305.apk
com.android.carrierconfig-res-305.apk
com.android.email-res-305.apk
com.android.exchange-res-305.apk
com.android.incallui-res-305.apk
com.android.internal-res-305.apk
com.android.partnerbrowsercustomizations.chromeHomepage-res-305.apk
com.android.phone-res-305.apk
com.android.providers.contacts-res-305.apk
com.android.providers.partnerbookmarks-res-305.apk
com.android.providers.settings-res-305.apk
com.android.server.telecom-res-305.apk
com.android.settings-res-305.apk
com.android.systemui-res-305.apk
com.epson.mobilephone.android.epsonprintserviceplugin.apk
com.evernote.docomo.7.4.1.higherAllArch.1366.apk
com.microsoft.skydrive-res-284.apk
com.mobisystems.fileman.apk
com.nttdocomo.android.dota-res-305.apk
com.nttdocomo.android.osv-res-305.apk
com.qualcomm.location.apk
com.sony.drbd.reader.other.jp.apk
com.sony.snei.psnportal.apk
com.sony.tvsideview.phone.apk
com.sonyericsson.android.camera-res-305.apk
com.sonyericsson.android.socialphonebook-res-305.apk
com.sonyericsson.androidapp.sehome.apk
com.sonyericsson.conversations-res-305.apk
com.sonyericsson.customizedsettings-res-305.apk
com.sonyericsson.extras.liveware-res-305.apk
com.sonyericsson.home-res-305.apk
com.sonyericsson.home.apptray-res-220.apk
com.sonyericsson.infiniteview-res-305.apk
com.sonyericsson.setupwizard-res-305.apk
com.sonyericsson.simcontacts-res-305.apk
com.sonyericsson.tetherentitlementcheck-res-305.apk
com.sonyericsson.trackid-res-305.apk
com.sonyericsson.updatecenter-res-305.apk
com.sonyericsson.usbux-res-305.apk
com.sonyericsson.wappush-res-305.apk
com.sonymobile.androidapp.audiorecorder.apk
com.sonymobile.androidapp.cameraaddon.areffect-res-305.apk
com.sonymobile.androidapp.cameraaddon.arfun-res-305.apk
com.sonymobile.anondata-res-305.apk
com.sonymobile.backgrounddefocus-res-305.apk
com.sonymobile.calendar-res-305.apk
com.sonymobile.customizationselector-res-305.apk
com.sonymobile.email-res-305.apk
com.sonymobile.exchange-res-305.apk
com.sonymobile.keyboardlauncher-res-305.apk
com.sonymobile.poboxplus-res.apk
com.sonymobile.sdcardtransfer-res-305.apk
com.sonymobile.simplehome-res-305.apk
ConfigUpdater.apk
Contacts160010004_sha1.apk
ContentsHeadline_Tablet_v_6_1_0_sha2-chain.apk
Conversations.apk
CoreSettings.apk
CrashMonitor.apk
CrashMonitorSystem.apk
CredentialManagerService.apk
CustomizedSettings-release.apk
Databackup_sha1.apk
DcmAppManager_sha1.apk
DCMDOTA.apk
dcmictag-sha1.apk
DcmIpPushAggregator.apk
DCMLogAcquisition.apk
DCMSWUP.apk
dcmvoicerecognition_sha1.apk
DcmWapPushHelper.apk
dcm_location_noicon_osvfota_sha1.apk
dcm_location_sub_sha1.apk
DecoEmojiManager_nolibs_sha1.apk
DefaultContainerService.apk
DemoAppChecker.apk
device-monitor.apk
DeviceConfigTool.apk
DeviceManager-docomo-v1208-signedAF-aligned.apk
DeviceSecurityService.apk
dhome_tablet_sha1.apk
Dialer170010002_sha1.apk
dlna-somc-xhdpi-release.apk
dmapnavi_navi_dl_2081_sha1.apk
dmenu_sha1.apk
docomoAccountAuthenticator_sha1.apk
DocomoIdManager_sha1.apk
DocomoInitialization_sha1.apk
docomomail_sha1.apk
Docomoremotelock_sha1.apk
DocomoSettingsUtil.apk
docomoset_sha1.apk
Docomowipe_sha1.apk
docomo_remote_sha1.apk
DocumentsUI.apk
DownloadProvider.apk
DownloadProviderUi.apk
Drive.apk
DrmDialogs.apk
DrmLicenseService2.apk
DtcpCtrl-release.apk
DualCamera-xhdpi-release.apk
DualShockManager.apk
duidgenerator.apk
ebook-viewer0_sha1.apk
enhancedusbux.apk
EnterpriseService.apk
ExactCalculator.apk
Exchange2.apk
experienceflow2livewallpaper-release.apk
ExtendedBootLockService.apk
ExternalKeyboardJP.apk
ExternalKeyboardsInternational.apk
ExternalStorageProvider.apk
facebook-xhdpi.apk
FaceFusionCamera-xhdpi-release.apk
FaceLock.apk
fast-dormancy-wakeup.apk
fota-service.apk
framework-res.apk
FsDtvApp.apk
FusedLocation.apk
Galaxy4.apk
gmail-reader-service.apk
Gmail2.apk
GmsCore.apk
GoogleAnalyticsProxy.apk
GoogleBackupTransport.apk
GoogleCalendarSyncAdapter.apk
GoogleContactsSyncAdapter.apk
GoogleFeedback.apk
GoogleLoginService.apk
GoogleLyricsPlugin.apk
GoogleOneTimeInitializer.apk
GooglePackageInstaller.apk
GooglePartnerSetup.apk
GoogleServicesFramework.apk
GoogleTTS.apk
Hangouts.apk
HeadphoneSelection.apk
HoloSpiralWallpaper.apk
Home-Overlay-285.apk
home-release.apk
HotspotAdvancedSetting.apk
HTMLViewer.apk
HwColorTheme002-Overlay-release.apk
HwColorThemeDefault-Overlay-release.apk
IconcierContents_sha1.apk
iConcier_sha1.apk
Iengine.apk
ImageEnhancer.apk
ImageProcessorPermission-release.apk
ImeiBarcode.apk
ims.apk
InCallUI-Overlay-285-docomo-release.apk
InCallUI.apk
InputDevices.apk
IntelligentBacklight-Overlay-270-release.apk
IntelligentBacklight.apk
IntelligentObserver.apk
IntelligentRotation.apk
jp.co.canon.android.printservice.plugin.apk
jp.co.labelgate.moratouch.apk
KerberosService.apk
KeyboardHostApp.apk
KeyboardLauncher.apk
KeyChain.apk
LAC_settings_sha1.apk
Lifelog-googlePreloadLive-release-3.0.P.0.12-6291468.apk
LiveWallpapers.apk
LiveWallpapersPicker.apk
livewaremanager.apk
LockscreenSettings-release.apk
MaintenanceMenu.apk
ManagedProvisioning.apk
Maps.apk
mascot_tablet_sha1.apk
MediaPlayer_fw_mm_tab_sha1.apk
MediaProvider.apk
MmbApp_sha1.apk
MmbFcBrowMw-res.apk
MmbServiceProcess.apk
MmbSetting.apk
MmsService.apk
Music2.apk
MusicFX.apk
Newsstand.apk
NewsWeather.apk
NextbitApp_sha1.apk
NfcNci.apk
NoiseField.apk
OMAClientProvisioning-release.apk
OmaDownload.apk
OmaV1AgentDownloadServices.apk
OneTimePassLockScreenApp.apk
OnlineRemoteCamera-xhdpi-release.apk
overlay-semcexperienceflow2-300-release.apk
package-courier-release.apk
PacProcessor.apk
PartnerBookmarksProvider.apk
PhaseBeam.apk
phone-usage.apk
Phonebook-Overlay-275-docomo-release.apk
Phonebook.apk
Phonesky.apk
Photos.apk
photoslideshow-release.apk
PhotoTable.apk
PhotoViewer_Downloader_sha1.apk
PhotoWidget-release.apk
pip.apk
PlayGames.apk
playstationapp.apk
PlusOne.apk
PrintSpooler.apk
ProxyHandler.apk
qcrilmsgtunnel.apk
QtiTetherService.apk
Radio3.apk
RcaHandler.apk
RemoteAccessRegister.apk
RemoteControlService.apk
RemoteUnlockService.apk
rspermntt_somc.apk
saigaiban-3a-ver11.20.0_sha1.apk
Schedulememo_sha1.apk
ScreenLockService_sha1.apk
ScreenRecording.apk
SDCardBackup_sha1.apk
SdcardTransfer.apk
SecureClockService.apk
SemcAutoPowerOff.apk
SemcCalendar.apk
SemcCamera3D-xhdpi-release.apk
SemcCameraUI-japan-xhdpi-release.apk
SemcClock.apk
SemcCnapProvider.apk
SemcContactPicker2.3.apk
SemcContactsProvider-Overlay-295-docomo-release.apk
SemcContactsProvider.apk
SemcEmail.apk
SemcGenericUxpRes.apk
SemcMetadataCleanup.apk
SemcMusic.apk
SemcPhotoEditor.apk
SemcPowerSaveModule.apk
SemcSettings.apk
SEMCSetupWizard.apk
SemcSimDetection.apk
SemcStorageChecker.apk
SemcTelephonyProvider.apk
SemcTvOut.apk
SemcVideo.apk
SemcWarrantyTime.apk
ServiceMenu-Overlay-270-release.apk
ServiceMenu-Overlay-275-release.apk
ServiceMenu-Overlay-285-release.apk
ServiceMenu.apk
Settings.apk
SettingsProvider.apk
SetupWizard-Overlay-285-release.apk
SetupWizard.apk
SharedStorageBackup.apk
Shell.apk
SimContacts.apk
SimlockUnlockApp.apk
SimpleHome.apk
skin-core-release.apk
skin-picker-release.apk
SmallApp-Calculator-release.apk
SmallApp-Timer-release.apk
SmallAppManagerService-release.apk
SmallAppsFramework-release.apk
SmallAppsLauncher-release.apk
SmallAppWidget-release.apk
smallmovies.apk
SmartSearch.apk
sneiaccountmanager.apk
SnpVUStore.apk
socialife.apk
SocialPhonebookService_sha1.apk
SomcEnterpriseInstallationService.apk
SomcFontSelector.apk
SomcMovieCreator-release.apk
SomcMovieCreatorRmm-release.apk
SomcPhotoAnalyzer.apk
SomcPlayAnywhere.apk
SomcPOBox.apk
SomcPOBoxSkinEasy.apk
SomcPOBoxSkinGummi-xhdpi.apk
SomcPOBoxSkinStandard.apk
SomcPOBoxSkinWood.apk
SomcPodcast.apk
SomcSettings-Overlay-285-release.apk
SomcSketch-live.apk
SomcSupplementallyService.apk
SomcTelecomDataProvider.apk
SOMCWebPlatform.apk
SomcWifiDisplay.apk
SomcWifiService.apk
somc_so05g_manual.apk
sonyentrance2-release.apk
sound-picker-release.apk
SoundEnhancement.apk
SoundPhotoCamera-xhdpi-release.apk
SoundRecorder.apk
StaminaRuntimeOverlay-karin.apk
StartupFlagV2.apk
StatementService.apk
Stk.apk
StoreApp_fw_m_sha1.apk
StyleBlue-release.apk
StyleBubble-release.apk
StyleDaily-release.apk
StyleDoll-release.apk
StylePaint-release.apk
StylePortrait.apk
StyleRed-release.apk
StyleStar-release.apk
StyleSunshine-release.apk
StyleSuntan-release.apk
SuperStamina.apk
SystemUI-Overlay-285-release.apk
SystemUI.apk
Tag.apk
Tasks.apk
Telecom-Overlay-285-docomo-release.apk
Telecom.apk
TeleService-Overlay-285-docomo-release.apk
TeleService.apk
telresources.apk
TetherEntitlementCheck.apk
textinput-chn-xhdpi.apk
textinput-tng-live.apk
theme-manager-release.apk
Theme000-sw800dp-xhdpi-release.apk
Theme001-sw800dp-xhdpi-release.apk
Theme002-sw800dp-xhdpi-release.apk
Theme003-sw800dp-xhdpi-release.apk
Theme004-sw800dp-xhdpi-release.apk
Theme005-sw800dp-xhdpi-release.apk
Theme006-sw800dp-xhdpi-release.apk
Theme007-sw800dp-xhdpi-release.apk
Theme008-sw800dp-xhdpi-release.apk
TimeService.apk
TimeShiftCamera-xhdpi-release.apk
TopContactsProvider.apk
TopContactsWidget-release.apk
toruca_sha1.apk
TouchBlock.apk
TouchFilterPackageSwitchService.apk
trackid.apk
TransmitPower.apk
Twitter-5.85.0.apk
UnsupportedHeadsetNotifier.apk
UpdateCenter-release.apk
usb-mtp-backup-transport.apk
usb-mtp-factoryreset-wrapper.apk
usb-mtp-fotaupdate-wrapper.apk
usb-mtp-update-wrapper.apk
usb-mtp-vendor-extension-service.apk
UserDictionaryProvider.apk
Velvet.apk
Videos.apk
VirtualPreLoad.DCM.apk
VoiceEditor_sha2.apk
VpnDialogs.apk
WallpaperCropper.apk
wallpaperpicker-release.apk
WapPush.apk
WAPPushManager.apk
WeatherWidget-release.apk
WebViewGoogle.apk
WfdService.apk
white-balance.apk
WikipediaPluginJpn.apk
WorldClockWidget-release.apk
xperia-keyboard-dictionaries.apk
XTP.apk
YouTube.apk
YouTubeKaraokePlugin.apk
YouTubePlugin.apk

このたくさんの中から怪しいのを調べます。”tv”とつくものは、

file何か調べた結果
com.sony.tvsideview.phone.apk現存している ソニー Video & TV SideView なので除外。
FsDtvApp.apk解凍するとリソースに見たことのあるTVアイコンと fsdtv mobile android のタイトル。国内受託系独立系のソフト会社さんが作成者の模様。
SemcTvOut.apkワンセグ未対応モデルにも入ってるので除外

FsDtvApp.apk が有力ですが、確実に OEM(キャリア固有のプレインストール)アプリ でありましょう。

とりいそぎ FsDtvApp.apk をインストールして実行してみます。And6用なので警告がでますがOKします。ワンセグアプリとしてはこれが正解で、インストール自体は可能であるとは分かりました。しかし実行はやっぱりだめですね...

一般的に Window でも UNIX でも、実行ファイルは一つとは限りません。大きなアプリでは、共有ライブラリ( UNIXでは .so、Windowsでは .dll )に分割しているのが通例です。Andriodでは apk 内のアプリ本体 classes.dex の他 .odex に分割される場合もあるようです。今回アプリは以下のようになっているようです。

共有ライブラリのシンボリックリンク先の実体は以下の場所にあるようです。同類とおもわれる .so がたくさんあります。 なお lib64 側には関連 .soの配置は無いようです。

.odex にをapkに統合する技があるようです。有志の方がアプリ化されたものがあったので使わせていただいたみました。しかし何も出力されません。多分、古すぎるのでしょう。できたとしても .so の配置の課題が残ります。

上記 .so.odex は apk で配置されているのでしょうか? 含んでいないとは思いますが一応確認します。 Android platform-tools (ADB) にて、コマンドプロンプトAndrod studioターミナル から調べます。接続対象がAnd7と古いので対応する ADB を使う必要があります。詳しくはこちら。端末を開発者モードにして、adb shell で接続し、 cd コマンド と lsコマンド で端末内を調べます。

やはり .so.odex は 未配置ですね。手動でコピーすればいいのですが端末のroot化が必要になります。市場情報では、Bootloader unlock 無しでのSO-05Gのroot化は成功例は無いようです。

Setup済みの端末に .so.odex は 追加できないので、インストール前の file に追加するしかありません。試行錯誤で以下のようにするようでした。

.sin やから生成した .ext4 を UNIX上で、mount -t ext4 でマウントします。今回は WSL を使いました。Windowとシームレスに使えるので効率的です。

マウント出来たらWSL上で .so.odex は を、Windows上で .ext4 を展開したfolderから、cp -rp で手動コピーします。なおWindows上で .ext4 を展開したfolderにコピーすると、とシンボリックlinkでエラーが出るのと、 .ext4 をに逆生成する手段が見つかりません。

このあと umount し、Window上で .ext4 をが更新されていることを確認します。

.ext4 を .sin に変換するには、encode を行う必要があるのかもしれません。encode は ConvertTool (SeusEncrypt.bat/SeusDecrypt.bat)というものを使うとのこと。ここの中段あたりに張り付けてありました。 拡張子ext.outsin に手動で置き換えるようです。And 4 のころの古いWEB記事ではこの紹介がありましたが、And7あたりでは不要かもしれません。

このあと .ftf を生成します。他WEB記事に手順が書いてあると思います。とりいそぎ初回書き込みは失敗です。なんか java でエラーでてます。単純な予期しないnullみたいです。

XperiFirm を使ってD/Lした packageから .ftf を生成すると書込みエラーは解消です。しかし起動すると、、、

よく見るとエラーが出ていました。

.sin を正しく生成できていないですね。Flashtool のソースを読むと、.ext4 を tar して gzip、ヘッダ部から一部読取り端末に送信して照合しているようです。Flashtool には .sin 生成機能は無いようです。.sin から header 部の出力があるので cat で結合してみましたがNG。header と内容の整合性もありそうです。

.sin フォーマットは少し情報がありますね。RSA2048、SHA256 必要みたい。変換ツールは作れなくはなさそうです。

Xperia SIN Structure analysis · GitHub

GitHub – j4nn/sinunpack: unpack sony xperia fw sin images

flashtool の x10flasher_nativ フォルダに、bin2sin.exe というものがありますね。怪しい、、、実行してみると、、、

C:\Flashtool\x10flasher_native>bin2sin Y:\SGP771_temp\system.ext4
Syntax : bin2sin [input] [partition info, 32 digits] [type] [block size] [block spare size]

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です