Rakuten Linkを楽天モバイルSIMカードを挿入していないXiaomi.eu ROM搭載Xiaomi端末で使う

注: この記事は当初「Rakuten Linkを楽天モバイルSIMカードを挿入していないAndroid 11端末で使う」というタイトルだった。しかし,その後Xiaomi端末用euROMでないと意味がないであろうということがわかったため,タイトルは変更した。


Rakuten LinkをAndroid 11端末上で使いたい。具体的にはXiaomi Redmi Note 10 Pro自分専用写真アルバム)。ストックROMではなく,euROMことXiaomi.eu ROM 12.5.9(Android 11ベース)をインストールしてある。本稿の内容が近いうちにリリースされるであろうAndroid 12ベースのeuROMにも適用できるかは全くわからない。

Android 9のOppo R17 Neoでそのような運用をしてきたわけだが,やはり0円でフルのかけ放題は非常に有用。友人との連絡に電話を使うことはほぼなくなったが,公官庁や店との連絡にはやはり電話が必要で,しかも特にカスタマーサービスへの電話連絡では長時間待たされることもある。そういった際料金のことを気にしてやきもきしなくて済むのは大変ありがたい。

お世話している高齢者の方がフルのかけ放題必須とおっしゃるのでそのための料金プランに常時目配せしているが,最近安くなったとはいえ2,000円前後/月はかかる。この方の場合は,通話にRakuten Linkのようなアプリ使用が要求される(かつ必ずしも高品質・高信頼とはいえない)策には頼らないほうがよいという判断で,実際そういった料金を払っておられる。自分では高い料金を払ってまでかけ放題を得ようとは思わないが,無料で持てるのなら文句はない。

現行のUnlimit VIの料金体系(network.mobile.rakuten.co.jp より)

現行のUnlimit VIの料金体系(network.mobile.rakuten.co.jp より)

自分の場合もう一つ要件があり,それは運用時楽天モバイルSIMカードをその端末に挿入する必要がないこと。DSDV機の使用が前提とはいえ,ほぼ受信専用のいわば公式番号維持のためのSIMカードと,データ通信をまかなうSIMカードで2つのSIMカードスロットが埋まってしまう。それに加えてさらに楽天モバイルSIMカードを同時利用することはできない。

データ通信の側を楽天モバイルでまかなうことはありえるが,その通信費を0円に抑えるにはそれでのデータ通信を1GB/月に抑える必要がある。それを超えると3GBまで1,078円/月に跳ね上がるのでそうなると特におとくではなくなる。楽天モバイル側で1GB/月に抑える制限設定ができればいいが,それを自分でやるとなると心もとなく,そもそも使わないようにしておくほうが安全,という判断になる。

ストックROMの場合

まず最初に確認。Redmi Note 10 ProのストックROMであれば,楽天モバイルSIMカードを挿入した状態でRakuten Linkは当然使えるらしい。

発信者番号非通知の問題

Rakuten Linkから発信する際,データ通信をオンにしていないと発信者番号が相手に通知されないことは既知の問題ではあったが解決策は簡単だった。楽天モバイルのものに限らないSIMカードを端末に挿しておいてそれでデータ通信する状態にすればよい。Wifiはオンでもオフでも構わない。

ところが,Redmi Note 10 Proではそれでも番号が非通知になるという問題が報告されていた。解決策は,データ通信をオンにするだけではなく,wifiを切ること。

最後の記事によれば,2021年10月頃のアップデートでこの番号非通知の問題は解消したとのこと。何のアップデートか,だが, “価格.com – Xiaomi Redmi Note 10 Pro のクチコミ掲示板 (17ページ目)” の書きぶりはRakuten Linkアプリではなく,ストックROMのアップデートにより解決したかのような印象を与える。

euROMの場合

euROMであっても,楽天モバイルSIMカードを挿入した状態ならRakuten Link(最新版の2.8)は当然使えるはず…と思っていると使えない(図)。「楽天モバイルないしパートナのネットワークに繋がっていて,楽天モバイル推奨機種を使っていることを確認」と言われてしまう。繰り返すが,解約済みとかではない,いわば現役の楽天モバイルSIMカードを挿入し有効化しているのに,だ。

Redmi Note 10 Pro【その09】楽天Linkが使えない…? : 機械道楽 弐番館” に答えがあった。必要な権限(端末情報の取得)がアプリに与えられていなかったから。これを手動で与えると確かに使えるようになった。

確かにAndroid 9のOppo R17 Neoでのアプリ権限を見ると非常にシンプル(図)。Android 11のRedmi Note 10 Proでのアプリ権限を見るとはるかに込み入っている(図ーあまりに長いので本稿末尾に)。euROMではRakuten Linkアプリのデバイスの情報取得権限要求に対して,「認めるものの白紙回答する」という設定にデフォルトでなるのが根本的理由なようだ。プライバシーの保護の観点からは確かに望ましい挙動ではあるが,「一言」あってもよかったか。

