Created
April 12, 2014 03:36
-
-
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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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