Skip to content

Instantly share code, notes, and snippets.

@raidzero
Created April 12, 2014 03:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save raidzero/10517515 to your computer and use it in GitHub Desktop.
Save raidzero/10517515 to your computer and use it in GitHub Desktop.
Xposed module to stop playing sounds and music in the game Brave Frontier
package com.raidzero.xposed.bfquieter;
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodReplacement;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam;
import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;
/**
* Created by raidzero on 4/10/14 8:47 PM
*/
public class BFQuieter implements IXposedHookLoadPackage {
public void handleLoadPackage(final LoadPackageParam lpparam) throws Throwable {
if (!lpparam.packageName.equals("sg.gumi.bravefrontier")) {
// only do stuff on brave frontier
return;
}
XposedBridge.log("Loaded app: " + lpparam.packageName);
// this one is for background music
try {
XposedBridge.log("Attempt hooking background music");
// hook method: void playBackgroundMusic(String s, boolean b)
findAndHookMethod("org.cocos2dx.lib.Cocos2dxMusic", lpparam.classLoader, "playBackgroundMusic", String.class, boolean.class,
XC_MethodReplacement.DO_NOTHING);
} catch (Throwable e) {
XposedBridge.log(e);
}
// this is for individual sound playback
try {
XposedBridge.log("Attempt hooking sound effect");
// hook method: int doPlayEffect(String s, int i, boolean b)
findAndHookMethod("org.cocos2dx.lib.Cocos2dxSound", lpparam.classLoader, "doPlayEffect", String.class, int.class, boolean.class,
new XC_MethodReplacement() {
@Override
protected Object replaceHookedMethod(MethodHookParam param) throws Throwable {
// SoundPool.play() returns nonzero if successful, 0 if fail, so just appease it
return 1;
}
}
);
} catch (Throwable e) {
XposedBridge.log(e);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment