ところが最近のXperiaでは、なぜかBluetoothテザリングの設定項目が消されており、使えません。
ということで、この設定項目を復活させ、Bluetoothテザリングを可能にする試みを行います。
前提は以下です。
・トラブっても自力で復旧できること(つまり自己責任)
・rootとってあること
・CWMを導入してあること
・作業PCでapkの生成、端末に転送できる環境であること
・AX SO-01E と Z SO-02E で動作確認しました
・母艦はWindows 7
odexをいじっていろいろ検証してみたのですが、なぜか上手くいかなかった(設定項目自体は出現するが、テザリングが機能しない)ので、この記事の手法であるオーバーレイでやることにしました。
■必要物資
・aapt.exe(Android SDKにも含まれていますが、最新版がベター)
aapt.exeは、「apktool」で検索した先でゲット。
apktoolのダウンロードページに「apktool-install-windows-うんたらかんたら.tar.bz2」というのがありますが、その中に含まれています。
■1.PCにおける作業フォルダの準備
ここでは「c:\apkwork」とします。
この中に、「new」「framework-res-custom」フォルダを(無ければ)新規作成します。
必要物資たちは作業フォルダ直下にぶっこみます。
□apkwork ┳ □new(生成されたframework-res-custom.apkが入る予定)
┣ □framework-res-custom(ソースファイル群が入る)
┗ aapt.exe
┣ □framework-res-custom(ソースファイル群が入る)
┗ aapt.exe
■2.ソースファイル作成
「framework-res-custom.apk」というファイルを作成するため、各種ファイルを捏造します。
【2-1】「AndroidManifest.xml」作成
テキストエディタで以下の内容を打ち込み、framework-res-customフォルダ内に「AndroidManifest.xml」という名前で保存します。
<?xml version="1.0" encoding="utf-8"?>
<manifest package="android.overlay.custom"
xmlns:android="http://schemas.android.com/apk/res/android">
<overlay target="android" priority="100" />
</manifest>
<manifest package="android.overlay.custom"
xmlns:android="http://schemas.android.com/apk/res/android">
<overlay target="android" priority="100" />
</manifest>
【2-2】リソース作成
framework-res-customフォルダ内に「res」フォルダを新規作成し、さらにその中に「values」フォルダを新規作成します。
テキストエディタで以下の内容を打ち込み、valuesフォルダ内に「arrays.xml」という名前で保存します。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="config_tether_bluetooth_regexs">
<item>bnep\\d</item>
</string-array>
</resources>
<resources>
<string-array name="config_tether_bluetooth_regexs">
<item>bnep\\d</item>
</string-array>
</resources>
ちなみにpublic.xmlは不要。リソースIDはapk生成時に勝手に振られます。
また振られるリソースIDは「0x7fxxxxxx」となり、オリジナルのIDとは別物になりますが、特に影響は無いようなので気にしなくて大丈夫です。
結果的に、framework-res-customフォルダ内の構成は以下のようになります。
□framework-res-custom ┳ □res ━ □values ━ arrays.xml
┗ AndroidManifest.xml
┗ AndroidManifest.xml
■3.apk生成
「apkwork」フォルダでコマンドプロンプトを開き、以下のコマンドを実行します。
C:\apkwork>aapt package -S framework-res-custom\res -M framework-res-custom\AndroidManifest.xml -f -v -F new\framework-res-custom.apk
newフォルダにframework-res-custom.apkが生成されます。
■4.端末をCWMモードにして待機
以降は端末をCWMモードにして作業をすすめます。
CWMが起動したら、「mounts and storage」に入り、「mount /system」と「mount /data」をしておきます。
もちろんPCと端末はUSBでつないでおいてください。
■5.ファイルを端末にぶっこむ
C:\apkwork>adb push new\framework-res-custom.apk /data/local/tmp
■6.framework-res-custom.apkのパーミッション変更
以降は端末のシェルに入っての作業となります。
C:\apkwork>adb shell
~ # cd /data/local/tmp
/data/local/tmp # chmod 0644 framework-res-custom.apk
~ # cd /data/local/tmp
/data/local/tmp # chmod 0644 framework-res-custom.apk
■7.framework-res-custom.apkを所定の位置にコピー、一旦再起動
/data/local/tmp # cp framework-res-custom.apk /system/vendor/overlay
/data/local/tmp # reboot
/data/local/tmp # reboot
/system/vendor/overlayにapkを配置。ここに置いたapkは元のapkに優先して活躍してくれます。
rebootで再起動。
■カスタムを元に戻すには
・/system/vendor/overlay/framework-res-custom.apk
・/data/resource-cache/vendor@overlay@@framework-res-custom@idmap
・/data/system/overlay/system@framework@framework-res.apk/0100
上記3点を削除して再起動すればOKです。
■Bluetoothテザリングのやり方
なにはともあれ、親機と子機をペアリングしてください。
そして親機の方の「設定」→「(無線とネットワーク)その他の設定」→「テザリング」→「Bluetoothテザリング」にチェックを入れてください。
子機がスマホの場合、ステータスバーのbluetoothのアイコンが白くなれば成功と思われます。白くなっていなかったら、子機のbluetooth設定で、親機の名前の横の設定をタップ、プロフィールの「インターネットアクセス」をタップしてみてください。
子機がPCの場合は、bluetoothのウィンドウで親機のアイコンを右クリック→「接続方法」→「アクセスポイント」をクリックでいけると思います。
■おまけ
インストーラーをアップしました。CWM上からzipをインストールしてください。
cwm-btpan-mod
アンインストールは以下で。
cwm-remove-frameworkres-overlay
お疲れ様です。
返信削除うちの社長がハワイに行ったときの話ですが、Wi-Fiテザリングという言葉は通じなかったそうです。HotSpotというと通じるらしいです。
どうもWi-FiでのテザリングをHotSpotという言葉で表すみたいですね。なのでBTのテザリングをHotSpotとは言わないようです。
全然関係ない話でしたね(^^;)
またひとつ余計n…賢くなってしまった…。
削除今回の記事と全く関係がないのですが
返信削除xperia ray[root,cwm実装済み]
を使用しています。
もしよろしければ、戻るボタンでアプリ終了だけでもいいので
cubemodを作っていただけないでしょうか?
申し訳ありませんが、実機が無いととても作れません…。
削除Zへの移植で痛感しました。
一点お聞きしたく。
返信削除こちらの BT-PAN mod.zip ですが
cubecubeさんの Xperia Z mod を導入した端末に上書き導入可能なのでしょうか?
(すみません、まだどちらも導入してないのですが、これから導入しようかと考えているところです)
それぞれ改変しているファイルが別ですので、独立して適用可能ですよ。
削除早速のお返事ありがとうございます。
削除それぞれ導入しても、それぞれが反映されて機能するんですね(^^)
試してみます!
実は車のナビのリアルタイム渋滞情報更新のため、ZとナビをBT-PANで繋ぎたかったんです。
おっしゃる通りです。
削除なるほど、ナビがBT通信なんですね。お役に立てれば幸いです。
Xperia ULでもこの記事の通り新規作成して、正常動作確認できました。またまたmodに反映させていただきます!ありがとうございます。
返信削除お疲れ様です。
削除最近のXperiaですと、同じやり方でオーバーレイできるようですね。
ご報告ありがとうございました。
Xperia SXでも記事通り作業してBTのテザリングが出来るようになりました。今まで諦めていたBTのテザリングが出来るようになったおかげでWI-FIテザリングよりもバッテリー消費が3分の1程度に抑えられとても満足しています。ありがとうごさいます。
返信削除ULってもともとbluethoothテザリングの有効にするボタンがあるのですがこのMOD入れないと使えないのでしょうか?
返信削除それはおそらくBT-PANではなくBT-DUNかと思われます。
削除違いは分かりません、当方では検証出来ませんので…。
(PANがアクセスポイント方式、DUNがダイヤルアップ方式?)
ただ、DUNよりPANの方が安定しているという話は聞きますね。
残念ながら、XperiaE (JB)ではダメでした。。残念です。
返信削除Xperia tipo dualもダメでした・・・
返信削除リンク先のファイルが消えてしまっています
返信削除再アップロードをお願いします
消えているというか、リンクが無効になっているだけです。
削除更新しておきました。
ありがとうございます
削除助かりました
Xperia GXでもBTのテザリングが出来るようになりました。今まで諦めていたBTのテザリングが出来るようになったおかげでバッテリー消費が抑えられとても満足しています。ありがとうごさいます。
返信削除