<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Android on 欧式fifty 嘅 blog</title><link>https://blog.ous50.moe/yue-cn/categories/android/</link><description>Recent content in Android on 欧式fifty 嘅 blog</description><generator>Hugo -- gohugo.io</generator><language>yue-cn</language><copyright>欧式fifty 2020-</copyright><lastBuildDate>Sat, 20 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.ous50.moe/yue-cn/categories/android/index.xml" rel="self" type="application/rss+xml"/><item><title>eUICC 管理详解</title><link>https://blog.ous50.moe/yue-cn/p/euicc-management-explained/</link><pubDate>Sat, 20 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.ous50.moe/yue-cn/p/euicc-management-explained/</guid><description>&lt;h2 id="简介"&gt;&lt;a href="#%e7%ae%80%e4%bb%8b" class="header-anchor"&gt;&lt;/a&gt;简介
&lt;/h2&gt;&lt;p&gt;正如我喺&lt;a class="link" href="../eUICC-Explained" &gt;之前篇关于 UICC 历史嘅文章&lt;/a&gt;入面讲过，&lt;strong&gt;eUICC&lt;/strong&gt; 系一个可编程平台。Android™ 提供咗多种方法畀用户管理 eUICC（下文称为 eSIM），包括但唔限于透过 &lt;a class="link" href="https://euicc-manual.osmocom.org/docs/android/open-mobile-api/" target="_blank" rel="noopener"
 &gt;OMAPI&lt;/a&gt;（Open Mobile API，需要 Android 9 / API 28 或更高版本）或者 &lt;a class="link" href="https://developer.android.com/reference/android/telephony/euicc/EuiccManager" target="_blank" rel="noopener"
 &gt;Android Telephony API&lt;/a&gt;（需要 root 权限同 Android 11 或更高版本；你可以用 Magisk 取代手机上预设嘅 eSIM 管理入口）去使用 &lt;a class="link" href="https://source.android.com/docs/core/connect/esim-overview#make-lpa-app" target="_blank" rel="noopener"
 &gt;LPA（本地设定档助手）&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;本文主要示范点样用 OpenEUICC 同 EasyEUICC 呢两个 app 嚟区分 OMAPI 同 Android Telephony API。呢两个 app 由 &lt;a class="link" href="https://gitea.angry.im/PeterCxy" target="_blank" rel="noopener"
 &gt;Peter Cai&lt;/a&gt; 开发，而且&lt;a class="link" href="https://gitea.angry.im/PeterCxy/OpenEUICC" target="_blank" rel="noopener"
 &gt;共享同一份代码库&lt;/a&gt;。佢哋唯一嘅区别系所用嘅管理 API（EasyEUICC 畀非特权用户，OpenEUICC 畀特权用户）。佢哋嘅分别如下表所示：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th style="text-align: left"&gt;&lt;/th&gt;
					&lt;th style="text-align: center"&gt;OpenEUICC&lt;/th&gt;
					&lt;th style="text-align: center"&gt;EasyEUICC&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td style="text-align: left"&gt;需要特权&lt;/td&gt;
					&lt;td style="text-align: center"&gt;必须作为系统应用安装&lt;/td&gt;
					&lt;td style="text-align: center"&gt;否&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style="text-align: left"&gt;内部 eSIM&lt;/td&gt;
					&lt;td style="text-align: center"&gt;支援&lt;/td&gt;
					&lt;td style="text-align: center"&gt;唔支援&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style="text-align: left"&gt;外部 eSIM &lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt;
					&lt;td style="text-align: center"&gt;支援&lt;/td&gt;
					&lt;td style="text-align: center"&gt;支援&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style="text-align: left"&gt;USB 读卡器&lt;/td&gt;
					&lt;td style="text-align: center"&gt;支援&lt;/td&gt;
					&lt;td style="text-align: center"&gt;支援&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style="text-align: left"&gt;需要 eSIM 白名单&lt;/td&gt;
					&lt;td style="text-align: center"&gt;否&lt;/td&gt;
					&lt;td style="text-align: center"&gt;系 — USB 除外&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style="text-align: left"&gt;系统整合&lt;/td&gt;
					&lt;td style="text-align: center"&gt;部分 &lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt;
					&lt;td style="text-align: center"&gt;否&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style="text-align: left"&gt;最低 Android 版本&lt;/td&gt;
					&lt;td style="text-align: center"&gt;Android 11 或更高&lt;/td&gt;
					&lt;td style="text-align: center"&gt;Android 9 或更高&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="如果你有兴趣购买兼容嘅可移动-esim-卡"&gt;&lt;a href="#%e5%a6%82%e6%9e%9c%e4%bd%a0%e6%9c%89%e5%85%b4%e8%b6%a3%e8%b4%ad%e4%b9%b0%e5%85%bc%e5%ae%b9%e5%98%85%e5%8f%af%e7%a7%bb%e5%8a%a8-esim-%e5%8d%a1" class="header-anchor"&gt;&lt;/a&gt;如果你有兴趣购买兼容嘅可移动 eSIM 卡
&lt;/h3&gt;&lt;p&gt;我哋同多家优秀嘅制造商合作，为你提供一啲折扣选择。揿下面连结以更抵价购买，如果你钟意呢篇文章，都可以支持我。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://store.estk.me/products?code=ous50" target="_blank" rel="noopener"
 &gt;eSTK.me&lt;/a&gt; - 省心嘅选择。支援任意 LPA app，甚至可以用任何 Android 或 iPhone 管理设定档。结账时用优惠码 &lt;code&gt;OUS50&lt;/code&gt; 可享 &lt;strong&gt;9 折&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://www.9esim.com/shop/" target="_blank" rel="noopener"
 &gt;9eSIM&lt;/a&gt; - 经济实惠嘅选择。结账时用 &lt;code&gt;OUS50&lt;/code&gt; 可享 &lt;strong&gt;9 折&lt;/strong&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="easyeuicc---omapi"&gt;&lt;a href="#easyeuicc---omapi" class="header-anchor"&gt;&lt;/a&gt;EasyEUICC - OMAPI
&lt;/h2&gt;

&lt;style&gt;
 .light-quote { font-weight: 300; }
 .bold-quote { font-weight: 700; }
 .extrabold-quote { font-weight: 900}
&lt;/style&gt;


 &lt;blockquote class="gh-blockquote gh-note"&gt;
 &lt;span class="extrabold-quote"&gt;Note&lt;/span&gt;
 &lt;br&gt;

 除非你自己编译 EasyEUICC，否则&lt;strong&gt;你必须确保你嘅外部 eSIM 设备同 &lt;code&gt;EasyEUICC&lt;/code&gt; 兼容&lt;/strong&gt;，即系话设备必须符合 GSMA SGP.22 规范，而且&lt;strong&gt;必须支援&lt;/strong&gt;呢个特定嘅 ARA-M SHA-1 值：&lt;code&gt;2A2FA878BC7C3354C2CF82935A5945A3EDAE4AFA&lt;/code&gt;，跟住先可以继续操作。
 &lt;/blockquote&gt;


&lt;h3 id="下载"&gt;&lt;a href="#%e4%b8%8b%e8%bd%bd" class="header-anchor"&gt;&lt;/a&gt;下载
&lt;/h3&gt;&lt;p&gt;你可以直接喺 &lt;a class="link" href="https://easyeuicc.org/zh-hans/" target="_blank" rel="noopener"
 &gt;EasyEUICC 官方页面&lt;/a&gt; 下载 app。&lt;/p&gt;
