通話可能なSIMを15分で用意できる!? eSIMを物理SIMにする9esimを試した

eSIMを物理SIMにする5berというのがあるらしいと調べてみると、扱っていた会社の状況がいまいちで入手できなくなっていた。

似たようなのがあるだろうと、探してみるといくつか出てきた。

9esimというのが入手性がよさそうだなぁ、と

どういったソフトウェアでeSIM情報を書き込むのかな?と調べてみると

Windows/MacOS/Linuxだとgithubで公開されてる「MiniLPA」というソフトウェアで書き込める

AndroidだとNEKOKOLPA ( github / GooglePlayStore ) と 9eSIM (NEKOKOLPAの9esim版)

iOSだとNEKOKOLPA というのがある

で・・・調べていくと、eSTK.me という会社が主体で開発しているオープンソースのOpenEUICC ( githubのミラー )というのが 制約事項の少ないeSIMを物理SIM化できるものらしい

いろいろ調べてtwitterで発言してたら上記のNEKOKOLPAなどに日本語翻訳をつけたRe*Indexさんから「docomoのEIDに対応した物理eSIM「eSTK.me」」というまとめを教えてもらった


EUICCとは?

EUICCとは Embedded Universal Integrated Circuit Cardの略称となるのだが、そもそもの「UICC」というのは「電話番号を特定するために固定のID番号が記録されたICカード」のことを指している。ユーザと特定するためのモジュールということでUIM(User Identity Module)と呼ばれることもあり、これを一般的にSIMカードと呼んでいる。

EmbeddedなUICCというのがどういう状態をさすかといえば、機器などに組み込まれているUICCということで、カードとして取り外せないSIMカードという意味合いになる。

じゃあ、eSIMというのは何なのか、ということになるのだが Embedded UICC Remote Provisioning、つまりリモートから書き換え可能なEUICCをeSIMと称している形になる。

Embedded UICC Remote Provisioningの詳しい仕組みについてはNTTドコモテクニカルジャーナル VOL22. No2(2014年7月号)の「Embedded UICC Remote Provisioningの標準化状況 PDFファイルダウンロード」参照のこと

eSIM情報を書き込める物理SIMとは?

たぶん、いくつか商品があるのだと思われるのだが、安価で提供されているものはeSTK.me社が主体となって開発しているOpenEUICC をベースとしているようだ。

OpenEUICCはAndroid端末上に直接組み込んで使うもので、物理SIMにeSIM情報を書き込めるやつはEasyEUICCというバリエーションという扱いになっている。

物理SIM側に搭載されているチップ上にはSIM ToolKit(STK)と呼ばれるアプリケーションが導入されており、そこにeSIM情報などを書き込んで使えるようにする形となる。

5berや eSIM.me といった製品では各ベンダ固有のアプリケーションでeSIM情報を書き込む必要がありしかも書き換え回数などが有料で販売されていたりする。

それに対してeSTK.meのEasyEUICCベースの製品はそのような制限はなく、自由に操作を行うことができ、また、たとえ会社がなくなったとしても、管理ソフトウェアは単体で動作するように作られているため、継続性に問題はない

EasyEUICCベースの製品を入手する

eSTK.me社のEasyEUICCをベースとした製品を入手するにはいろいろ手段はある

・オリジナルのeSTK.me社から買う

2025年4月28日時点では「SmartCard(2025)」として「ESTKme-AIR」と「ESTKme-ESS(Essentail)」の2種類がある

ESTKme-ESS(Essential)はV3と呼ばれるバージョンで、カード上の記憶域が440KBあり容量がある限りは書き込めるもの。

ESTKme-AIRはeSIMのプロファイルを2個まで書き込める制限版だが、記憶領域自体は440KB用意されている。

・9eSIMから買う

9eSIMからは現状、V2とV3の2種類が出ている。また、パソコン上でeSIM情報を書き込むためのアダプタも販売しているので同時に購入してもよいかもしれない。

