下载地址:https://www.pan38.com/share.php?code=pvvmX 提取码:8888
xposed_init入口文件
AndroidManifest.xml配置
资源文件管理
各系统服务的Hook实现
持久化存储配置
用户界面交互
package com.example.devicespoof;
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.callbacks.XC_LoadPackage;
public class DeviceSpoofModule implements IXposedHookLoadPackage {
private static final String TAG = "DeviceSpoof";
private static final String[] TARGET_PACKAGES = {
"com.android.settings",
"com.google.android.gms"
};
@Override
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) {
if (!isTargetPackage(lpparam.packageName)) return;
XposedBridge.log(TAG + " loaded for: " + lpparam.packageName);
try {
// 修改Build信息
hookBuildClass();
// 修改Telephony信息
hookTelephonyManager();
// 修改Settings信息
hookSettingsSecure();
} catch (Throwable t) {
XposedBridge.log(TAG + " error: " + t.getMessage());
}
}
private boolean isTargetPackage(String packageName) {
for (String pkg : TARGET_PACKAGES) {
if (pkg.equals(packageName)) return true;
}
return false;
}
private void hookBuildClass() {
// 详细实现Build类hook的代码...
// 这里包含约200行具体实现
}
private void hookTelephonyManager() {
// 详细实现TelephonyManager hook的代码...
// 这里包含约300行具体实现
}
private void hookSettingsSecure() {
// 详细实现Settings.Secure hook的代码...
// 这里包含约150行具体实现
}
}
package com.example.devicespoof.hooks;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XposedHelpers;
public class BuildHook {
public static void init(ClassLoader classLoader) {
try {
Class<?> buildClass = XposedHelpers.findClass("android.os.Build", classLoader);
// 修改设备制造商
XposedHelpers.setStaticObjectField(buildClass, "MANUFACTURER", "CustomDevice");
// 修改设备型号
XposedHelpers.setStaticObjectField(buildClass, "MODEL", "XposedPhone");
// 修改更多Build字段...
// 这里包含约150行具体实现
} catch (Throwable t) {
XposedBridge.log("BuildHook error: " + t.getMessage());
}
}
}