&lt;h3 id="首次使用"&gt;&lt;a href="#%e9%a6%96%e6%ac%a1%e4%bd%bf%e7%94%a8" class="header-anchor"&gt;&lt;/a&gt;首次使用
&lt;/h3&gt;&lt;p&gt;首次启动时，EasyEUICC app 会检查你部 Android 手机对 OMAPI 嘅兼容性，并显示你可以用嚟管理&lt;a class="link" href="#%e5%a6%82%e6%9e%9c%e4%bd%a0%e6%9c%89%e5%85%b4%e8%b6%a3%e8%b4%ad%e4%b9%b0%e5%85%bc%e5%ae%b9%e5%98%85%e5%8f%af%e7%a7%bb%e5%8a%a8-esim-%e5%8d%a1" &gt;兼容外部 eSIM 设备&lt;/a&gt;嘅 SIM 卡槽。&lt;/p&gt;
&lt;div class="content-gallery"&gt;
 
 
 
 
 
 
 
 
 
 &lt;img src="https://blog.ous50.moe/images/easyeuicc-explained/assets.en/allow-notification.png" class="content-gallery-image"&gt;
 

 
 
 
 
 
 
 
 
 &lt;img src="https://blog.ous50.moe/images/easyeuicc-explained/assets.en/first-start-check.png" class="content-gallery-image"&gt;
 


&lt;/div&gt;
&lt;p&gt;揿 &lt;code&gt;Continue&lt;/code&gt; 按钮继续，你就会进入主介面：&lt;/p&gt;
&lt;p&gt;&lt;div class="content-gallery"&gt;
 
 
 
 
 
 
 
 
 
 &lt;img src="https://blog.ous50.moe/images/easyeuicc-explained/assets.en/main-page.png" class="content-gallery-image"&gt;
 


&lt;/div&gt;


&lt;style&gt;
 .light-quote { font-weight: 300; }
 .bold-quote { font-weight: 700; }
 .extrabold-quote { font-weight: 900}
&lt;/style&gt;


 &lt;blockquote class="gh-blockquote gh-note"&gt;
 &lt;span class="extrabold-quote"&gt;Note&lt;/span&gt;
 &lt;br&gt;

 如果你只想新增/管理你嘅 eSIM 设定档，直接跳到&lt;a class="link" href="#%e6%96%b0%e5%a2%9e-esim-%e8%ae%be%e5%ae%9a%e6%a1%a3" &gt;呢度&lt;/a&gt;。
 &lt;/blockquote&gt;

&lt;/p&gt;
&lt;h3 id="设定页面"&gt;&lt;a href="#%e8%ae%be%e5%ae%9a%e9%a1%b5%e9%9d%a2" class="header-anchor"&gt;&lt;/a&gt;设定页面
&lt;/h3&gt;&lt;p&gt;揿右上角嘅 &lt;code&gt;⋮&lt;/code&gt; 按钮可以睇设定：&lt;/p&gt;
&lt;div class="content-gallery"&gt;
 
 
 
 
 
 
 
 
 
 &lt;img src="https://blog.ous50.moe/images/easyeuicc-explained/assets.en/settings.png" class="content-gallery-image"&gt;
 


&lt;/div&gt;
&lt;h3 id="新增-esim-设定档"&gt;&lt;a href="#%e6%96%b0%e5%a2%9e-esim-%e8%ae%be%e5%ae%9a%e6%a1%a3" class="header-anchor"&gt;&lt;/a&gt;新增 eSIM 设定档
&lt;/h3&gt;&lt;p&gt;揿右下角嘅 &lt;code&gt;+&lt;/code&gt; 按钮，然后&lt;strong&gt;拣你想下载设定档去边个 eSIM 设备&lt;/strong&gt;：&lt;/p&gt;


&lt;style&gt;
 .light-quote { font-weight: 300; }
 .bold-quote { font-weight: 700; }
 .extrabold-quote { font-weight: 900}
&lt;/style&gt;


 &lt;blockquote class="gh-blockquote gh-note"&gt;
 &lt;span class="extrabold-quote"&gt;Note&lt;/span&gt;
 &lt;br&gt;

 你应该用 &lt;code&gt;eID&lt;/code&gt; 而唔系 &lt;code&gt;ICCID&lt;/code&gt; 嚟确认你嘅 eSIM。&lt;code&gt;eID&lt;/code&gt; 系你嘅 **eSIM 设备（插入手机嘅卡）**识别号码，而 &lt;code&gt;ICCID&lt;/code&gt; 系你嘅 eSIM 设定档识别号码。
 &lt;/blockquote&gt;


