GlocalMe eSIM Trio を使ってみた
GlocalMe のサイトに eSIM Trio の販売ページが出来ていることに気付き、早速入手して使ってみることにしました。初期のデータ通信契約込みでの購入になるため、Japan & Korea の最も安い 10GB/7DAYS を選択すると 16.50 ドル。別途必要になる送料はさておき、リーズナブルな価格でのご提供です。

Removable eUICC カードです
GlocalMe アプリを端末にインストールし、カード裏面に書かれているデフォルトの ICCID を入力すれば、すぐに利用可能な状態になります。この OTA-eSIM- ナントカという名前の初期データパッケージですが、ES10c: GetProfilesInfo (BF2D) で得られるリストには載りません。GlocalMe 上で追加購入したデータパッケージも同様で、LPA には「eSIM プロファイル」としては扱われないものでした。



上のスクリーンショットにある "Download eSIM" メニューを使うことで、eSIM Trio を eUICC カードとして利用することができます。eSIM プロファイルのダウンロード手続きには、QR コードのスキャンまたはアクティベーションコードのマニュアル入力を選択することができます。
お試しで野良のテストプロファイルをダウンロードしてみると、Remaining Download Attempts が 3 Times から 2 Times に減りました。4 回目以降のダウンロードを行いたい場合には、追加のお支払 1 ドルで 1 回分、5 ドルで 10 回分を購入することができる仕様です。
Class C (1.8V) 非サポート?
届いた eSIM Trio カードを Google Pixel 9 に装着してみたのですが、なんとカードが認識されません。一方、既に普段使い用ではなくなっている Pixel 5 では認識されます。ということで ATR (Answer To Reset) を確認することにしたのですが、もしかすると今回入手したカードの仕様がそうだっただけで、皆さまが手に取るカードとは様子が異なるかもしれないことを予めご承知おきください。
D/AnswerToReset( 4501): Successfully parsed the ATR string
3b9f94803f03a08031a073be211367509a406e7ec104c1 into AnswerToReset:{
mConventionByte=3B,mFormatByte=9F,mInterfaceBytes={
{TA=94,TB=null,TC=null,TD=80}
{TA=null,TB=null,TC=null,TD=3F}
{TA=03,TB=A0,TC=null,TD=null}},
mHistoricalBytes={
80,31,A0,73,BE,21,13,67,50,9A,40,6E,7E,C1,04,
},
mCheckByte=C1
}
D/UiccSlot( 4501): checkIsEuiccSupported : falseTD2 の b1-b4 が 'F' (Protocol T=15) なので、その次のセットが Global Interface Bytes でしたね。TA3 の b1:b6 が Supply Voltage Classes なので下表と照合してみると、どうやらこのカードがサポートしているのは Class A (5V) と Class B (3V) だけで、Class C (1.8V) については非サポートのようです。

Google Pixel 8 あたりから Class C だけをサポートするようになったという記事が散見される(例えば)ので、それかもしれません。

eSIM Trio の販売ページに貼られているスライドでは "Fully compatible with Apple and Android" と表現されているので、今後この表現もしくはカードの仕様が変わるのかどうか気になります。

認証済み eUICC ではない?
ATR を見ていてもう一点目に留まったのは、Global Interface Bytes の TB3 です。TB3 の b2 がセットされていないということは、一般的なセルラー通信用モデムには GSMA SGP.22 対応の eUICC としては認識されないことが予想されます。GlocalMe アプリからアクセスできればいいので、その点については特に困ることはないのだと思います(大前提として UICC としては認識される必要はありますが)。

GSMA SUS-UP (Security Accreditation Scheme for UICC Production) の認定番号はどうなっているんだろうと EUICCInfo2 (BF22) を読んでみたら、そこには "SASAccreditationNumber" と書かれていました。これは認定を受けていないと読んで良いでしょうか。
| profileVersion [1] | 020100 |
|---|---|
| svn [2] | 020200 |
| euiccFirmwareVer [3] | 190400 |
| extCardResource [4] | 81010082040004C48083023EA5 |
| uiccCapability [5] | 017F32 |
| ts102241Version [6] | 090200 |
| globalplatformVersion [7] | 020300 |
| rspCapability [8] | 0490 |
| euiccCiPKIdListForVerification [9] | 041481370F5125D0B1D408D4C3B232E6D25E795BEBFB |
| euiccCiPKIdListForSigning [10] | 041481370F5125D0B1D408D4C3B232E6D25E795BEBFB |
| ppVersion | 010000 |
| sasAcreditationNumber | "SASAccreditationNumber" |
製品の仕様上、端末に eUICC だと認識されてプリインされている LPA に動かれたりしても面倒なので、標準仕様から少し外れたカード仕様にして意図的に認定を受けてはいないということかもしれません。ただ、素性が定かではないカードへの eSIM プロファイルのダウンロードを快く思わない通信事業者もいるかもしれません。ドコモ等の eSIM プロファイルをダウンロードできるかどうか、どこかで人柱が立ってくれることに期待します。
eUICC アクセスはいつもの OMAPI
GlocalMe アプリが OTA SIM ではなく eSIM プロファイルを取り扱う場合には、Android OMAPI を通して eSIM Trio カードにアクセスします。アクセスルールは ARA-M ではなく PKCS#15 (ARF) の方に書かれていて、ISD-R に対するアクセスを GlocalMe アプリに許可するという設定でした。UICC Carrier Privileges の利用は無いようです。
I/SecureElement-AccessRuleCache(): findAccessRule() Case A
REF_DO:
AID_REF_DO: 4f10a0000005591010ffffffff8900000100
Hash_REF_DO: c114661966df2c706b99692a37fc9204408cf8d88f77, ..
I/SecureElement-AccessRuleCache(): [
mPackageName=com.wws.glocalme,
mAccess=ALLOWED, mApduAccess=ALLOWED, ..
]