9eSIM V2はeSIMプロファイルが50個まで保存できる

9eSIM V3もeSIMプロファイルが50個まで保存できるが、記憶域が1.5MBに拡張されている。

・aliexpressで探す

aliexpressでEasyEUICCを検索するといろいろ出てくる

その中で出てきた「Open Source ESIM Physical Card EasyEUICC Unlimited Write Storing 15 Phone Numbers for IPhone and Android」2080円というのを買ってみた

使ってみた

aliexpressで買ったやつが届いた

9eSIM V0と書いてありました。

取り外して手持ちのAndroidで空いていたOPPO Reno A(Qualcomm Android 9)に入れて 9eSIM-nLPAアプリを起動してみます

認識できてない

GRATINA KYV48(MediaTek Android11)…認識できない
Android One S7(Qualcomm Android11)…認識できた
Xiaomi 12 Lite(Qualcomm Android14)のSIMスロット2は認識できない、SIMスロット1は認識できた

あと、富士通Lifebook U938/S LTEモデルのSIMスロットだとどうなのかな?と試してみたけど、書き換えアプリからは認識できなかった

Androidは、QualcommのAndroid 11以降じゃないと使えないのかなぁ?という印象。

povoでの設定手順例

povoでeSIM契約をしてみた。(招待コード M9Y5NL3G )

手続きして以下の画面までもっていく

「eSIMの設定」をクリックすると、下記のようにQRコードが表示される

QRコードを真ん中においてスクリーンショットを取得

9eSIM-nLPAアプリを起動

+をクリック

「カメラで撮影」か「画像ファイルを指定」を選べるので適切なほうをクリックしてQRコードを読み込み、「SM-DP+Address」と「Matching ID」が表示されることを確認

SM-DP+AddressとMatching IDが表示されている状態で「ダウンロード」ボタンを押すとeSIMプロファイルのダウンロード操作が始まり、しばらくすると、ダウンロードするべきプロファイル情報を表示してくる。

こちらで「ダウンロード」をクリックするとSIMへのeSIM情報書き込みが開始される

ダウンロードが完了

有効ボタンをクリックして戻ると以下のように情報が保存されていることがわかる

一度書き込んだらあとはほかの端末に差し込んでもこのeSIM情報が使えるようになった。

今回のpovo契約はマイナンバーカードを使って行ったのだが20時35分にpovoの会員登録から手続きはじめて20:50にはSIMへの書き込みが終わるという劇的短時間発行でした。

Amazon Fire TVでSteam Linkは普通にインストールできる

Amazon Fire TVでSteam Link使ってパソコン上のSteamゲームを遊べないのかな?とぐぐってみると、開発者モードを有効にしてAPKファイルをインストールする、なんて話が出てくる

が・・・試しにAmazonアプリストアで検索してみると、普通にSteam Linkが出てくる

どうやら、2024年10月9日に登録されたらしい

というわけで、記述が古い開発者モードを有効にして、なんて書いてある記事に騙されないようにしましょう

Orange Pi 5でChromium OS(openFyde) R108を動かす(仮

Orange Pi 5上で動くChromium OSカスタマイズのopenFydeにR108ベース版が登場した。

商用版のfydeOSの方でもFydeOS for YouとしてOrange Pi 5向けがダウンロードできるようになった。

openFydeではR108版ではAndroidアプリが動作するようになった模様(fydeOS v16.1リリースノート にはAndroidに関する記載はない)

Add Android 11 support implemented by project ARCHERO(Alpha test status).
Upgrade Android 11 subsystem ArcHero.

どういう仕組みで動かしているのかな?と調べてみるとFydeOSの「Chromium OS Archero Developer Guide」というページを発見。

Google Chrome OSでのAndroidアプリはGoogle ARC++(Android Runtime for Chrome)を使って動かしているものを、anboxベースで置き換えた、というものであるようだ。

Orange Pi 5へのインストール

openFyde R102でのインストール手法から変更となっている。

1) orangepi5-openfyde-r108-r1.run をダウンロード
2) orangepi5-openfyde-r108-r1.run をインストール先M.2 SSDに合わせたオプション付きで実行してimgファイルを出力
3) imgファイルをmicroSDに書き込む
4) 書き込んだmicroSDとインストール先のM.2 SSD(NVMe or SATA)をOrange Pi 5に取り付け
5) Orange Pi 5の電源をつないでopenFyde起動してM.2 SSDにインストール
6) インストール完了後、自動的に電源は切れる
7) microSDはさしたままOrange Pi 5の電源を入れるとM.2SSDからopenFydeが起動

最初、Linux環境から直接imgファイルをM.2 SSDに書き込んでみたり、microSDで起動してM.2 SSDにインストールした後はmicroSDを抜くものだと思っていたので、起動してこなくて悩みました。

現状のOrange Pi 5だとオンボードSPIにブートローダ書き込んだ場合の動作調整が面倒なので、どのような設定でも最優先されるmicroSDにブートローダを書き込んでしまうのが確実、ということで、常時microSDをさしたままの状態とする、ということのようです。

現状のAndroid互換レイヤーではストアとして中国CoolAPKのみが登録されているので、中国圏のアプリは簡単にインストールできる状態でした。

原神のアイコンがあったのでインストールしてみたところ、インストールに成功し、ログイン時のあの音楽も流れてきましたが、中国アカウントを求められてそれ以上は進めませんでした。

ドコモのらくらくスマートフォン ユーザについての設定確認でやったこと

まあ、実家から、ドコモのらくらくスマートフォン F-52Bを自宅のWiFi環境に繋いでからメールが取れなくなってる、というレスキュー要請があったので見に行った。

その際に、いまのアカウント情報とか聞いて見たんだが、そういうのは店の人にやってもらった、というのだが、アカウントに関する資料をもらっていなかった模様。

これは積んだかな?と思いつつ調べていったらなんとかなったのでメモ書きとして残しておく

まず、これだけは最低必要なことは以下の2つ

・スマホをドコモのSPモード接続で使うこと(WiFiでは駄目)
・ドコモのネットワーク暗証番号(数字4桁)が分かっていること

この状態であれば、スマホからdメニューをたどっていくことで、以下を調べることができる。

・dアカウント名
・dアカウントのパスワード(画面に表示されます)
・IMAP接続用ユーザ名
・IMAP接続用パスワード

Googleアカウントについては、gmailの画面などからメールアドレスを確認することができるかと思います。

パスワードは、まずは、dアカウントのパスワードと同じものを入力して通るか確認します。

通らなかった場合は、パソコンなどからgmailにアクセスし、Googleのメールアドレスを入力して、「パスワード不明」を選び、パスワードの再設定を行います。

そうすると、スマホ側に確認がくるので、はい、と答えると、パソコン側でパスワードの再設定ができるようになるので、新しいパスワードを設定します。

これでなんとかアカウントに関する情報を調べることができました。

で・・・冒頭のメールが取れない、という件は、SPモードメールはdアカウントの登録がちゃんとされていないとWiFi経由で取得出来ないから、という話だったようでした。

なので、dアカウントに関する設定を行うことで、メールは復旧しました。

Orange Pi 5でAndroid/Linux共にM.2 SATA SSDから起動できるようになった

Orange Pi 5の中国語DownloadページのAndroid镜像リンクをたどってみたところ、SPIFlash-SATA SSDというディレクトリが・・・

え?と思って、ダウンロードしてRKDevToolを使って書き込みを試して見るも「Switch into SATA storage Fail, did not support to switch in」というエラーで成功しない。

改めて中国ページの官方工具にあるマニュアルを確認してみると「OrangePi_5_RK3588S_用户手册_v0.7.pdf」と英語ページにあるマニュアルよりだいぶバージョンが上がっている。

ただ、M.2 SATA SSDからAndroidを起動する場合の書き込み手順について違う点はなく、原因は不明・・・

(注:最終的にはLinux側でSPIFlashを書き換えるとAndroidの書き込みが成功するようになりました。)

LinuxをM.2 SATA SSDから起動

その他にないかマニュアルを読み直すとM.2 SATA SSDからLinuxを起動する手順が掲載されているので、そちらを試行してみた。

マニュアル上の重要なポイントは以下

実際にやってみる。

まずSPIFlashの書き換えに使うファイルを確認

orangepi@orangepi5:~$ ls -ld /usr/share/orangepi*
drwxr-xr-x 2 root root 4096 Dec 22 19:36 /usr/share/orangepi
drwxrwxr-x 2 root root 4096 Dec 12 17:58 /usr/share/orangepi5
orangepi@orangepi5:~$ ls -l /usr/share/orangepi
total 4
-rw-r--r-- 1 root root 3269 Dec 22 19:34 boot.cmd
orangepi@orangepi5:~$ ls -l /usr/share/orangepi5/
total 16384
-rw-rw-r-- 1 root root 16777216 Dec 12 17:58 rkspi_loader_sata.img
orangepi@orangepi5:~$

SPIFlashを書き換えます。

orangepi@orangepi5:~$ sudo dd if=/usr/share/orangepi5/rkspi_loader_sata.img of=/dev/mtdblock0
[sudo] password for orangepi:
32768+0 records in
32768+0 records out
16777216 bytes (17 MB, 16 MiB) copied, 244.953 s, 68.5 kB/s
orangepi@orangepi5:~$

現状のM.2 SATA SSD上のブートローダ、パーテーションをddでzeroを書き込んで消します。

orangepi@orangepi5:~$ sudo dd bs=1M if=/dev/zero of=/dev/sda count=2000 status=progress
1754267648 bytes (1.8 GB, 1.6 GiB) copied, 2 s, 877 MB/s
2000+0 records in
2000+0 records out
2097152000 bytes (2.1 GB, 2.0 GiB) copied, 5.5852 s, 375 MB/s
orangepi@orangepi5:~$
orangepi@orangepi5:~$ sudo fdisk -l /dev/sda
Disk /dev/sda: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: WT M.2 512G
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
orangepi@orangepi5:~$

次にmicroSD上にコピーしておいたLinuxイメージをM.2 SATA SSDに書き込みます。

orangepi@orangepi5:~$ sudo dd if=Orangepi5_1.0.8_ubuntu_jammy_desktop_xfce_linux5.10.110.img of=/dev/sda bs=1M status=progress
8129609728 bytes (8.1 GB, 7.6 GiB) copied, 119 s, 68.3 MB/s
7800+0 records in
7800+0 records out
8178892800 bytes (8.2 GB, 7.6 GiB) copied, 121.861 s, 67.1 MB/s
orangepi@orangepi5:~$

書き込み完了後のパーテーションはこのようになります

orangepi@orangepi5:~$ sudo sync
orangepi@orangepi5:~$ sudo fdisk -l /dev/sda
GPT PMBR size mismatch (15974399 != 1000215215) will be corrected by write.
The backup GPT table is not on the end of the device.
Disk /dev/sda: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: WT M.2 512G
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 58FCCC02-859A-5041-ADA7-14802AADF341

Device      Start      End  Sectors  Size Type
/dev/sda1   61440   585727   524288  256M Linux extended boot
/dev/sda2  585728 15974366 15388639  7.3G Linux filesystem
orangepi@orangepi5:~$

書き込んだM.2 SATA SSDの/dev/sda1 にあるorangepiEnv.txtを書き換えるためにマウントします。

