[MOD][XPOSED] MotoMagnetOff - Disable magnet sensor

Search This thread

dubidu

Senior Member
Apr 19, 2006
210
168
UK
Did you install the Xposed framework first?
If so, it should appear in the list of modules.
 

neol23

Senior Member
May 15, 2011
1,111
271
Sofia
Does not work on note 2014 edition as well :(. I want so badly to disable screen on/off when I open/close my book cover... Any other suggestions?
 

blade_

Senior Member
Jan 7, 2012
861
72
Salonica
What do you get in the xposed log?

Code:
-----------------
Feb 11, 2014 2:23:25 PM UTC
Loading Xposed v42 (for Zygote)...
-----------------
Feb 11, 2014 2:25:33 PM UTC
Loading Xposed v42 (for Zygote)...
Loading modules from /data/app/com.ceco.gm2.gravitybox-2.apk
  Loading class com.ceco.gm2.gravitybox.GravityBox
GB:Hardware: mt6589
GB:Product: 09_v89_jbla828_hd
GB:Device manufacturer: M派皇族
GB:Device brand: M派皇族
GB:Device model: N9000
GB:Device type: phone
GB:Is MTK device: true
GB:Is Xperia device: false
GB:Has Lenovo custom UI: false
GB:Has telephony support: true
GB:Has Gemini support: true
GB:Android SDK: 17
GB:Android Release: 4.3
GB:ROM: N9000_hd_20131119
GB:PatchMasterKey: Patching MasterKey vulnerabilities
GB:NfcTile: Error getting state of NfcAdapter: java.lang.UnsupportedOperationException
de.robv.android.xposed.XposedHelpers$ClassNotFoundError: java.lang.ClassNotFoundException: com.android.launcher3.DynamicGrid
	at de.robv.android.xposed.XposedHelpers.findClass(XposedHelpers.java:52)
	at com.ceco.gm2.gravitybox.ModLauncher.init(ModLauncher.java:61)
	at com.ceco.gm2.gravitybox.GravityBox.handleLoadPackage(GravityBox.java:259)
	at de.robv.android.xposed.IXposedHookLoadPackage$Wrapper.handleLoadPackage(IXposedHookLoadPackage.java:20)
	at de.robv.android.xposed.callbacks.XC_LoadPackage.call(XC_LoadPackage.java:34)
	at de.robv.android.xposed.callbacks.XCallback.callAll(XCallback.java:70)
	at de.robv.android.xposed.XposedBridge$2.beforeHookedMethod(XposedBridge.java:202)
	at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:527)
	at android.app.ActivityThread.handleBindApplication(Native Method)
	at android.app.ActivityThread.access$1300(ActivityThread.java:156)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1400)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loop(Looper.java:153)
	at android.app.ActivityThread.main(ActivityThread.java:5297)
	at java.lang.reflect.Method.invokeNative(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:511)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
	at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:126)
	at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: com.android.launcher3.DynamicGrid
	at java.lang.Class.classForName(Native Method)
	at java.lang.Class.forName(Class.java:217)
	at external.org.apache.commons.lang3.ClassUtils.getClass(ClassUtils.java:823)
	at de.robv.android.xposed.XposedHelpers.findClass(XposedHelpers.java:50)
	... 19 more
Caused by: java.lang.NoClassDefFoundError: com/android/launcher3/DynamicGrid
	... 23 more
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.android.launcher3.DynamicGrid" on path: DexPathList[dexElements=[zip file "/system/app/QuickSearchBox.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
	at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
	... 23 more
de.robv.android.xposed.XposedHelpers$ClassNotFoundError: java.lang.ClassNotFoundException: com.android.launcher3.DynamicGrid
	at de.robv.android.xposed.XposedHelpers.findClass(XposedHelpers.java:52)
	at com.ceco.gm2.gravitybox.ModLauncher.init(ModLauncher.java:61)
	at com.ceco.gm2.gravitybox.GravityBox.handleLoadPackage(GravityBox.java:259)
	at de.robv.android.xposed.IXposedHookLoadPackage$Wrapper.handleLoadPackage(IXposedHookLoadPackage.java:20)
	at de.robv.android.xposed.callbacks.XC_LoadPackage.call(XC_LoadPackage.java:34)
	at de.robv.android.xposed.callbacks.XCallback.callAll(XCallback.java:70)
	at de.robv.android.xposed.XposedBridge$2.beforeHookedMethod(XposedBridge.java:202)
	at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:527)
	at android.app.ActivityThread.handleBindApplication(Native Method)
	at android.app.ActivityThread.access$1300(ActivityThread.java:156)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1400)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loop(Looper.java:153)
	at android.app.ActivityThread.main(ActivityThread.java:5297)
	at java.lang.reflect.Method.invokeNative(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:511)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
	at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:126)
	at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: com.android.launcher3.DynamicGrid
	at java.lang.Class.classForName(Native Method)
	at java.lang.Class.forName(Class.java:217)
	at external.org.apache.commons.lang3.ClassUtils.getClass(ClassUtils.java:823)
	at de.robv.android.xposed.XposedHelpers.findClass(XposedHelpers.java:50)
	... 19 more