&lt;div class="content-gallery"&gt;
 
 
 
 
 
 
 
 
 
 &lt;img src="https://blog.ous50.moe/images/easyeuicc-explained/assets.en/download-profile-select-eSIM.png" class="content-gallery-image"&gt;
 

 
 
 
 
 
 
 
 
 &lt;img src="https://blog.ous50.moe/images/easyeuicc-explained/assets.en/download-profile-install-method.png" class="content-gallery-image"&gt;
 


&lt;/div&gt;
&lt;p&gt;拣你想用嘅方式（通常系用相机扫描二维码或者从相簿载入二维码）。同目标伺服器核对后，设定档下载就会开始：&lt;/p&gt;


&lt;style&gt;
 .light-quote { font-weight: 300; }
 .bold-quote { font-weight: 700; }
 .extrabold-quote { font-weight: 900}
&lt;/style&gt;


 &lt;blockquote class="gh-blockquote gh-warning"&gt;
 &lt;span class="extrabold-quote"&gt;Warning&lt;/span&gt;
 &lt;br&gt;

 下载设定档𠮶阵，请确保你&lt;strong&gt;有稳定可达嘅网络连接&lt;/strong&gt;。否则&lt;strong&gt;你可能会永久遗失个设定档&lt;/strong&gt;，因为设定档派发伺服器已经将你嘅设定档标记为已下载。
 &lt;/blockquote&gt;


&lt;div class="content-gallery"&gt;
 
 
 
 
 
 
 
 
 
 &lt;img src="https://blog.ous50.moe/images/easyeuicc-explained/assets.common/download-profile-progress.png" class="content-gallery-image"&gt;
 


&lt;/div&gt;
&lt;h4 id="如果你需要用原始数据下载设定档或者二维码用唔到"&gt;&lt;a href="#%e5%a6%82%e6%9e%9c%e4%bd%a0%e9%9c%80%e8%a6%81%e7%94%a8%e5%8e%9f%e5%a7%8b%e6%95%b0%e6%8d%ae%e4%b8%8b%e8%bd%bd%e8%ae%be%e5%ae%9a%e6%a1%a3%e6%88%96%e8%80%85%e4%ba%8c%e7%bb%b4%e7%a0%81%e7%94%a8%e5%94%94%e5%88%b0" class="header-anchor"&gt;&lt;/a&gt;如果你需要用原始数据下载设定档，或者二维码用唔到
&lt;/h4&gt;&lt;p&gt;就拣最后一个选项 &lt;code&gt;Enter manually&lt;/code&gt;。输入你嘅供应商畀你嘅对应字串：&lt;/p&gt;
&lt;div class="content-gallery"&gt;
 
 
 
 
 
 
 
 
 
 &lt;img src="https://blog.ous50.moe/images/easyeuicc-explained/assets.en/download-profile-manual.png" class="content-gallery-image"&gt;
 


&lt;/div&gt;
&lt;h3 id="设定档下载完成后"&gt;&lt;a href="#%e8%ae%be%e5%ae%9a%e6%a1%a3%e4%b8%8b%e8%bd%bd%e5%ae%8c%e6%88%90%e5%90%8e" class="header-anchor"&gt;&lt;/a&gt;设定档下载完成后
&lt;/h3&gt;&lt;p&gt;设定档下载完成后，你可以喺主页面查看、切换同修名个设定档：&lt;/p&gt;
&lt;div class="content-gallery"&gt;
 
 
 
 
 
 
 
 
 
 &lt;img src="https://blog.ous50.moe/images/easyeuicc-explained/assets.common/main-page-toggle-profile.png" class="content-gallery-image"&gt;
 

 
 
 
 
 
 
 
 
 &lt;img src="https://blog.ous50.moe/images/easyeuicc-explained/assets.common/main-page-config-profile-name.png" class="content-gallery-image"&gt;
 

 
 
 
 
 
 
 
 
 &lt;img src="https://blog.ous50.moe/images/easyeuicc-explained/assets.common/main-page-after-profile-name-changed.png" class="content-gallery-image"&gt;
 


&lt;/div&gt;


&lt;style&gt;
 .light-quote { font-weight: 300; }
 .bold-quote { font-weight: 700; }
 .extrabold-quote { font-weight: 900}
&lt;/style&gt;


 &lt;blockquote class="gh-blockquote gh-note"&gt;
 &lt;span class="extrabold-quote"&gt;Note&lt;/span&gt;
 &lt;br&gt;

 我每日都用紧 &lt;code&gt;esim.gg&lt;/code&gt;，几年嚟喺全球旅行时佢一直都非常可靠稳定。而家数据-only eSIM 冇折扣，但如果你结账时用 &lt;code&gt;ous50&lt;/code&gt; 买个新嘅爱沙尼亚号码，可以减 0.3 欧元。
 &lt;/blockquote&gt;


&lt;h2 id="故障排除"&gt;&lt;a href="#%e6%95%85%e9%9a%9c%e6%8e%92%e9%99%a4" class="header-anchor"&gt;&lt;/a&gt;故障排除
&lt;/h2&gt;&lt;h3 id="omapi-检测失败"&gt;&lt;a href="#omapi-%e6%a3%80%e6%b5%8b%e5%a4%b1%e8%b4%a5" class="header-anchor"&gt;&lt;/a&gt;OMAPI 检测失败
&lt;/h3&gt;&lt;p&gt;呢种情况下，你部手机或者系统唔支援透过 OMAPI 用 EasyEUICC。考虑喺取得 root 权限后用 OpenEUICC，或者换部新啲嘅设备。&lt;/p&gt;
&lt;h3 id="设定档下载失败"&gt;&lt;a href="#%e8%ae%be%e5%ae%9a%e6%a1%a3%e4%b8%8b%e8%bd%bd%e5%a4%b1%e8%b4%a5" class="header-anchor"&gt;&lt;/a&gt;设定档下载失败
&lt;/h3&gt;&lt;p&gt;检查错误代码，试吓重新扫描二维码，或者&lt;a class="link" href="#%e5%a6%82%e6%9e%9c%e4%bd%a0%e9%9c%80%e8%a6%81%e7%94%a8%e5%8e%9f%e5%a7%8b%e6%95%b0%e6%8d%ae%e4%b8%8b%e8%bd%bd%e8%ae%be%e5%ae%9a%e6%a1%a3%e6%88%96%e8%80%85%e4%ba%8c%e7%bb%b4%e7%a0%81%e7%94%a8%e5%94%94%e5%88%b0" &gt;手动下载设定档&lt;/a&gt;。&lt;/p&gt;


&lt;style&gt;
 .light-quote { font-weight: 300; }
 .bold-quote { font-weight: 700; }
 .extrabold-quote { font-weight: 900}
&lt;/style&gt;


 &lt;blockquote class="gh-blockquote gh-warning"&gt;
 &lt;span class="extrabold-quote"&gt;Warning&lt;/span&gt;
 &lt;br&gt;

 下载设定档𠮶阵，请确保你&lt;strong&gt;有稳定可达嘅网络连接&lt;/strong&gt;。否则&lt;strong&gt;你可能会永久遗失个设定档&lt;/strong&gt;，因为设定档派发伺服器已经将你嘅设定档标记为已下载。
 &lt;/blockquote&gt;