orangepi@orangepi5:~$ sudo mount /dev/sda1 /mnt
orangepi@orangepi5:~$ df -h /mnt
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       256M   95M  162M  37% /mnt
orangepi@orangepi5:~$ ls -l /mnt
total 96104
-rwxr-xr-x 1 root root   230456 Dec 22 19:39 boot.bmp
-rwxr-xr-x 1 root root     3269 Dec 22 19:34 boot.cmd
-rwxr-xr-x 1 root root     3341 Dec 22 19:51 boot.scr
-rwxr-xr-x 1 root root   215221 Dec 22 18:24 config-5.10.110-rockchip-rk3588
drwxr-xr-x 3 root root     4096 Dec 22 19:36 dtb
drwxr-xr-x 3 root root     4096 Dec 22 19:36 dtb-5.10.110-rockchip-rk3588
-rwxr-xr-x 1 root root 33915392 Dec 22 18:24 Image
-rwxr-xr-x 1 root root 11119990 Dec 22 19:54 initrd.img-5.10.110-rockchip-rk3588
-rwxr-xr-x 1 root root      154 Dec 22 19:51 orangepiEnv.txt
-rwxr-xr-x 1 root root     1542 Dec 22 19:48 orangepi_first_run.txt.template
-rwxr-xr-x 1 root root  7853912 Dec 22 18:24 System.map-5.10.110-rockchip-rk3588
-rwxr-xr-x 1 root root 11120054 Dec 22 19:54 uInitrd
-rwxr-xr-x 1 root root 33915392 Dec 22 18:24 vmlinuz-5.10.110-rockchip-rk3588
orangepi@orangepi5:~$

orangepiEnv.txtの最後に「overlays=ssd-sata」を追加します。

orangepi@orangepi5:~$ sudo cp /mnt/orangepiEnv.txt /mnt/orangepiEnv.txt.org
orangepi@orangepi5:~$ sudo vi /mnt/orangepiEnv.txt
orangepi@orangepi5:~$ cat /mnt/orangepiEnv.txt
verbosity=1
bootlogo=true
overlay_prefix=rk3588
fdtfile=rockchip/rk3588s-orangepi-5.dtb
rootdev=UUID=5ead0754-b05b-4f29-8170-b0620e7ae6d2
rootfstype=ext4
overlays=ssd-sata
orangepi@orangepi5:~$

書き込んだらumount

orangepi@orangepi5:~$ sudo umount /mnt
orangepi@orangepi5:~$

このあと、microSDを抜いて、M.2 SATA SSDのみで電源を入れると、M.2 SATA SSDから起動しました。

orangepi@orangepi5:~$ sudo fdisk -l /dev/sda
Disk /dev/sda: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: WT M.2 512G
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 58FCCC02-859A-5041-ADA7-14802AADF341

Device      Start       End   Sectors   Size Type
/dev/sda1   61440    585727    524288   256M Linux extended boot
/dev/sda2  585728 990183423 989597696 471.9G Linux filesystem
orangepi@orangepi5:~$

Android再挑戦

Linux側でSPIFlashを書き換えたあとであれば成功するかな?と試してみたところ、これまで失敗していたところは問題無く終了し、書き込みが実行されるようになりました。

(microSDをさしっぱなしにしていると途中で失敗するので注意)

Androidの書き込み完了後は自動的に再起動されAndroidが起動します。

なお、起動したAndroidは、WiringOPアプリが追加されている以外はあまり違いがないような感じでした。


2023/01/12追記

新しいM.2 SATA SSDが届いたので、Androidイメージを書き込むべく、とりあえず「sudo dd if=/usr/share/orangepi5/rkspi_loader_sata.img of=/dev/mtdblock0」を行ったあとに、RKDevToolで書き込みを実施してみましたが、書き込みはfailしました。

「sudo dd if=Orangepi5_1.0.8_ubuntu_jammy_desktop_xfce_linux5.10.110.img of=/dev/sda bs=1M status=progress」でLinuxイメージを書き込み、一度起動させたあとで、RKDevTool書き込みを試すと、成功しました。

(このとき、Linuxを書き込んだあとのorangepiEnv.txt 修正を忘れたので、Linux起動が途中で失敗してinitramfsで止まりましたが、電源強制オフのあと、Android書き込みには問題ありませんでした。)