问题描述
在这里我尝试将键值 setResult 放在“android.telephony.TelephonyManager”中
XposeHook.Class
XposedHelpers.findAndHookMethod("android.telephony.TelephonyManager",lpparam.classLoader,"getdeviceid",TYPE,new XC_MethodHook() {
public void afterHookedMethod(MethodHookParam param) throws Throwable{
XSharedPreferences pref = new XSharedPreferences("com.yuvi.pirate","user_prefs");
param.setResult(pref.getString("imei_val1"," "));
}
MainActivity.class
final SharedPreferences sharedpreferences = getSharedPreferences("user_prefs",0);
btn_imei.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
SharedPreferences.Editor editor = sharedpreferences.edit();
String trim = edt_imei.getText().toString().trim();
editor.putString("imei_val1",trim);
editor.apply();
}
但是在将随机 imei 放入 editText 并单击按钮 btn_imei 后,它会在 Sharepreference 中创建密钥“imei_val1”和值“我在 editText 中写入的”,但 XSharePreference 无法获取我从 Sharepreference 中放入的随机密钥值
解决方法
它不采用 Sharepreference 因为我们无法在 android SDK N (24) 之后读取 user_pref.xml 所以我们必须让 user_prefs.xml 世界可读!所以让 sharepreference worldReadable 并解决
你必须做的让世界可读的首选项可读只需进入 targetSdk 23 或更少,他们使用 Context.Mode_Worldreadable 现在 Xsharedpreference 读取你的 prfs 文件