GALAXY S4 SC-04EでMVNO SIM使用時にテザリングを有効にする

※この内容の改造を行うには、端末のroot権限を取得する必要があります。
また、CWMも導入やAndroidSDKを使えるようにしておく必要があります。
端末が起動しなくなる可能性もあるので、改造は自己責任で行ってください。

SC-04Eの最新ファーム(SC04EOMUFNI3)で動作を確認しています。
--------------------
Android5.0.1 LollipopでもWifiでのテザリングが可能でした。
Lollipopでやるにあたって、こちらの記事との差を以下の記事で書いてます。

GALAXY S4 SC-04EでMVNO SIM使用時にテザリングを有効にする(Android5.0.1 Lollipop版)
--------------------

まずは準備から。

APK-Multi-Toolをダウンロードします。
日本語化されたものもあります。
APK-Multi-Tool v2.0 日本語版 AndroPlus

APK-Multi-Toolの使い方は、以下のサイトが参考になります。
APKのデコンパイル/再コンパイルツール APK-Multi-Tool AndroPlus

コマンドプロンプトからADB接続で以下のコマンドを実行し
端末からframework-res.apkをPCにコピーします。
(万一の為にバックアップも取っておくといいでしょう)

cd <framework-res.apkファイルをコピーしたいフォルダのパス>
adb.exe pull /system/framework/framework-res.apk

では早速始めます。

APK-Multi-Tool/Setup.batを実行します。

APK-Multi-Tool_1_1

画面が起動したら「3」を選択し「Enter」

APK-Multi-Tool_1_2

必要なフォルダが作成されたら、何かキーを押して元の画面に戻ります。
framework-res.apkを以下の2つのフォルダにコピーします。
APK-Multi-Tool/other
APK-Multi-Tool/place-apk-here-for-modding
そして「2」を選択し「Enter」

下の画面が表示されるので「1」を選択し「Enter」

APK-Multi-Tool_1_3

別画面が表示されるので画面に従い何かキーを押してください。

APK-Multi-Tool_1_4

I: Framework installed to: ~と表示されたら成功していますので、別ポップした画面を閉じます。

元の画面に戻って「00」を選択し「Enter」して一旦終了します。

次のステップに進みます。

APK-Multi-Tool/Script.batを実行します。
以下の画面が表示されるので「23」を選択し「Enter」

APK-Multi-Tool_1_5

圧縮レベルを入力してください(0-9) :と表示されたら「0」を選択し「Enter」

数字を入力してください:という表示に戻るので「27」を選択し「Enter」

現在のプロジェクトとしてセットするファイルを選んでください。
数字を入力:

と表示されたら「1」を選択し「Enter」

数字を入力してください:
という表示に戻るので「9」を選択し「Enter」

これでデコンパイルが開始されます。

デコンパイルが完了すると以下のメッセージが表示されるのでYを押してフォルダを開きます。

framework-res.apk のデコンパイルが完了しました。projects\framework-res.apkフォルダを開きますか?
(Y)はい (N)いいえ
入力してください:

フォルダAPK-Multi-Tool/ojects/framework-res.apkが開くので
更にその下にある目的のファイルを開きます。
目的のパスは以下です。
(元のメニュー画面に戻りますが、画面は開いたままでOKです)

APK-Multi-Tool\projects\framework-res.apk\res\values\strings.xml

strings.xmlをメモ帳やエディターで開きます。

開いたら以下の行を検索します。

docomo_hotspot,dcmtrg.ne.jp,,,,,,,,,440,10,,default,supl

上の行を自分が使用してるSIMのAPNに書き換えます。

1.OCNモバイルONEの場合
ocn_one,lte-d.ocn.ne.jp,,,mobileid@ocn,mobile,,,,,440,10,3,*

2.IIJmioの場合
IIJmio,iijmio.jp,,,mio@iij,iij,,,,,440,10,3,*

他のAPNの場合は、以下の内容をセットしてください。
名前,APN,プロキシ,ポート,ユーザー名,パスワード,サー バー,MMSC,MMSプロキシ,MMSポート,MCC,MNC,認証タイプ,APNタイプ

書き換えが終わったらScript.batで起動していた画面に戻ります。

数字を入力してください:という表示になってると思うので「11」を選択し「Enter」

コンパイルが始まるので暫く待ちます。

エラーを防止するため元のapkから
編集していないファイルをコピーしますか”?^(y/n^)
入力してください:

と表示されたら「y」を選択し「Enter」

ファイルがコピーされ画面が止まったら以下のメッセージが表示されます。
※ここではまだ何も押さずに次へ進みます。

APK Multi-Toolsフォルダにkeepフォルダを作成しました。
編集したファイルを削除し、編集していないファイルは
そのままにしてください。
xmlファイルを編集した場合はresources.arscを削除し、
smaliファイルを編集した場合はclasses.dexを削除してください。
完了したらEnterキーを押してください。
続行するには何かキーを押してください . . .

xmlファイルを編集してますので、APK-Multi-Tool/keep/resources.arscを削除します。

削除したら何かキーを押して圧縮・コンパイル終了させます。

コンパイルが終了したら元の画面に戻りますので閉じてOKです。

コンパイルされたファイルはAPK-Multi-Tool/modified-system-apk-files-hereに格納されます。

systemframework-res.apkという名前になっているので
framework-res.apkにリネームします。

コピーが終わったら端末を一旦落としてCWMを起動します。
(CWMを導入済みで、音量↑ボタンとホームボタンを押したまま電源ON)

端末とPCをUSBケーブルで接続します。
この時にドライバが正しく認識されてなければドライバをインストールします。
(当然ながらAndroidSDKなども入ってないと先に進めません)

※ドライバのインストール方法などは下記のサイトが参考になります。
Galaxy Nexus(SC-04D)のCWM Recovery起動時のドライバ(Android Composite ADB Interface)インストール方法。

CWMのメニューから「mounts and storage」を選択し
/system
/storage/sdcard1
の2つをマウントします。

マウントしたらコマンドプロンプトからADB経由でshellを起動します。

adb.exe push <改造したframework-res.apkのフルパス> /storage/sdcard1/framework-res.apk
adb.exe shell

$ su
# mount -o rw,remount /system
# mv /system/framework/framework-res.apk /system/framework/framework-res.apk.org
# cp /storage/sdcard1/framework-res.apk /system/framework
# chmod 644 /system/framework/framework-res.apk

特に問題なければ端末を再起動して終了です。

# reboot

テザリングが使用可能になっているか確認してください。

もし端末が起動しなくなった場合は、再びADB経由で
バックアップしておいたframework-res.apkを戻します。

————— 起動しなくなった場合 —————
adb.exe shell

$ su
# mount -o rw,remount /system
# rm /system/framework/framework-res.apk
# mv /system/framework/framework-res.apk.org /system/framework/framework-res.apk
————– ————————————

OCNモバイルONEとIIJMio用にコンパイルしたものを置いておきます。
SC-04Eの最新ファーム(SC04EOMUFNI3)で作成。
OCNモバイルONE用(動作確認済み)
IIJMio用(動作未確認なので動いた報告頂けると助かります)

追記
FoxFiでテザリングを開始すると、割と直ぐにネットに繋がりますが
SC-04E標準のテザリングで開始すると、WiFiに接続は出来るものの
ネット接続可能になるまでに30秒ほど時間を要したりします。

GALAXY S4の戻るボタンの場所変更

※この作業を行うには端末のroot権限を取得する必要があります。

GALAXY S4もS3と同じく、一般的なスマホと戻るボタンの配置が逆です。
なので、今回もボタンの配置を変更します。

編集の対象となるファイルは以下です。
/system/usr/keylayout/Generic.kl

今回はESファイルエクスプローラーを使用して変更をします。

まず、ESファイルエクスプローラーにroot権限を与えてください。

ESファイルエクスプローラー設定1

次に設定画面のrootエクスプローラーの項目オンにします。

ESファイルエクスプローラー設定2

rootエクスプローラーの文字の部分をタップし詳細設定に入ります。
詳細設定からR/Wマウントをタップします。

ESファイルエクスプローラー設定3

タップしたらマウントの変更をするパスの一覧が表示されます。

ESファイルエクスプローラー設定4

/systemをRO(ReadOnly)からRW(ReadWrite)に変更します。

ESファイルエクスプローラー設定5

これを行わないと/system配下は読み取り専用のままとなり、ファイルの書き換えが出来ません。
書き込み可能にしたら、最初に書いた/system/usr/keylayout/Generic.klのファイルを開きます。

ESファイルエクスプローラー設定6
ESファイルエクスプローラー設定7
ESファイルエクスプローラー設定8

あとは以下の値を変更します。

変更前
key 139 MENU
key 158 BACK

変更後
key 139 BACK
key 158 MENU

変更後に保存して再起動すればボタンの配置が逆になります。

ボタンの内容を入れ替えても、ボタンのLED点灯は右が戻るのままなので
気になる場合は、ボタンのLED自体を消しちゃえば気になりません。

「設定」-「ディスプレイ」-「タッチキーライト消灯時間」を「常にOFF」にすれば消えます。