デバイスの情報のspoofing

ここまではよかったが,挿入していた楽天モバイルSIMカードを外してしまうと,Rakuten Linkアプリは最初の認証画面に戻ってしまう。どうも,その認証対象の番号の楽天モバイルSIMカードでなくても,既に回線契約は解約されているSIMカードであってもともかく楽天モバイルのSIMカードが挿入してある必要があるようだった(かつての “Rakuten Linkアプリの番号認証の仕様変更” 時と同様)。

この挙動から,おそらくそのデバイス情報の取得権限で,SIMカードの事業者情報,具体的にはMCC (Mobile Country Code)とMNC (Mobile Network Code),を見ているのではないかと推測した。楽天モバイルのものであれば任意の電話番号で構わないというところから,そこは見ていないだろうと。その代わり,手入力された番号が実際にその楽天ユーザの所有する番号かどうかは(当然ながら)チェックするもよう。

MCC + MNC をごまかすと携帯電話としての基本機能が損なわれる可能性があるとは思ったが,[APP][XPOSED][5.0-11.x]Android Faker – A Module For Spoof Your Deviceなんかを検討した。開発者は将来MCC + MNCのspoofingをサポートする,と言明したもののそれは実現されないまま立ち消えになったよう。いずれにせよXposedはしくじるとブートループに陥るなど危険性が高いのでこの方向で考えることは止めた。

追記: 後で自分の解法がどうやらeuROMならではのものであることがわかったので,ストックROMを含む他のROMでも自分でやりたいことを実現できるように,この方向でもう少し調べてみた。

Device ID MaskerというXposedモジュールがある。 “Network Country, Operator ID & Name, IMSI” がspoofできるとしているからこれで目的は達成できそうだ。Xposed Module Repositoryでの説明ではこれらのspoofingは無料のLite版で達成できそうだが,是非欲しいアプリ単位でのspoofing機能はPro版が必要。といっても,Proライセンスは現時点で290円で良心的。かつてはアプリ本体もGoogle Play Storeで入手できた

自分のRedmi Note10 Proはrootを取ってあるのでXposedはインストールできる。古い記述ではrootなしでもVirtualXposed: A simple app to use Xposed without root, unlock the bootloader or modify system image, etc.とも使えるとしている。2019年7月の “Device ID Masker Pro v1.17 (Non Root/VirtualXposed) (Spoof Your Private Data On Android) ” でもそれを前提にした説明をしている。開発者のサイトのトップページにすら今だにそういう記述があるが,Changelogによればバージョン2.3でVirtualXposedのサポートは除かれたとのこと。最新版の3.0でAndroid 11に対応。ChangelogによるとMIUIでブートループになることがあったようだが,少なくとも最新版に関してMIUIに関する注意は特にない。明らかにMIUIはテスト対象になってきているのに,今そうなっているということは逆に希望が持てる。

IMEIのspoofingも可能。

古いバージョンから

思い起こしていみると以前のRakuten Linkはセキュリティーがザルなアプリだった。なので古いバージョンのアプリなら使えるのではないかと考えた。そこで古いバージョンで楽天モバイルSIMカードを一切挿入していない状態でアクティベートし,そのまま順により新しいバージョンをインストールしていった。どこかで使えなくなると思っていて,そうなったらその前のバージョンで運用するつもりだった。ところが,驚いたことに最新版までアップデートでき,そのまま使えている。SIMカードの入れ替えをしてもそのまま継続して使える。

古いバージョンはApkpure.comで入手した。Webサイトでは現在そのページが削除された旨の表示があるがApkpureアプリでなら入手可能。

ちなみに,Apkpureアプリでは,ダウンロード先を真のmicroSDカードに設定はできるが,実際にはパーミッションが得られないのでダウンロードに失敗する。ところがそうユーザには知らされず,インストールに進んだ段階で存在しないAPKファイルをインストールするので失敗する。このとき「ファイルのパーズに失敗した」旨のメッセージが出るので,なかなか真の原因に気づけない。

以下古いバージョンから順に試していった履歴。リリース日などはApkpureアプリで得られる情報から。

  • Android 11に対応したのは2.1.11。
  • 楽天モバイルのSIMカードを挿入していなくても,それを挿入した他端末で認証コードをSMSで受け取れればアクティベートできるのは2021/2/24の2.1.13まで(Apkpureで見ることのできる範囲では2.1.xの最終バージョン)。デバイス情報アクセスのパーミッションは特になにもいじる必要がない。このバージョンまでは,Linkで使いたい番号を自分で入力できる。この版ではデータ通信をオンにしていてもwifiもオンになっていると発信した場合相手には番号非通知となる。Wifiを切って発信すれば番号通知される。

  • 2021/3/30の2.2.4では2.1.13のように自分で番号を入力するようなことはできない。ここから楽天モバイルのSIMカードを使っているかのチェックが厳格化したと思われる。2.2.4をクリーンインストールした上で,アクティベートして使える状態に持っていけたかはわからない。ところが2.1.13でアクティベートした状態で上書きインストールしたところ,アクティベート状態は維持された。
  • 2021/6/3の2.4.1でも上と全く同様。
  • 2021/8/23の2.5.1でも同様。
  • 2021/9/28の2.6.1でも同様。
  • 2021/9/30の2.7でも同様。このバージョンでwifi接続よりLTE接続を優先する設定が可能になっった。しかしこの設定を有効化しようとしまいと,wifi接続もあるときの発信のときと,LTE通信のみの発信のときとの番号通知の挙動は,2.2.4のそれと変わらない。
  • 2021/12/2の2.8(現時点での最新版)でも2.7の挙動と全く同様。