Caused by: java.lang.NoClassDefFoundError: com/android/launcher3/DynamicGrid
	... 23 more
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.android.launcher3.DynamicGrid" on path: DexPathList[dexElements=[zip file "/system/app/QuickSearchBox.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
	at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
	... 23 more
-----------------
Feb 11, 2014 3:24:57 PM UTC
Loading Xposed v42 (for Zygote)...
Loading modules from /data/app/com.ceco.gm2.gravitybox-2.apk
  Loading class com.ceco.gm2.gravitybox.GravityBox
GB:Hardware: mt6589
GB:Product: 09_v89_jbla828_hd
GB:Device manufacturer: M派皇族
GB:Device brand: M派皇族
GB:Device model: N9000
GB:Device type: phone
GB:Is MTK device: true
GB:Is Xperia device: false
GB:Has Lenovo custom UI: false
GB:Has telephony support: true
GB:Has Gemini support: true
GB:Android SDK: 17
GB:Android Release: 4.3
GB:ROM: N9000_hd_20131119
GB:PatchMasterKey: Patching MasterKey vulnerabilities
Loading modules from /data/app/com.dubi.xposed.magnetoff-2.apk
  Loading class com.dubi.xposed.magnetoff.MagnetOff
GB:NfcTile: Error getting state of NfcAdapter: java.lang.UnsupportedOperationException
de.robv.android.xposed.XposedHelpers$ClassNotFoundError: java.lang.ClassNotFoundException: com.android.launcher3.DynamicGrid
	at de.robv.android.xposed.XposedHelpers.findClass(XposedHelpers.java:52)
	at com.ceco.gm2.gravitybox.ModLauncher.init(ModLauncher.java:61)
	at com.ceco.gm2.gravitybox.GravityBox.handleLoadPackage(GravityBox.java:259)
	at de.robv.android.xposed.IXposedHookLoadPackage$Wrapper.handleLoadPackage(IXposedHookLoadPackage.java:20)
	at de.robv.android.xposed.callbacks.XC_LoadPackage.call(XC_LoadPackage.java:34)
	at de.robv.android.xposed.callbacks.XCallback.callAll(XCallback.java:70)
	at de.robv.android.xposed.XposedBridge$2.beforeHookedMethod(XposedBridge.java:202)
	at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:527)
	at android.app.ActivityThread.handleBindApplication(Native Method)
	at android.app.ActivityThread.access$1300(ActivityThread.java:156)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1400)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loop(Looper.java:153)
	at android.app.ActivityThread.main(ActivityThread.java:5297)
	at java.lang.reflect.Method.invokeNative(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:511)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
	at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:126)
	at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: com.android.launcher3.DynamicGrid
	at java.lang.Class.classForName(Native Method)
	at java.lang.Class.forName(Class.java:217)
	at external.org.apache.commons.lang3.ClassUtils.getClass(ClassUtils.java:823)
	at de.robv.android.xposed.XposedHelpers.findClass(XposedHelpers.java:50)
	... 19 more
Caused by: java.lang.NoClassDefFoundError: com/android/launcher3/DynamicGrid
	... 23 more
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.android.launcher3.DynamicGrid" on path: DexPathList[dexElements=[zip file "/system/app/QuickSearchBox.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
	at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
	... 23 more
de.robv.android.xposed.XposedHelpers$ClassNotFoundError: java.lang.ClassNotFoundException: com.android.launcher3.DynamicGrid
	at de.robv.android.xposed.XposedHelpers.findClass(XposedHelpers.java:52)
	at com.ceco.gm2.gravitybox.ModLauncher.init(ModLauncher.java:61)
	at com.ceco.gm2.gravitybox.GravityBox.handleLoadPackage(GravityBox.java:259)
	at de.robv.android.xposed.IXposedHookLoadPackage$Wrapper.handleLoadPackage(IXposedHookLoadPackage.java:20)
	at de.robv.android.xposed.callbacks.XC_LoadPackage.call(XC_LoadPackage.java:34)
	at de.robv.android.xposed.callbacks.XCallback.callAll(XCallback.java:70)
	at de.robv.android.xposed.XposedBridge$2.beforeHookedMethod(XposedBridge.java:202)
	at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:527)
	at android.app.ActivityThread.handleBindApplication(Native Method)
	at android.app.ActivityThread.access$1300(ActivityThread.java:156)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1400)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loop(Looper.java:153)
	at android.app.ActivityThread.main(ActivityThread.java:5297)
	at java.lang.reflect.Method.invokeNative(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:511)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
	at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:126)
	at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: com.android.launcher3.DynamicGrid
	at java.lang.Class.classForName(Native Method)
	at java.lang.Class.forName(Class.java:217)
	at external.org.apache.commons.lang3.ClassUtils.getClass(ClassUtils.java:823)
	at de.robv.android.xposed.XposedHelpers.findClass(XposedHelpers.java:50)
	... 19 more