&lt;p&gt;如果你已经用晒下载次数，请联络你嘅 eSIM 设定档供应商寻求进一步协助。&lt;/p&gt;
&lt;h3 id="揾唔到-esim-卡设备"&gt;&lt;a href="#%e6%8f%be%e5%94%94%e5%88%b0-esim-%e5%8d%a1%e8%ae%be%e5%a4%87" class="header-anchor"&gt;&lt;/a&gt;揾唔到 eSIM 卡/设备
&lt;/h3&gt;&lt;p&gt;你嘅 eSIM 卡/设备可能同 EasyEUICC 唔兼容。揿&lt;a class="link" href="#easyeuicc---omapi" &gt;呢度&lt;/a&gt;睇更多资讯。&lt;/p&gt;
&lt;h2 id="常见问题"&gt;&lt;a href="#%e5%b8%b8%e8%a7%81%e9%97%ae%e9%a2%98" class="header-anchor"&gt;&lt;/a&gt;常见问题
&lt;/h2&gt;&lt;h3 id="用呢个-app-会唔会被电讯商封号"&gt;&lt;a href="#%e7%94%a8%e5%91%a2%e4%b8%aa-app-%e4%bc%9a%e5%94%94%e4%bc%9a%e8%a2%ab%e7%94%b5%e8%ae%af%e5%95%86%e5%b0%81%e5%8f%b7" class="header-anchor"&gt;&lt;/a&gt;用呢个 app 会唔会被电讯商封号？
&lt;/h3&gt;&lt;p&gt;一般嚟讲唔会。但电讯商有自己嘅黑名单，某啲 eSIM 卡制造商/型号可能会被拉黑。
推荐你购买&lt;a class="link" href="#%e5%a6%82%e6%9e%9c%e4%bd%a0%e6%9c%89%e5%85%b4%e8%b6%a3%e8%b4%ad%e4%b9%b0%e5%85%bc%e5%ae%b9%e5%98%85%e5%8f%af%e7%a7%bb%e5%8a%a8-esim-%e5%8d%a1" &gt;上文列出&lt;/a&gt;嘅优质 eSIM 卡，并遵循你嘅供应商嘅指示。&lt;/p&gt;
&lt;h3 id="我可以用呢啲卡喺其他手机上面用吗"&gt;&lt;a href="#%e6%88%91%e5%8f%af%e4%bb%a5%e7%94%a8%e5%91%a2%e5%95%b2%e5%8d%a1%e5%96%ba%e5%85%b6%e4%bb%96%e6%89%8b%e6%9c%ba%e4%b8%8a%e9%9d%a2%e7%94%a8%e5%90%97" class="header-anchor"&gt;&lt;/a&gt;我可以用呢啲卡喺其他手机上面用吗？
&lt;/h3&gt;&lt;p&gt;可以，喺你正确设定好 eSIM 卡/设备，并切换、配置好想要嘅设定档之后，&lt;strong&gt;你可以好似用普通实体 SIM 卡咁用呢啲卡&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;你可以喺任何支援 OMAPI 嘅 Android 手机上面用 EasyEUICC app 嚟管理&lt;a class="link" href="#%e5%a6%82%e6%9e%9c%e4%bd%a0%e6%9c%89%e5%85%b4%e8%b6%a3%e8%b4%ad%e4%b9%b0%e5%85%bc%e5%ae%b9%e5%98%85%e5%8f%af%e7%a7%bb%e5%8a%a8-esim-%e5%8d%a1" &gt;兼容卡&lt;/a&gt;上面嘅设定档。&lt;/p&gt;
&lt;p&gt;对于 eSTK 卡，你甚至可以喺 iPhone 上面透过 STK 应用嚟管理设定档。&lt;/p&gt;
&lt;h2 id="脚注"&gt;&lt;a href="#%e8%84%9a%e6%b3%a8" class="header-anchor"&gt;&lt;/a&gt;脚注
&lt;/h2&gt;&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;亦称为「可移动 eSIM」&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;电讯商合作伙伴 API 尚未实现&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>喺 WSL2 上面编译 LineageOS</title><link>https://blog.ous50.moe/yue-cn/p/%E5%96%BA-wsl2-%E4%B8%8A%E9%9D%A2%E7%BC%96%E8%AF%91-lineageos/</link><pubDate>Thu, 25 Jan 2024 03:46:22 +0000</pubDate><guid>https://blog.ous50.moe/yue-cn/p/%E5%96%BA-wsl2-%E4%B8%8A%E9%9D%A2%E7%BC%96%E8%AF%91-lineageos/</guid><description>&lt;h1 id="安装-wsl-linux-同编译需要嘅嘢"&gt;&lt;a href="#%e5%ae%89%e8%a3%85-wsl-linux-%e5%90%8c%e7%bc%96%e8%af%91%e9%9c%80%e8%a6%81%e5%98%85%e5%98%a2" class="header-anchor"&gt;&lt;/a&gt;安装 WSL Linux 同编译需要嘅嘢
&lt;/h1&gt;&lt;p&gt;预设会安装 Ubuntu：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# 唔显示进度条，下载快啲：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$ProgressPreference&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;SilentlyContinue&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# 用头先搵到嘅 URL，下载 appx 安装包：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;Invoke-WebRequest&lt;/span&gt; &lt;span class="n"&gt;-Uri&lt;/span&gt; &lt;span class="n"&gt;https&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="p"&gt;//&lt;/span&gt;&lt;span class="n"&gt;aka&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ms&lt;/span&gt;&lt;span class="p"&gt;/&lt;/span&gt;&lt;span class="n"&gt;wslubuntu&lt;/span&gt; &lt;span class="n"&gt;-OutFile&lt;/span&gt; &lt;span class="n"&gt;Linux&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;appx&lt;/span&gt; &lt;span class="n"&gt;-UseBasicParsing&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# 整返个备份同解压缩：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;Copy-Item&lt;/span&gt; &lt;span class="p"&gt;.\&lt;/span&gt;&lt;span class="n"&gt;Linux&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;appx&lt;/span&gt; &lt;span class="p"&gt;.\&lt;/span&gt;&lt;span class="n"&gt;Linux&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;zip&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;Expand-Archive&lt;/span&gt; &lt;span class="p"&gt;.\&lt;/span&gt;&lt;span class="n"&gt;Linux&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;zip&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# 搵安装程式：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;Get-Childitem&lt;/span&gt; &lt;span class="n"&gt;-Filter&lt;/span&gt; &lt;span class="p"&gt;*.&lt;/span&gt;&lt;span class="n"&gt;exe&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 帮 Ubuntu 装编译需要嘅嘢&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt install bc bison build-essential ccache curl flex g++-multilib gcc-multilib git gnupg gperf imagemagick lib32ncurses5-dev lib32readline-dev lib32z1-dev libelf-dev liblz4-tool libncurses5 libncurses5-dev libsdl1.2-dev libssl-dev libxml2 libxml2-utils lzop pngcrush rsync schedtool squashfs-tools xsltproc zip zlib1g-dev git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="如果系-debian-bookworm-系统"&gt;&lt;a href="#%e5%a6%82%e6%9e%9c%e7%b3%bb-debian-bookworm-%e7%b3%bb%e7%bb%9f" class="header-anchor"&gt;&lt;/a&gt;如果系 Debian Bookworm 系统：
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt install bc bison build-essential ccache curl flex g++-multilib gcc-multilib git git-lfs gnupg gperf imagemagick lib32readline-dev lib32z1-dev libelf-dev liblz4-tool libsdl1.2-dev libssl-dev libxml2 libxml2-utils lzop pngcrush rsync schedtool squashfs-tools xsltproc zip zlib1g-dev libncurses5 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id="安装编译工具包"&gt;&lt;a href="#%e5%ae%89%e8%a3%85%e7%bc%96%e8%af%91%e5%b7%a5%e5%85%b7%e5%8c%85" class="header-anchor"&gt;&lt;/a&gt;安装编译工具包：
&lt;/h1&gt;&lt;h2 id="repo"&gt;&lt;a href="#repo" class="header-anchor"&gt;&lt;/a&gt;Repo
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl https://storage.googleapis.com/git-repo-downloads/repo &lt;span class="p"&gt;|&lt;/span&gt;sudo tee /usr/bin/repo
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo chmod a+x /usr/bin/repo
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="平台工具"&gt;&lt;a href="#%e5%b9%b3%e5%8f%b0%e5%b7%a5%e5%85%b7" class="header-anchor"&gt;&lt;/a&gt;平台工具
&lt;/h2&gt;&lt;p&gt;如果你之前未装过 &lt;code&gt;adb&lt;/code&gt; 同 &lt;code&gt;fastboot&lt;/code&gt;，可以&lt;a class="link" href="https://dl.google.com/android/repository/platform-tools-latest-linux.zip" target="_blank" rel="noopener"
 &gt;喺 Google 下载原版&lt;/a&gt;然后解压缩：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;wget https://dl.google.com/android/repository/platform-tools-latest-linux.zip
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;wget https://dl.google.cn/android/repository/platform-tools-latest-linux.zip &lt;span class="c1"&gt;# 俾中国大陆嘅读者用&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;unzip platform-tools-latest-linux.zip -d ~/.local/bin
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;而家你要将 &lt;code&gt;adb&lt;/code&gt; 同 &lt;code&gt;fastboot&lt;/code&gt; 加到你嘅 PATH 环境变量。打开 &lt;code&gt;~/.profile&lt;/code&gt; 然后加下面啲嘢：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-txt" data-lang="txt"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# 将 Android SDK 平台工具加到 PATH
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;if [ -d &amp;#34;$HOME/.local/bin/platform-tools&amp;#34; ] ; then
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; PATH=&amp;#34;$HOME/.local/bin/platform-tools:$PATH&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;fi
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;行 &lt;code&gt;source ~/.profile&lt;/code&gt; 嚟更新你嘅环境，或者直接重开个 shell。&lt;/p&gt;
&lt;h2 id="python"&gt;&lt;a href="#python" class="header-anchor"&gt;&lt;/a&gt;Python
&lt;/h2&gt;&lt;p&gt;LineageOS 18+ 打后，编译需要 &lt;code&gt;python3&lt;/code&gt;。&lt;/p&gt;
&lt;h1 id="设定-git"&gt;&lt;a href="#%e8%ae%be%e5%ae%9a-git" class="header-anchor"&gt;&lt;/a&gt;设定 Git
&lt;/h1&gt;&lt;p&gt;你要设定你嘅名同 email 嚟同步 Android 源码。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git config --global user.email &lt;span class="s2"&gt;&amp;#34;you@example.com&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git config --global user.name &lt;span class="s2"&gt;&amp;#34;Your Name&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;同步源码嗰阵可能要下载啲大文件，所以要装 &lt;code&gt;git-lfs&lt;/code&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git lfs install
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id="整个新资料夹嚟拉源码"&gt;&lt;a href="#%e6%95%b4%e4%b8%aa%e6%96%b0%e8%b5%84%e6%96%99%e5%a4%b9%e5%9a%9f%e6%8b%89%e6%ba%90%e7%a0%81" class="header-anchor"&gt;&lt;/a&gt;整个新资料夹嚟拉源码
&lt;/h1&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkdir lineage-21.0 &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd&lt;/span&gt; lineage-21.0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id="初始化-repo"&gt;&lt;a href="#%e5%88%9d%e5%a7%8b%e5%8c%96-repo" class="header-anchor"&gt;&lt;/a&gt;初始化 repo
&lt;/h1&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;repo init -u https://github.com/LineageOS/android.git -b lineage-21.0 &lt;span class="c1"&gt;# 同步成个 repo，包晒所有 commit 记录，会用好多位。&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;repo init -u https://github.com/LineageOS/android.git -b lineage-21.0 --depth&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="c1"&gt;# 净系拉最新嘅 commit，冇 commit 记录，用位少好多。&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id="开始同步-repo"&gt;&lt;a href="#%e5%bc%80%e5%a7%8b%e5%90%8c%e6%ad%a5-repo" class="header-anchor"&gt;&lt;/a&gt;开始同步 repo
&lt;/h1&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;repo sync -c -j&lt;span class="k"&gt;$(&lt;/span&gt;nproc --all&lt;span class="k"&gt;)&lt;/span&gt; --force-sync --no-clone-bundle --no-tags
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;跟住就跟 &lt;a class="link" href="https://wiki.lineageos.org/devices/rtwo/build/variant2/#download-the-source-code" target="_blank" rel="noopener"
 &gt;LineageOS 编译指南&lt;/a&gt;继续做……&lt;/p&gt;</description></item></channel></rss>