切换卡
卡0
TelephonyManager.write_int(“/sys/class/leds/SIM_EN/brightness”, 1);
TelephonyManager.write_int(“/sys/class/leds/SIM_SEL/brightness”, 0);
TelephonyManager.write_int(“/sys/class/leds/ESIM_SEL/brightness”, 0);
TelephonyManager.write_int(“/sys/class/leds/ESIM2_SEL/brightness”, 0);
SimDetector.this.SimWait(500);
TelephonyManager.write_int(“/sys/class/leds/SIM_SEL/brightness”, 1); 拉高外置卡
SimDetector.this.SimWait(300);
TelephonyManager.write_int(“/sys/class/leds/SIM_EN/brightness”, 0);
卡1
TelephonyManager.write_int(“/sys/class/leds/SIM_EN/brightness”, 1);
TelephonyManager.write_int(“/sys/class/leds/SIM_SEL/brightness”, 0);
TelephonyManager.write_int(“/sys/class/leds/ESIM_SEL/brightness”, 0);
TelephonyManager.write_int(“/sys/class/leds/ESIM2_SEL/brightness”, 0);
SimDetector.this.SimWait(500);
TelephonyManager.write_int(“/sys/class/leds/ESIM_SEL/brightness”, 1);
SimDetector.this.SimWait(300);
TelephonyManager.write_int(“/sys/class/leds/SIM_EN/brightness”, 0);
卡2
TelephonyManager.write_int(“/sys/class/leds/SIM_EN/brightness”, 1);
TelephonyManager.write_int(“/sys/class/leds/SIM_SEL/brightness”, 0);
TelephonyManager.write_int(“/sys/class/leds/ESIM_SEL/brightness”, 0);
TelephonyManager.write_int(“/sys/class/leds/ESIM2_SEL/brightness”, 0);
SimDetector.this.SimWait(500);
TelephonyManager.write_int(“/sys/class/leds/ESIM2_SEL/brightness”, 1); 拉高 ESIM2
SimDetector.this.SimWait(300);
TelephonyManager.write_int(“/sys/class/leds/SIM_EN/brightness”, 0);
系统属性
[persist.ufi.card.plug]: [yes] [persist.ufi.ft.haveeth]: [0] [persist.ufi.ft.mqtt_th]: [0] [persist.ufi.ft.only_sn]: [1] [persist.ufi.ft.simsw]: [1] [persist.ufi.ft.simsw_pw]: [0] [persist.ufi.ft.simswitchpword]: [zx] [persist.ufi.ft.weblogo]: [NORMAL] [persist.ufi.ft.withmtp]: [0] [persist.ufi.ft.write_imei]: [1] [persist.ufi.imei.ssid]: [] [persist.ufi.nosignal.reboot]: [no] [persist.ufi.ping.router]: [] [persist.ufi.qhyl.light]: [] [persist.ufi.qhyl.switchsim]: [] [persist.ufi.signal.check]: [yes] [persist.ufi.sim.pooling]: [no] [persist.ufi.sim.prior]: [DE] [persist.ufi.sn.auth.service]: [1] [persist.ufi.wifi.light]: [yes]
GPIO定义
gpio-leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <0xec>;
SIM_SEL {
gpios = <0x4f 0x02 0x00>;
label = "SIM_SEL";
linux,default-trigger = "none";
default-state = "off";
retain-state-suspended;
};
sim_en {
gpios = <0x4f 0x01 0x00>;
label = "SIM_EN";
linux,default-trigger = "none";
default-state = "off";
retain-state-suspended;
};
ESIM_SEL {
gpios = <0x4f 0x00 0x00>;
label = "ESIM_SEL";
linux,default-trigger = "none";
default-state = "on";
retain-state-suspended;
};
ESIM2_SEL {
gpios = <0x4f 0x03 0x00>;
label = "ESIM2_SEL";
linux,default-trigger = "none";
default-state = "off";
retain-state-suspended;
};
xposed
public class Workaround implements IXposedHookLoadPackage {
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) {
if(!lpparam.packageName.equals("com.android.systemui")) {
return;
}
try {
XposedHelpers.findAndHookMethod("com.android.systemui.ElinkAutoTestService$SnImeiCheckThread", lpparam.classLoader, "enter_SnImeiCheckFailed", new Object[]{XC_MethodReplacement.DO_NOTHING});
}
catch(Exception e) {
XposedBridge.log(e);
}
}
}