我只用我的Mi6运行MIUI v9,Android build 8.0.0测试了它 . It requires root.
在研究了SO solution linked above in my question后,我注意到代码正在检索特定电话功能的索引号,然后它将用于运行命令来关闭移动数据 . 使用这个,我找到了一种实际关闭SIM卡的方法 .
谷歌生成的this page from Haotian Deng显示了服务调用函数的这些索引列在ITelephony.aidl文件中 . 这些是Java代码提取的内容 . 这些都不适用于Mi6,但链接到解释服务调用命令的this page:
# service
Usage: service [-h|-?]
service list
service check SERVICE
service call SERVICE CODE [i32 INT | s16 STR] ...
Options:
i32: Write the integer INT into the send parcel.
s16: Write the UTF-16 string STR into the send parcel.
有了这个,我发现索引列在设备'framework.jar中的com.android.internal.telephony.ITelephony中 .
因此,要从设备中获取所需的索引,您需要从命令提示符运行以下命令:
从here下载jadx
ADB拉设备framework.jar(adb pull /system/framework/framework.jar)
用7-Zip打开.jar文件并解压缩* .dex文件 .
用jadx-gui打开