Caused by: java.lang.NoClassDefFoundError: com/android/launcher3/DynamicGrid
	... 23 more
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.android.launcher3.DynamicGrid" on path: DexPathList[dexElements=[zip file "/system/app/QuickSearchBox.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
	at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
	... 23 more
de.robv.android.xposed.XposedHelpers$ClassNotFoundError: java.lang.ClassNotFoundException: com.android.launcher3.DynamicGrid
	at de.robv.android.xposed.XposedHelpers.findClass(XposedHelpers.java:52)
	at com.ceco.gm2.gravitybox.ModLauncher.init(ModLauncher.java:61)
	at com.ceco.gm2.gravitybox.GravityBox.handleLoadPackage(GravityBox.java:259)
	at de.robv.android.xposed.IXposedHookLoadPackage$Wrapper.handleLoadPackage(IXposedHookLoadPackage.java:20)
	at de.robv.android.xposed.callbacks.XC_LoadPackage.call(XC_LoadPackage.java:34)
	at de.robv.android.xposed.callbacks.XCallback.callAll(XCallback.java:70)
	at de.robv.android.xposed.XposedBridge$2.beforeHookedMethod(XposedBridge.java:202)
	at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:527)
	at android.app.ActivityThread.handleBindApplication(Native Method)
	at android.app.ActivityThread.access$1300(ActivityThread.java:156)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1400)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loop(Looper.java:153)
	at android.app.ActivityThread.main(ActivityThread.java:5297)
	at java.lang.reflect.Method.invokeNative(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:511)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
	at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:126)
	at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: com.android.launcher3.DynamicGrid
	at java.lang.Class.classForName(Native Method)
	at java.lang.Class.forName(Class.java:217)
	at external.org.apache.commons.lang3.ClassUtils.getClass(ClassUtils.java:823)
	at de.robv.android.xposed.XposedHelpers.findClass(XposedHelpers.java:50)
	... 19 more
Caused by: java.lang.NoClassDefFoundError: com/android/launcher3/DynamicGrid
	... 23 more
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.android.launcher3.DynamicGrid" on path: DexPathList[dexElements=[zip file "/system/app/QuickSearchBox.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
	at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
	... 23 more
 

dubidu

Senior Member
Apr 19, 2006
210
168
UK
Code:
-----------------
Feb 11, 2014 2:23:25 PM UTC
Loading Xposed v42 (for Zygote)...
-----------------
Feb 11, 2014 2:25:33 PM UTC
....
GB:PatchMasterKey: Patching MasterKey vulnerabilities
Loading modules from /data/app/com.dubi.xposed.magnetoff-2.apk
  Loading class com.dubi.xposed.magnetoff.MagnetOff
GB:NfcTile: Error getting state of NfcAdapter: java.lang.UnsupportedOperationException
.....


There are lots of errors in there, but not by the MagnetOff module.

Try this one:
http://tinyurl.com/qbpjv22/MotoMagnetOff_0.apk

It is the first version I wrote which completly removes the "applyLidSwitchState()" method rather than switch off the "mLidControlsSleep" property
 
Last edited:
  • Like
Reactions: endriuss

Mazer.one

Senior Member
Jul 18, 2010
679
1,056
...
Does anyone know a way to do the opposite to fix the screen not turning off on custom roms

It works fine with cm11 by @dhacker29 , now the screen turn off when i close the flip case. You must install and disable the module.

gazurygu.jpg

y5e5y8yg.jpg


Thanks to dubidu .

Envoyé de mon Moto G en utilisant Tapatalk
 
Last edited:

matmutant