このようにすると,なぜかSIMカードの交換をしてもアクティベート状態は保持される

euROM限定か?

考えてみると,この過程で端末の情報を取得する権限は一切明示的に求められていないし,手動で与えてもいない。アプリ情報を確認しても,やはりこの権限はeuROMのデフォルトの「認めるものの白紙回答する」設定になっている。これがこの方法がうまくいった理由だと思われる。試しに,これを「確認する」に変えた上でアプリを起動してみると,アプリはこの権限を要求してくる。最近のバージョンのアプリをクリーンインストールした際は,起動時端末情報が得られないとエラーを吐いて先に進ませないものの,古いバージョンでRakuten Linkで使いたい番号を実際所持していることが既に確認されていれば,新バージョンが得た端末情報が白紙回答でもエラーにはならない,ということ。

端末情報を取得する権限のリクエストに対して,「認めるものの白紙回答する」設定になるのは,ストックROMにはない,euROMの独自仕様と思われる。そうでなければ,euROMでも楽天モバイルのSIMカードを挿入した状態ならストックROMと同様Rakuten Linkが使えるようになったはず。そうならなかったことがこれの証明になる。そうするとそれは,この解法はeuROMか,端末情報取得の権限認可に対してeuROMと同じ挙動をするROMでしか使えない,ということを意味している。

euROMで楽天モバイルのSIMカードを挿入した状態でもさっとRakuten Linkが使えなかったときには,euROMを焼いたことを少し後悔したが,皮肉なことに結局そのストックROMとの挙動差に救われることになった。他のROMでもrootが取れておりXposedフレームワークがインストールしていれば,端末情報をspoofingすることでおそらく思うようなRakuten Linkアプリの使い方ができると踏んでいるが,その考えもその挙動差がヒントになった。

番号非通知の問題は解消せず

ストックROMでは昨年10月頃からデータ通信がオンになっていれば,wifi通信がオンになっていれば番号通知がなされるようになったそうなのだが,残念ながらそれはeuROMでは再現されなかった。

価格.com – 『楽天モバイル非通知の件。』 Xiaomi Redmi Note 10 Pro SIMフリー のクチコミ掲示板” にあるようにオートメーションアプリで問題を軽減することは可能。ただ,そもそもRakuten Linkを使う機会はあまりないので,手作業でやったところでたかがしれている。

それでも,最初Rakuten Link最新版2.8をインストールしてにっちもさっちもいかなくなったことを考えると,とにもかくにもRedmi Note 10 Proで,楽天モバイルSIMカードを挿入していないのも関わらずRakuten Linkが使えるようになったのは大変喜ばしい。その状態でTitanium Backupでバックアップを取ったので,今後アプリのアップデートや何か他のきっかけで使えなくなったとしても,使える状態に戻すのは簡単。

まとめ

自分の端末以外では1例しかまだ検証していない。ただし自分の端末と全く同じくeuROM 12.5.9を搭載したXiaomi Redmi Note 10 Pro。私と同じようなケース,つまり,楽天モバイルSIMカードを挿入していないAndroid 11端末 Xiaomi.eu ROM (euROM) を搭載したXiaomi端末でRakuten Linkを利用したければ,以下の手順を踏めばいいと思われる。

  • 2.1.13以下のバージョンをどこかから入手し,Rakuten Linkを使いたいAndroid端末(以下「ターゲット端末」)にインストール。使用したい楽天モバイル電話番号に対応したSIMカードを入れた他端末でアクティベートのための認証コードをSMSで受け取り,それでアプリの有効化。この段階で楽天モバイルSIMカードをターゲット端末に入れたらまずいかどうかはわからないが,しないほうがいいだろう。
  • 最新版を上書きインストール。Play Storeからで構わない。
  • これらの過程で,そしてその後もその端末では楽天のアカウントから絶対にログアウトしない

 

 

Rakuten Linkを楽天モバイルSIMカードを挿入していないXiaomi.eu ROM搭載Xiaomi端末で使う」への2件のフィードバック

  1. ピンバック: Redmi Note 10 Proのモデムを駄目にしてしまったか? | あくまで暫定措置としてのブログ
  2. ピンバック: Bic SIMのすすめ | あくまで暫定措置としてのブログ

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください