さて。rootを取り、suを仕込むのに数十分、テザリング関係は調べて数時間。
一晩中かけて調べたけれど、まったく結果が出てこない、という結果に。
とりあえずやり方は/data/data/com.android.providers.settings/databases/settings.dbを編集する方法。*1
どうやらXMLなどで記述したパラメータも、ここで上書きできたりするようだ。
いや、少なくともそうだと思っている。信じている。
まず、手法の大まかな話はここ(掲示板でわかりにくいけど)。
これはあくまでXperiaの手法だからと割り切り、まずupdateで書き換えているカラムを調べる。
select * from secure;
でとりあえず一覧が出る。が、まずAPN固定制限に関しては「パラメータがない」。
insertコマンドで追加すると何も変わらない。
ためしにこのパラメータを1にするとそもそもアクセスポイントの設定が消える。
まあ、ないものはないと思って入れなくてよい。影響があることは確認できたし。
とりあえず固定を解除することは無理そうだ。
次にすべきは固定されているものをこちらの思うがままにすること。
さきほどの二番目の方法だ。で、やっぱりこのアクセスポイントを指定している「パラメータがない」。
こちらにいたっては、追加しても無視する。
まあ、そうでなければタイトルの愚痴は不要なわけで。
で、いろいろ調べると、公式のテザリングのコードについて調べてた人がいた。
ふむふむ、先ほどのパラメータはそういう意味か。
気のせいかTETHER_DUN_REQUIREDの反応が違う気がするが。それに上のは反応すらしなかったが。
次に、/system/framework/framework-res.apkを取ってくる。
いろんなパラメータが入ったファイルである。
apkファイルはただのzipだが、展開がうまくいかないことが多いのでapktoolを用いる。
これでとりあえず中身が見れる。
では値を調べよう。
展開ファイルのres/values.strings/xmlになにやらさまざまな文字列が入っており、その中にconfig_tether_apndataなる怪しげな名前のパラメータがある。
そして、それがspモード専用のアドレスになっているではないか。
こいつだ。パラメータの名称違うし。
と思って、データベースにtether_apndataという名称のパラメータを作ってみたが、見事無視された。
で、ログを調べて一応アクセスポイント一覧を取得しているっぽいのでログイン関係以外中身をまったく同じにしてみる。
これでどうだ、と思ったがまたも無視。
やっぱり中にハードコードしてるんじゃなかろうか・・・
*1:あまりに何度も打ったので覚えてしまった。