Senior Member
Mar 17, 2011
3,395
4,743
~/
andrux-and-me.blogspot.com
Moto G
Moto E
Strangely on CM11, to get the auto On/Off screen with Open/Closing the lid i need to install the Xposed Module, enable it and then open it and disable the in-module option (not the module, that once disabled, the On/Off won't work any more :p)

nevertheless, thank you for this module !
 

Apollo_316

Senior Member
May 25, 2007
65
4
Hi dubidu,

First, thank you very much for addressing this need! I think you may be surprised how many people want this feature off but, until you came along, have had no way to do it.

After installing this app on my Moto X Android 4.4 and activating it in Xposed and a reboot it is still not working. Now, that said, I see this is more for the 'smartcovers', which the Moto X doesn't have. It does, however, have the magnet sensor for the drive-mode docks and when a magnet is placed near the lower left half of the back on the phone it triggers a screen-on event that I can't, for the life of me, get to stop doing it. Is the purpose of this app to address any magnet sensor or only the ones near the screen for the smartcovers? Just wanted to provide my feedback in case you are going to work on this Moto X magnet sensor too. Thanks for all your work my friend! Keep it up!
 

matmutant

Senior Member
Mar 17, 2011
3,395
4,743
~/
andrux-and-me.blogspot.com
Moto G
Moto E
Just got mine.
I wasn't sure if the magnet would be a problem in the long run. Electronic devices and magnets don't like each other too much and this one it is a strong one.
So as other had done before ;) I removed it from the case....

That was actually right with old cathodic TV and screens that had artifacts when near loud speakers, but, now that we charge devices by magnetic induction, i don't think a little magnet would break anything inside :)
 

dubidu

Senior Member
Apr 19, 2006
210
168
UK
That was actually right with old cathodic TV and screens that had artifacts when near loud speakers, but, now that we charge devices by magnetic induction, i don't think a little magnet would break anything inside :)

It is not that little ;)
I believe Motorola has already acknowledge that it can cause problems due be too strong, so better out of reach.

In relation to off and on, (and having to install the mod and disable it to get it working on CM11) it could be because CM11 forgot to set the property which controls the lid ("mLidControlsSleep")

Code:
if (new XSharedPreferences(PACKAGE_NAME).getBoolean("magnetoff", false))
{	
//		XposedBridge.log("MagnetOff: Sleep disabled");
	XposedHelpers.setBooleanField(paramMethodHookParam.thisObject, "mLidControlsSleep",false);
}
else 
{
//		XposedBridge.log("MagnetOff: Sleep enabled");
	XposedHelpers.setBooleanField(paramMethodHookParam.thisObject, "mLidControlsSleep",true);	
}

That's what I do to disable/enable the sleep, if the setting is set to false, it will set "mLidControlsSleep" to "true".
Maybe that property is set to false by default in the CM11 build.

....
After installing this app on my Moto X Android 4.4 and activating it in Xposed and a reboot it is still not working....

I guess the name is a little misleading, This mod only applies to the Lid (cover/smartcover), it will not change any other magnet.
Haven't look at the code for the X, but maybe the sensor in yours X triggers a dock event.
Will check the code to see if is something obvious.
 
  • Like
Reactions: matmutant

matmutant

Senior Member
Mar 17, 2011
3,395
4,743
~/
andrux-and-me.blogspot.com
Moto G
Moto E
It is not that little ;)
I believe Motorola has already acknowledge that it can cause problems due be too strong, so better out of reach.

So, what about charging by magnetic induction? i believe the magnetic field induced is much more powerful than the embedded magnet isn't it?
(MotoG magnetic sensor detects about 250µT when cover is closed or totally opened [flipped to the back of the device]; and about 100µT when opened, this is right that earth+environment magnetic field detected is about 50µT)

edit : maybe the sensor is saturated and the magnetic field is far more than 250µT, it would be interesting to test with real teslameter, which i don't have ; does anybody have an idea of the intensity of induced field by Qi chargers?
 
Last edited:

dubidu

Senior Member
Apr 19, 2006
210
168
UK
So, what about charging by magnetic induction? i believe the magnetic field induced is much more powerful than the embedded magnet isn't it?
(MotoG magnetic sensor detects about 250µT when cover is closed or totally opened [flipped to the back of the device]; and about 100µT when opened, this is right that earth+environment magnetic field detected is about 50µT)


I'm using a QI wireless charge and believe me, has no magnet at all.
If you have a flip cover you will see how strong the magnet they added for keeping the lid close is (I'm not complaining about the one for the lid sensor).
Still, up to you, I saw no point on having that magnet in. I've read about people complaining about screen issues after several months using magnetic covers with other phones, so, for me it was a no-brainer. Magnet out.
 
Last edited:

matmutant

Senior Member
Mar 17, 2011
3,395
4,743
~/
andrux-and-me.blogspot.com
Moto G
Moto E
I'm using a QI wireless charge and believe me, has no magnet at all.
If you have a flip cover you will see how strong the magnet they added for keeping the lid close is (I'm not complaining about the one for the lid sensor).
Still, up to you, I saw no point on having that magnet in. I've read about people complaining about screen issues after several months using magnetic covers with other phones, so, for me it was a no-brainer. Magnet out.
thanks for answer :)
in fact i've just removed the magnet for one other reason : the magnet was making the compass crasy (and it is obvious)
 

Top Liked Posts