android - 使用 USSD 代码启用 SIM/RUIM 锁定 - Android/Airtel India

标签 android ussd sim-card

我想首先说明,我要实现的目标是仅在我们分发的那些设备上使用,我们对这些设备和在这些设备上运行的应用程序拥有完全所有权。

我的要求是在 Android 手机的“设置”->“安全”->“SIM 卡锁定设置”下启用“锁定 SIM 卡”,并设置/更改 SIM 卡锁定/解锁密码。所有电话都已 Root 并位于偏远地区。我没有这些设备的物理访问权限,但我可以远程访问 ADB shell。

我遇到了一个 USSD 代码来重置 sim pin。例如。 **04*1234*2345*2345# 可用于将密码从 1234 更改为 2345。但是,如果在 sim 锁定设置中禁用了“锁定 SIM 卡”,则上面的 USSD 显示“密码更改不成功,启用 SIM/RUIM锁”。

我在尝试为调用服务的指针手动启用“锁定 SIM 卡”复选框时监视 logcat 输出,发现任务是由 com.android.internal.telephony.IccCard.setIccLockEnabled 方法处理的不通过 SDK 公开。

我被困在那里了。有什么方法(USSD/以编程方式使用反射/adb shell 命令)我可以启用“锁定 SIM 卡”设置(自动接受它显示的弹出窗口/如果可能禁用弹出窗口)然后设置/重置 pin。

提前致谢。

最佳答案

看到已经3个月没有答案了,我可以提个建议。启用和管理 PIN 是 SIM 的一项功能。您可以编写应用程序代码将“RAW”数据直接发送到 SIM 卡。该数据将采用 ISO-7816-4 文档中定义的 APDU 的形式。查看 VERIFY、CHANGE REF DATA、ENABLE/DISABLE VERIFY 命令。或者引用 GSM11.11 VERIFY/CHANGE/ENABLE/DISABLE CHV 命令。

关于android - 使用 USSD 代码启用 SIM/RUIM 锁定 - Android/Airtel India,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37845421/

相关文章:

javascript - FCM 消息负载错误,数据对象内的嵌套对象错误

mobile-phones - 在哪里可以找到 USSD 命令规范?

java - 如何读取/拦截来自 Android 手机的 USSD 消息

android - AsyncTask 的 onPostExecute() 中的上下文是什么?

java - 如何使用 Retrofit 处理 JSON 响应

ssl - 如何在作为客户端的 USIM sim 卡和服务器之间以 TLS-PSK 模式建立 TLS 连接?

android - 如何在 Android 应用程序中将 APDU 发送到 SIM 卡?

android - 识别 Android 平板电脑是否有 sim 卡插槽

java - 如何等待 Retrofit 异步 Web 服务调用? (调用.入队)

java - Wildfly 或 JBoss EAP 7 上的 Restcomm USSD 网关