Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if (packageParam.packageName.equalsIgnoreCase("com.spotify.music")) {
- XposedBridge.log("In spotify!");
- //find LoadedFlags class
- Class<?> loadedFlagsCls = XposedHelpers.findClass("com.spotify.mobile.android.service.feature.LoadedFlags", packageParam.classLoader);
- //iterate through all methods to find our flag class
- Class<?> flagCls = null;
- for (Method m : loadedFlagsCls.getMethods()) {
- if (m.getName().equalsIgnoreCase("a") && m.getParameterTypes().length == 1) {
- flagCls = m.getParameterTypes()[0];//actually it's just a lucky guess
- }
- }
- //failsafe check and nice info
- if (flagCls == null) {
- XposedBridge.log("Flag class not found!");
- return;
- }
- //hook this method so we can modify flag state
- XposedHelpers.findAndHookMethod(loadedFlagsCls, "a", flagCls, new XC_MethodHook() {
- @Override
- protected void afterHookedMethod(MethodHookParam param) throws Throwable {
- //get flag name
- String flag = (String) XposedHelpers.getObjectField(param.args[0], "b");
- //disable chosen flags
- if (flag.equalsIgnoreCase("ads") || flag.equalsIgnoreCase("on-demand") || flag.equalsIgnoreCase("shuffle_restricted")) {
- param.setResult(false);
- }
- }
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement