[DIY][CM 12][Android 5.0] Gear Fit on Non-Samsung Devices with Lollipop - Samsung Gear Fit

Hello there! I'm new to these parts because I recently acquired a Gear Fit.
TL;DR: I took aooga's stuff (thanks!) and made it work on my CM 12 (5.0.2) phone. I hope it works for you. Get it here.
Anyway, I'm using a Galaxy Nexus running a cm 12 build from Ziyan, and I quickly realized that I needed to do some extra work. Unfortunately, zwegnet's patched Gear Fit Manager didn't work for me, and neither did aooga's very comprehensive guide, so I figured I'd try doing it myself. I see that some of you are interested in how this works, so I'm documenting my process for everyone's benefit (let's collaborate!).
You will learn the basics of:
how to debug using adb logcat
how to disassemble an app (specifically, a dex file) into smali
how to navigate and modify smali code
how to reassemble smali to dex and rebuild the app
how to sign an app for deployment
You will need:
adb
java runtime environment
smali/baksmali
signapk with test keys
I've collected some of the tools for you here; just add adb and java.
1. Debugging
So, we've got Gear Fit Manager and Gear Fitness installed... but Gear Fit Manager crashes! Darn it. How are we gonna connect a Gear Fit? Let's see.
First, let's pop open your favorite terminal (yes, we will be using the command line) and start streaming some logs:
Code:
adb logcat
There should be a bunch of text scrolling through the terminal. While that's going on, try to launch the offending app, and wait until it crashes. As soon as it crashes, hit Ctrl+C in the terminal to stop logging. Look, a fatal exception:
Code:
E/AndroidRuntime(32368): FATAL EXCEPTION: main
E/AndroidRuntime(32368): Process: com.samsung.android.wms, PID: 32368
E/AndroidRuntime(32368): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.samsung.android.wms/com.samsung.android.wms.app.base.ContentsActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x0
E/AndroidRuntime(32368): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
E/AndroidRuntime(32368): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
E/AndroidRuntime(32368): at android.app.ActivityThread.access$800(ActivityThread.java:144)
E/AndroidRuntime(32368): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
E/AndroidRuntime(32368): at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime(32368): at android.os.Looper.loop(Looper.java:135)
E/AndroidRuntime(32368): at android.app.ActivityThread.main(ActivityThread.java:5223)
E/AndroidRuntime(32368): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(32368): at java.lang.reflect.Method.invoke(Method.java:372)
E/AndroidRuntime(32368): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898)
E/AndroidRuntime(32368): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)
E/AndroidRuntime(32368): Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x0
E/AndroidRuntime(32368): at android.content.res.Resources.getValue(Resources.java:1233)
E/AndroidRuntime(32368): at android.content.res.Resources.getDrawable(Resources.java:756)
E/AndroidRuntime(32368): at android.content.res.Resources.getDrawable(Resources.java:724)
E/AndroidRuntime(32368): at com.samsung.android.wms.app.base.WingtipBaseActivity.brandGlowEffect(WingtipBaseActivity.java:136)
E/AndroidRuntime(32368): at com.samsung.android.wms.app.base.WingtipBaseActivity.onCreate(WingtipBaseActivity.java:94)
E/AndroidRuntime(32368): at com.samsung.android.wms.app.base.ContentsActivity.onCreate(ContentsActivity.java:139)
E/AndroidRuntime(32368): at android.app.Activity.performCreate(Activity.java:5933)
E/AndroidRuntime(32368): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
E/AndroidRuntime(32368): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
E/AndroidRuntime(32368): ... 10 more
When you've been bug-hunting for a while, you start to notice these stack traces quite readily, even in a sea of irrelevant output. This one tells us that:
the offending app is named com.samsung.android.wms
a Resources$NotFoundException occurred, likely because the app requested a resource that did not exist
... and so on
Note that the stack trace appears in reverse-chronological order; that is, what happens later appears first. I often like to read these things backwards. Now, have a look at these lines:
Code:
E/AndroidRuntime(32368): at android.content.res.Resources.getDrawable(Resources.java:724)
E/AndroidRuntime(32368): at com.samsung.android.wms.app.base.WingtipBaseActivity.brandGlowEffect(WingtipBaseActivity.java:136)
E/AndroidRuntime(32368): at com.samsung.android.wms.app.base.WingtipBaseActivity.onCreate(WingtipBaseActivity.java:94)
What happened?
a WingtipBaseActivity is created to display the app, and is being initialized in its onCreate method
... which calls brandGlowEffect
... which calls into the Android system
... which eventually leads to the crash
With the entire chain of events exposed to us, we could now look for the culprit! Why don't we examine WingtipBaseActivity.brandGlowEffect? It's the last thing the app does before passing control over to Android, and we're assuming that the app (not Android) is faulty.
2. Disassembly
To do this, we need to take a peek under Gear Fit Manager's hood. An apk file is just a zip file, so we already know how to unpack it. We're interested in the classes.dex within, which contains the executable code. dex is not a very human-readable format, so we need to disassemble it using baksmali.
Firstly, let's extract the classes.dex from the archive. Then, we could disassemble it by running:
Code:
java -jar baksmali.jar -o dexout classes.dex
3. Modification
This generates a folder full of disassembled code. Because we're interested in com.samsung.android.wms.app.base.WingtipBaseActivity, we'll look inside the file dexout/com/samsung/android/wms/app/base/WingtipBaseActivity.smali
There, on line 693, we see the method WingtipBaseActivity.brandGlowEffect getting called from WingtipBaseActivity.onCreate. This looks like some cosmetic fluff that we could dispense with, so let's just delete the line altogether and save the file. Sorry, Samsung, your brand's not gonna glow this time.
4. Reassembly
Now we could re-generate the classes.dex:
Code:
java -jar smali.jar -o classes.dex dexout
... and we'll drop the new classes.dex inside the apk.
5. Signing
But wait! We couldn't install this new apk yet — it needs to be signed. This is easy enough with signapk:
Code:
java -jar signapk.jar testkey.x509.pem testkey.pk8 GearFitManager.apk GearFitManager_signed.apk
6. Deploying
We need to uninstall the original app before we could install the new one, because they were signed using different keys (the original was signed using Samsung's keys). After that, we just need to install and test!
We've barely scratched the surface. I hope this helps someone, and I certainly hope we could team up to make something awesome. I've had a look at the more recent versions of Gear Fit Manager, and I have a feeling a lot more work would be required...

Just when I was about to give up , I found this thread . Thank you so much .
The app finally doesn't crash . But it doesn't seem to be connecting with the Fitness app .
Running Nexus 4 with CyanogenMod 12 , v5.0.2 .

[DIY][CM 12][Android 5.0] Gear Fit on Non-Samsung Devices with Lollipop
Hello there! I'm new to these parts because I recently acquired a Gear Fit.
TL;DR: I took aooga's stuff (thanks!) and made it work on my CM 12 (5.0.2) phone. I hope it works for you. Get it here.
Anyway, I'm using a Galaxy Nexus running a cm 12 build from Ziyan, and I quickly realized that I needed to do some extra work. Unfortunately, zwegnet's patched Gear Fit Manager didn't work for me, and neither did aooga's very comprehensive guide, so I figured I'd try doing it myself. I see that some of you are interested in how this works, so I'm documenting my process for everyone's benefit (let's collaborate!).
You will learn the basics of:
1.how to debug using adb logcat
2.how to disassemble an app (specifically, a dex file) into smali
3.how to navigate and modify smali code
4.how to reassemble smali to dex and rebuild the app
5.how to sign an app for deployment
You will need:
•adb
•java runtime environment
•smali/baksmali
•signapk with test keys
I've collected some of the tools for you here; just add adb and java.
1. Debugging
So, we've got Gear Fit Manager and Gear Fitness installed... but Gear Fit Manager crashes! Darn it. How are we gonna connect a Gear Fit? Let's see.
First, let's pop open your favorite terminal (yes, we will be using the command line) and start streaming some logs:
Code:
adb logcat
There should be a bunch of text scrolling through the terminal. While that's going on, try to launch the offending app, and wait until it crashes. As soon as it crashes, hit Ctrl+C in the terminal to stop logging. Look, a fatal exception:
Code:
E/AndroidRuntime(32368): FATAL EXCEPTION: main
E/AndroidRuntime(32368): Process: com.samsung.android.wms, PID: 32368
E/AndroidRuntime(32368): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.samsung.android.wms/com.samsung.android.wms.app.base.ContentsActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x0
E/AndroidRuntime(32368): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
E/AndroidRuntime(32368): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
E/AndroidRuntime(32368): at android.app.ActivityThread.access$800(ActivityThread.java:144)
E/AndroidRuntime(32368): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
E/AndroidRuntime(32368): at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime(32368): at android.os.Looper.loop(Looper.java:135)
E/AndroidRuntime(32368): at android.app.ActivityThread.main(ActivityThread.java:5223)
E/AndroidRuntime(32368): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(32368): at java.lang.reflect.Method.invoke(Method.java:372)
E/AndroidRuntime(32368): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898)
E/AndroidRuntime(32368): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)
E/AndroidRuntime(32368): Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x0
E/AndroidRuntime(32368): at android.content.res.Resources.getValue(Resources.java:1233)
E/AndroidRuntime(32368): at android.content.res.Resources.getDrawable(Resources.java:756)
E/AndroidRuntime(32368): at android.content.res.Resources.getDrawable(Resources.java:724)
E/AndroidRuntime(32368): at com.samsung.android.wms.app.base.WingtipBaseActivity.brandGlowEffect(WingtipBaseActivity.java:136)
E/AndroidRuntime(32368): at com.samsung.android.wms.app.base.WingtipBaseActivity.onCreate(WingtipBaseActivity.java:94)
E/AndroidRuntime(32368): at com.samsung.android.wms.app.base.ContentsActivity.onCreate(ContentsActivity.java:139)
E/AndroidRuntime(32368): at android.app.Activity.performCreate(Activity.java:5933)
E/AndroidRuntime(32368): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
E/AndroidRuntime(32368): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
E/AndroidRuntime(32368): ... 10 more
When you've been bug-hunting for a while, you start to notice these stack traces quite readily, even in a sea of irrelevant output. This one tells us that:
•the offending app is named com.samsung.android.wms
•a Resources$NotFoundException occurred, likely because the app requested a resource that did not exist
•... and so on
Note that the stack trace appears in reverse-chronological order; that is, what happens later appears first. I often like to read these things backwards. Now, have a look at these lines:
Code:
E/AndroidRuntime(32368): at android.content.res.Resources.getDrawable(Resources.java:724)
E/AndroidRuntime(32368): at com.samsung.android.wms.app.base.WingtipBaseActivity.brandGlowEffect(WingtipBaseActivity.java:136)
E/AndroidRuntime(32368): at com.samsung.android.wms.app.base.WingtipBaseActivity.onCreate(WingtipBaseActivity.java:94)
What happened?
1.a WingtipBaseActivity is created to display the app, and is being initialized in its onCreate method
2.... which calls brandGlowEffect
3.... which calls into the Android system
4.... which eventually leads to the crash
With the entire chain of events exposed to us, we could now look for the culprit! Why don't we examine WingtipBaseActivity.brandGlowEffect? It's the last thing the app does before passing control over to Android, and we're assuming that the app (not Android) is faulty.
2. Disassembly
To do this, we need to take a peek under Gear Fit Manager's hood. An apk file is just a zip file, so we already know how to unpack it. We're interested in the classes.dex within, which contains the executable code. dex is not a very human-readable format, so we need to disassemble it using baksmali.
Firstly, let's extract the classes.dex from the archive. Then, we could disassemble it by running:
Code:
java -jar baksmali.jar -o dexout classes.dex
3. Modification
This generates a folder full of disassembled code. Because we're interested in com.samsung.android.wms.app.base.WingtipBaseActivi ty, we'll look inside the file dexout/com/samsung/android/wms/app/base/WingtipBaseActivity.smali
There, on line 693, we see the method WingtipBaseActivity.brandGlowEffect getting called from WingtipBaseActivity.onCreate. This looks like some cosmetic fluff that we could dispense with, so let's just delete the line altogether and save the file. Sorry, Samsung, your brand's not gonna glow this time.
4. Reassembly
Now we could re-generate the classes.dex:
Code:
java -jar smali.jar -o classes.dex dexout
... and we'll drop the new classes.dex inside the apk.
5. Signing
But wait! We couldn't install this new apk yet — it needs to be signed. This is easy enough with signapk:
Code:
java -jar signapk.jar testkey.x509.pem testkey.pk8 GearFitManager.apk GearFitManager_signed.apk
6. Deploying
We need to uninstall the original app before we could install the new one, because they were signed using different keys (the original was signed using Samsung's keys). After that, we just need to install and test!
We've barely scratched the surface. I hope this helps someone, and I certainly hope we could team up to make something awesome. I've had a look at the more recent versions of Gear Fit Manager, and I have a feeling a lot more work would be required...
Click to expand...
Click to collapse
Very good explanation.
Thanks to you I was able to path version 1.98 and it works the media control, I can upload new watches styles using Watch Styler for Fit.
What doesn't work is the App connect. All applications say that I have to install Gear Manager Fit first.
It's working on my Nexus 4 with 5.0.1. I also updated the gear fit to the last firmware and it connects perfectly.
I attach it.

Help
bronxgsi said:
Very good explanation.
Thanks to you I was able to path version 1.98 and it works the media control, I can upload new watches styles using Watch Styler for Fit.
What doesn't work is the App connect. All applications say that I have to install Gear Manager Fit first.
It's working on my Nexus 4 with 5.0.1. I also updated the gear fit to the last firmware and it connects perfectly.
I attach it.
Click to expand...
Click to collapse
I installed the zip by renaming it as an apk but when I try to pair it give the same confirmation but doesn't finish pairing please help... I have Nexus 5 it has stock 5.0.1 rooted as well.

I haven't been able to sync the Fitness with Gear app either, even with Samsung Account installed per Virnik0's recommendation.
I believe this stack trace is relevant:
Code:
D/SessionInputStream(29439): move remain data to first index / mTotalDataLength : 83 mTotalReceivedLength : 88
W/SessionManager(29439): notifyDataReceived port : 2
I/SessionManager(29439): mBinderMap.get action:com.samsung.android.wms.communication.session_manager_for_interanalbinder:115174198
I/SessionManager(29439): listener.onDataReceived is called
V/DataExchangeManager(29439): SessionManagerEventListener onDataReceived
W/DataExchangeManager(29439): From : HEALTH, Attempt to invoke interface method 'void com.samsung.android.wms.service.communication.DataExchangeManager$OnDataReceivedListener.onDataReceived(com.samsung.android.wms.service.communication.WingtipApp, byte[])' on a null object reference
W/DataExchangeManager(29439): java.lang.NullPointerException: Attempt to invoke interface method 'void com.samsung.android.wms.service.communication.DataExchangeManager$OnDataReceivedListener.onDataReceived(com.samsung.android.wms.service.communication.WingtipApp, byte[])' on a null object reference
W/DataExchangeManager(29439): at com.samsung.android.wms.service.communication.DataExchangeManager$InternalHandler.handleMessage(DataExchangeManager.java:126)
W/DataExchangeManager(29439): at android.os.Handler.dispatchMessage(Handler.java:102)
W/DataExchangeManager(29439): at android.os.Looper.loop(Looper.java:135)
W/DataExchangeManager(29439): at android.app.ActivityThread.main(ActivityThread.java:5223)
W/DataExchangeManager(29439): at java.lang.reflect.Method.invoke(Native Method)
W/DataExchangeManager(29439): at java.lang.reflect.Method.invoke(Method.java:372)
W/DataExchangeManager(29439): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898)
W/DataExchangeManager(29439): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)
It seems that it actually connected to Samsung's servers, but had some trouble handling the response. I'll investigate this sometime...
will1549 said:
I installed the zip by renaming it as an apk but when I try to pair it give the same confirmation but doesn't finish pairing please help... I have Nexus 5 it has stock 5.0.1 rooted as well.
Click to expand...
Click to collapse
Same here -- I'd blame the differences among ROMS
I actually haven't been able to get any recent versions working, myself...

inportb said:
I haven't been able to sync the Fitness with Gear app either, even with Samsung Account installed per Virnik0's recommendation.
I believe this stack trace is relevant:
Code:
D/SessionInputStream(29439): move remain data to first index / mTotalDataLength : 83 mTotalReceivedLength : 88
W/SessionManager(29439): notifyDataReceived port : 2
I/SessionManager(29439): mBinderMap.get action:com.samsung.android.wms.communication.session_manager_for_interanalbinder:115174198
I/SessionManager(29439): listener.onDataReceived is called
V/DataExchangeManager(29439): SessionManagerEventListener onDataReceived
W/DataExchangeManager(29439): From : HEALTH, Attempt to invoke interface method 'void com.samsung.android.wms.service.communication.DataExchangeManager$OnDataReceivedListener.onDataReceived(com.samsung.android.wms.service.communication.WingtipApp, byte[])' on a null object reference
W/DataExchangeManager(29439): java.lang.NullPointerException: Attempt to invoke interface method 'void com.samsung.android.wms.service.communication.DataExchangeManager$OnDataReceivedListener.onDataReceived(com.samsung.android.wms.service.communication.WingtipApp, byte[])' on a null object reference
W/DataExchangeManager(29439): at com.samsung.android.wms.service.communication.DataExchangeManager$InternalHandler.handleMessage(DataExchangeManager.java:126)
W/DataExchangeManager(29439): at android.os.Handler.dispatchMessage(Handler.java:102)
W/DataExchangeManager(29439): at android.os.Looper.loop(Looper.java:135)
W/DataExchangeManager(29439): at android.app.ActivityThread.main(ActivityThread.java:5223)
W/DataExchangeManager(29439): at java.lang.reflect.Method.invoke(Native Method)
W/DataExchangeManager(29439): at java.lang.reflect.Method.invoke(Method.java:372)
W/DataExchangeManager(29439): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898)
W/DataExchangeManager(29439): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)
It seems that it actually connected to Samsung's servers, but had some trouble handling the response. I'll investigate this sometime...
Same here -- I'd blame the differences among ROMS
I actually haven't been able to get any recent versions working, myself...
Click to expand...
Click to collapse
My problem getting the Bluetooth pair to GFM. On version 1.49 for lollipop it was but not this zip

will1549 said:
My problem getting the Bluetooth pair to GFM. On version 1.49 for lollipop it was but not this zip
Click to expand...
Click to collapse
It works. Sort of. Basically it asks for update every time I connect to my Fit. That update then fail due to different signing keys, but then it works.
I have used the version from OP

Virnik0 said:
It works. Sort of. Basically it asks for update every time I connect to my Fit. That update then fail due to different signing keys, but then it works.
I have used the version from OP
Click to expand...
Click to collapse
My problem is it only pair Bluetooth but never connect gear fit manager to the gear fit it keeps send verification codes.

bronxgsi said:
Very good explanation.
Thanks to you I was able to path version 1.98 and it works the media control, I can upload new watches styles using Watch Styler for Fit.
What doesn't work is the App connect. All applications say that I have to install Gear Manager Fit first.
It's working on my Nexus 4 with 5.0.1. I also updated the gear fit to the last firmware and it connects perfectly.
I attach it.
Click to expand...
Click to collapse
This one works fine! Thanks for sharing!
---------- Post added at 10:43 PM ---------- Previous post was at 10:25 PM ----------
Virnik0 said:
This one works fine! Thanks for sharing!
Click to expand...
Click to collapse
BTW, we'll need version 1.102, and original genuine keys. so, once you'll compile/smali odex, just add it to original APK, that shall do it, otherwise we won't be able to use any gear app plugin

I don't know why it doesn't pair... Sorry I'm not an expert in this issue.
Virnik0 said:
This one works fine! Thanks for sharing!
---------- Post added at 10:43 PM ---------- Previous post was at 10:25 PM ----------
BTW, we'll need version 1.102, and original genuine keys. so, once you'll compile/smali odex, just add it to original APK, that shall do it, otherwise we won't be able to use any gear app plugin
Click to expand...
Click to collapse
I tried to patch the last versión (GearFitManager_NL1_1.111.1216_USER.apk) but it doesn't pair. The original one, in a G2 with KitKat doesn't pair neither.
I was able to use all the plugins from App connect patching the "dexout\com\samsung\android\sdk\cup\Scup.smali" file to not to check the keys. Just changing:
if-eq v1, v6, :cond_e2
to
if-ne v1, v6, :cond_e2
The problema is that I had to patch every App I want to use and it is a little tedious. Maybe we can make an script or a program to automatically doing it...

Dunno what will be best way to do this now. I have a very little time to do any coding nowadays. But at least version 1.98 works fine. Running RR 5.2.9 (CM12 - Android 5.0.2) on GT9300. Pairing works correctly

A script would be wonderful

pcp12 said:
A script would be wonderful
Click to expand...
Click to collapse
Of course!!!
Works on my Nexus 5 (the APK in the first post)
I'll try to patch the last release

Does this versions just work on cm12? I have GPE lollipop on my s4 and when I connect my phone to the gear fit, the gear fit manager crashes immediately.

poaudet said:
Of course!!!
Works on my Nexus 5 (the APK in the first post)
I'll try to patch the last release
Click to expand...
Click to collapse
Because you have to modify ro.product.manufacturer=samsung to something else (like ro.product.manufacturer=GPE) in /system/build.prop
Reboot after modification is done and you should be OK.
BTW, SGS5 does have LP available for download for more then month, but GFM is the same. Works there fine, because all classes are provided from TW framework.

Virnik0 said:
Because you have to modify ro.product.manufacturer=samsung to something else (like ro.product.manufacturer=GPE) in /system/build.prop
Reboot after modification is done and you should be OK.
BTW, SGS5 does have LP available for download for more then month, but GFM is the same. Works there fine, because all classes are provided from TW framework.
Click to expand...
Click to collapse
Thanks, got it working. Really nice work! [emoji1]

poaudet said:
Of course!!!
Works on my Nexus 5 (the APK in the first post)
I'll try to patch the last release
Click to expand...
Click to collapse
Poaudet do you have a stock rom or another rom? I have a stock nexus 5 with kitkat and i am not about to upgrade to lollipop until my gear fit doesnt have the functionalities that are now working with 4.4.4. Anyone is using a stock nexus 5 with lollipop?

alexxio said:
Poaudet do you have a stock rom or another rom? I have a stock nexus 5 with kitkat and i am not about to upgrade to lollipop until my gear fit doesnt have the functionalities that are now working with 4.4.4. Anyone is using a stock nexus 5 with lollipop?
Click to expand...
Click to collapse
Im using google play edition on my s4. Its like the lollipop on nexus 5 and everything for me is working.

alexxio said:
Poaudet do you have a stock rom or another rom? I have a stock nexus 5 with kitkat and i am not about to upgrade to lollipop until my gear fit doesnt have the functionalities that are now working with 4.4.4. Anyone is using a stock nexus 5 with lollipop?
Click to expand...
Click to collapse
I've stock lollipop rom.
Things that didn't work:
-music control
-everything that need Samsung Account
-Endomondo
-GPS (Gear Navigation, Weather, ...)
Everything else seems to work, with some edit it the apk of Connected App, see the other post in this thread.
I've attached those i've already edit.

Noob question: I flew over the tutorial and didn't really noticed any variable data. Is there something preventing someone from generating and sharing a patched apk of GFM that would work with basically any non-Samsung Lollipop phone ?

Related

[WIP] Open source RTL support for Android

I am working on an open source RTL support for Android and I need help testing...
I have attached a normal app (that should work on any Android 1.5 and up) that runs my method before calling drawText.
The purpose is to make drawText call to it so it will support BiDi.
It reads a file called /sdcard/test.txt from which it gets the test string.
It does not support newlines.
Try it and tell me what you think.
The reason I don't publish the source yet is because knowing how it works would prevent it from being tested properly.
I hope I'm putting this in the right forum...
Hebrew Supported...
Is it also, support the font for Hebrew?
Because in ver 2.1, the have Hebrew but sometimes you see square or ? signs.
TheAgent1982 said:
Is it also, support the font for Hebrew?
Because in ver 2.1, the have Hebrew but sometimes you see square or ? signs.
Click to expand...
Click to collapse
The fonts exist, there's no work necessary on them, you have to push them to the device and that's it...
biditest with Android 2.2 FroYo (FRF50) Arabic test.txt
I tested with Android 2.2 FroYo (FRF50)
without /sdcard/test.txt and with my own text
I don't know about the Hebrew, the Arabic text are not joined (re-shaped) correctly
dudyk said:
The fonts exist, there's no work necessary on them, you have to push them to the device and that's it...
Click to expand...
Click to collapse
I have TP2 running Android 2.1 .
So, any idea how to do it?
Thanks for writing an open source BiDi support.
I did a very short test:
1. It did not render the whole line of text.
2. It looks like it has problems when switching from one language to another. E.g. the closing bracket after the hebrew word is rendered as open.
I attached the original text files and screen shots.
In addition I attache a screen shot of TxtPad Light and how it is rendered there.
TheAgent1982 said:
Is it also, support the font for Hebrew?
Because in ver 2.1, the have Hebrew but sometimes you see square or ? signs.
Click to expand...
Click to collapse
This might be a problem of character encoding.
I did a test with a UTF-8 file and a Hebrew ISO 8859-8. The first rendered the letters correct but the second showed only question marks. (See picture)
As alternative keyboard I recommend using either AnySoftKeyboard or SmartKeyboard.
It is in CM-5.0.8, with a fix on the issue list.
Dear Dudy,
Will your fix work for 2.1 as well? Can you give directions how to apply it to other ROMs? I own an HTC Desire, and would love to implement the fix. So far I just have the common StaticLayout fix.
Thanks,
Ron
EDIT: More specifically, it would be great if you can tell us which files to take from the CM update with the help of baksmali and smali in order to graft them into other distros. That's the way I implanted StaticLayout.smali in MoDaCo roms.
CM 5.0.8 is 2.1. It should apply to any 2.1/2.2 rom, just take my 4 commits from CM's git from framework base repository.
dudyk said:
CM 5.0.8 is 2.1. It should apply to any 2.1/2.2 rom, just take my 4 commits from CM's git from framework base repository.
Click to expand...
Click to collapse
Thanks for the reply, Dudy. I'll be more specific about what I am trying to do: I am trying to pull the files with your patches from the CM-5.0.8 ROM without compiling anything.
With the StaticLayout fix, I used baksmali and smali to disassemble the classes.dex from framework.jar and replace StaticLayout.smali. This worked.
When I look at the page github.com/dudyk/android_frameworks_base/commit/1b0aca31c3e03a5a323276cd15a8df4203a1792c - the one with your commits (is that the right one?) I cannot figure out all the files that I would need to replace. Sorry, I am not a programmer...
I can pretty much figure out that all the files preceeded by core/java/android/ will be found with their exact names in the classes.dex from framework.jar. But I have no idea where to locate the compiled files that resulted from AndroidGraphics2D, the three Canvas files and the ResourceTypes.
If you can point me at the right direction I'll be able to convert a script that was used for the StaticLayout fix so that anyone with a Mac or Linux would be able to easily implement your fix to any none-odexed distro.
Thanks so much in advance!
you didn't add U+0600 support in your Canvas.java @ cyanogen's git
PapaDocta said:
you didn't add U+0600 support in your Canvas.java @ cyanogen's git
Click to expand...
Click to collapse
Why do you say that? I tested for U0590 to U07B1, isn't that enough?
my bad.. i don't know how i overlooked the U07B1.... it's more than enough
Dear Dudy, I really need your help.
Back in the old days (a month ago), before your wonderful work, the best fix we had was Omri Baumer's StaticLayout fix. I was able to use the baksmali and the smali utilities to extract the smali file from framework.jar of CM, and graft it into ANY phone. Another user on the iAndroid forums created a script that automated everything.
I wanted to do the same with your fix. So I compiled a vanilla 2.1 and then applied only your patches, manually, and recompiled. I used baksmali to disassemble all the framework files, and discovered that the changed files were:
android/graphics/Canvas.smali
android/graphics/Canvas$EdgeType.smali
android/graphics/Canvas$VertexMode.smali
android/text/Layout.smali
android/text/SpannableStringBuilder.smali
android/text/Styled.smali
android/widget/TextView$CharWrapper.smali
The two additional Canvas files were tagged as changed, but no textual difference is evident. So altogether we are talking about 5 files that ideally would be easily grafted into ANY device running 2.1, without recompilation.
The problem was that the new Canvas.smali file caused boot loops on my HTC Desire. Logcat caught this:
Code:
D/AndroidRuntime( 103): --- registering native functions ---
W/dalvikvm( 103): Unable to register: not native: Landroid/graphics/Canvas;.drawText (Ljava/lang/String;FFLandroid/graphics/Paint;)V
E/JNIHelp ( 103): RegisterNatives failed for 'android/graphics/Canvas'
E/AndroidRuntime( 103): Unable to register all android natives
This did NOT happen when I tried the vanilla Canvas.smali. So it must be something in your patches. If you can help me figure out how to fix this, your fix will be easily implemented into any un-odexed 2.1 device. The script is all reworked and ready... Just this problem needs ironing out.
Thanks so much - for your wonderful work, and for taking the time to read this.
Ron
ClassicalDude said:
I wanted to do the same with your fix. So I compiled a vanilla 2.1 and then applied only your patches, manually, and recompiled. I used baksmali to disassemble all the framework files, and discovered that the changed files were:
android/graphics/Canvas.smali
android/graphics/Canvas$EdgeType.smali
android/graphics/Canvas$VertexMode.smali
android/text/Layout.smali
android/text/SpannableStringBuilder.smali
android/text/Styled.smali
android/widget/TextView$CharWrapper.smali
The two additional Canvas files were tagged as changed, but no textual difference is evident. So altogether we are talking about 5 files that ideally would be easily grafted into ANY device running 2.1, without recompilation.
The problem was that the new Canvas.smali file caused boot loops on my HTC Desire. Logcat caught this:
Code:
D/AndroidRuntime( 103): --- registering native functions ---
W/dalvikvm( 103): Unable to register: not native: Landroid/graphics/Canvas;.drawText (Ljava/lang/String;FFLandroid/graphics/Paint;)V
E/JNIHelp ( 103): RegisterNatives failed for 'android/graphics/Canvas'
E/AndroidRuntime( 103): Unable to register all android natives
This did NOT happen when I tried the vanilla Canvas.smali. So it must be something in your patches. If you can help me figure out how to fix this, your fix will be easily implemented into any un-odexed 2.1 device. The script is all reworked and ready... Just this problem needs ironing out.
Thanks so much - for your wonderful work, and for taking the time to read this.
Ron
Click to expand...
Click to collapse
My changes add a native method (a C++ one) to the sources, from what I know, it is in the dex file, but maybe smali's files do not extract it, or extract it differently.
I never tried to disassemble files in android and reassemble them, so I have no idea how to help you besides describing the changes to you.
P.S.
Do you think that HebVillian is using my fix this way? I believe that I'm the first to fix this for ROMs above 2.0 (BTW, it's in the froyo branch of CM as well).
I don't know about HebVillain. The maker of the rom was made aware of the way I patched StaticLayout, so it may well be. Perhaps he also read your thread and applied the actual patches...
I noticed that in one of your commits:
http://github.com/dudyk/android_fra...0aca31c3e03a5a323276cd15a8df4203a1792c#diff-5
You added "native" to drawText. It is exactly the function in that line that is throwing the error on boot - about not being native. I tried recompiling with that particular change reversed, but it did not make a difference. Can you investigate the matter? Perhaps the way the Nexus 1 boots is different than that of other devices, and the checks are not as strict. If this is indeed a code problem, perhaps it needs to be addressed for the patch to be viable for other devices.
Take everything I say with a grain of salt - I am no programmer. Just following what I read and understand.
I have no idea if this helps, but googling the words
android registernatives
results in quite a few technical posts complaining about similar problems...
I am sorry for being a nag. But I hope I am getting closer to the source of the problem.
The Android emulator was able to boot up just fine with the patches applied. The logcat stated at the beginning of the runtime:
Code:
D/AndroidRuntime( 29): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
D/AndroidRuntime( 29): CheckJNI is ON
I/ ( 30): ServiceManager: 0xad08
D/AudioHardwareInterface( 30): setMode(NORMAL)
I/CameraService( 30): CameraService started: pid=30
The very same smali files, when applied to the HTC Desire's framework, generated the native error I quoted before. But logcat shows that the beginning of its runtime is indeed different:
Code:
D/AndroidRuntime( 197): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
D/AndroidRuntime( 197): CheckJNI is OFF
D/dalvikvm( 197): Precise GC configured ON
D/dalvikvm( 197): creating instr width table
I/dalvikvm( 197): mlock: /data/dalvik-cache/[email protected]@[email protected], fd=7
So - how do we make the Desire, or any other device, turn on CheckJNI and turn off precise GC?
EDIT: In one of CM's change logs it was written that Precise GC was turned off because of its memory consumption. I am just assuming that this is indeed the cause for my problems. How can we check it?
CheckJNI and Precise GC don't matter.
Repatched and recompiled 2.2 source. The emulator runs beautifully with or without JNI checks. My HTC desire, with a 2.2 rom, still complains about the same function not being native.
The port dudyk did to Omri Baumer's patch works partially - the numbers are not reversed, but the whole line is aligned to the left (with hebrew text appearing to the left of the number, instead of the right).
I have no idea what else to do or to check.
i tried the latest cm6 nightly build and still it won't align Arabic RTL correctly.. it aligns it as LTR and there no reshaping as well....

[APP] Reset Wear Client - Switch phones without factory reset

Android Wear allows pairing to a new/second phone only after you perform factory reset of Android Wear: "You can switch which phone or tablet your watch is paired with, but you need to reset your watch to factory settings first. Then you can pair your watch to the new phone or tablet." Google Support
It's ok for most people but some just have more devices and want to switch them from time to time. Performing factory reset means compiling apps to aot, retransferring all apps the need to reconfigure all apps (Wear Mini Launcher, anyone?).
There used to be an app BeeLink but it stopped working and was removed.
There's actually way faster way how to set up connection with a new phone - in a minute. Just delete application data of "Google Play Services Wearable" app and reboot. All the 3rd party apps with their configurations, all watch faces with configurations, Google Fit data, and basically everything else will be kept.
Step by step
Wear is connected with phone A so turn off Bluetooth on this phone.
Execute following command on Wear (with ADB enabled - doesn't require root) or run attached app (root on watch required).
Code:
adb shell "pm clear com.google.android.gms && reboot"
Power on Bluetooth on phone B.
Depending whatever devices were paired previously, confirm pairing code or initiate new pairing using following command (thanks @matejdro) or also use the wear app for that
Code:
adb shell "am start -a android.bluetooth.adapter.action.REQUEST_DISCOVERABLE"
Finish setup, let it work for some time and restart both phone B and your watch to properly apply all changes. Done.
Attached apk is for installation on mobile phone (it contains and installs the actual Wear app). It's not on Play Store yet. Let's try it and get some feedback first.
Hi,
Thanks for making this for those of us who know nothing about adb. Unfortunately, I could not get this to work, but I'm certain the error is at my end. I downloaded and installed your apk, but I can't get it to open or find it in the app drawer. Excuse my ignorance. Could you please inform me as to how I can run the apk after installation? I downloaded it on to phone B, which does not have android wear installed, as per your instructions. However, I never got passed step 2 of your guide for the above mentioned reason.
Thank you kindly
moneytoo said:
Android Wear allows pairing to a new/second phone only after you perform factory reset of Android Wear: "You can switch which phone or tablet your watch is paired with, but you need to reset your watch to factory settings first. Then you can pair your watch to the new phone or tablet." Google Support
It's ok for most people but some just have more devices and want to switch them from time to time. Performing factory reset means compiling apps to aot, retransferring all apps the need to reconfigure all apps (Wear Mini Launcher, anyone?).
There used to be an app BeeLink but it stopped working and was removed.
There's actually way faster way how to set up connection with a new phone - in a minute. Just delete application data of "Google Play Services Wearable" app and reboot. All the 3rd party apps with their configurations, all watch faces with configurations, Google Fit data, and basically everything else will be kept.
Run the following command on your pc (with Wear connected and ADB enabled - this doesn't require root) or use my app for switching on-the-go (it requires root on Wear).
Code:
adb shell "pm clear com.google.android.gms && reboot"
Step by step
Wear is connected with phone A so turn off Bluetooth on this phone.
Execute above command or run attached app (root required).
Power on Bluetooth on phone B.
Depending whatever devices were paired previously, confirm pairing code or initiate new pairing.
Done.
Attached apk is for installation on mobile phone (it contains and installs the actual Wear app). It's not on Play Store yet. Let's try it and get some feedback first.
Click to expand...
Click to collapse
rekil goth said:
Hi,
Thanks for making this for those of us who know nothing about adb. Unfortunately, I could not get this to work, but I'm certain the error is at my end. I downloaded and installed your apk, but I can't get it to open or find it in the app drawer. Excuse my ignorance. Could you please inform me as to how I can run the apk after installation? I downloaded it on to phone B, which does not have android wear installed, as per your instructions. However, I never got passed step 2 of your guide for the above mentioned reason.
Thank you kindly
Click to expand...
Click to collapse
this App needs to be Sync'd to the watch so download it to Phone A, which is already paired.
wait until it syncs or manually sync Apps in Wear App on phone A.
when it's availalbe on your watch, then start this procedure.
hmm, just tried this (both ADB command and App installed on watch) with a new phone and I couldn't get it to pair. had to do the watch reset
Not working for me either. Will try the adb route when I can and report back
Finally a solution to my problem.
When i flash a new ROM i have to pair my moto 360 again... And to do this i allways do a reset on my watch...
Next time i will try it and give a feedback.
Not working on moto 360 5.0.2, rooted?
I was trying to figure out this one, but could not found proper app to clear. I cleared GMS, Wear launcher, settings etc. and nothing helped. In the end I found this solution which is even better IMO:
Code:
adb shell am start -a android.bluetooth.adapter.action.REQUEST_DISCOVERABLE
After executing above code via ADB, dialog will pop up on wear asking if you want to make watch discoverable. Then you can find and pair it to any phone.
matejdro said:
I was trying to figure out this one, but could not found proper app to clear. I cleared GMS, Wear launcher, settings etc. and nothing helped. In the end I found this solution which is even better IMO:
Code:
adb shell am start -a android.bluetooth.adapter.action.REQUEST_DISCOVERABLE
After executing above code via ADB, dialog will pop up on wear asking if you want to make watch discoverable. Then you can find and pair it to any phone.
Click to expand...
Click to collapse
Hi, my SW3 was connected to my Mi 4, setup done and working fine. I used Titanium Backup to backup Android Wear and all the watch faces apps.
After I flashed a new custom ROM, used Titanium Backup to restore Android Wear and watch face apps, and also Bluetooth connections on my Mi 4. When SW 3 is connected to my computer, in Adb, it says unauthorised.
Since it is unauthorized, I can't run the ADB command.
Any suggestions?
I don't think there is anything you can do at this point. You should have authorized your PC when you still had working watch connection.
any plans to update it
matejdro said:
I was trying to figure out this one, but could not found proper app to clear. I cleared GMS, Wear launcher, settings etc. and nothing helped. In the end I found this solution which is even better IMO:
Code:
adb shell am start -a android.bluetooth.adapter.action.REQUEST_DISCOVERABLE
After executing above code via ADB, dialog will pop up on wear asking if you want to make watch discoverable. Then you can find and pair it to any phone.
Click to expand...
Click to collapse
Using Minimal ADB, I had to run as admin to make this work, but then it worked perfectly. Thanks very much!
nothing. doesn't work with 5.1.1 g watch rooted, the app gives me black screen (dismissable with swipe)
Just using app from OP is apparently not enough anymore on 5.1.1.
I just made tutorial on reddit on how to reset 5.1.1 watch: https://www.reddit.com/r/AndroidWear/comments/3c4qf8/tip_how_to_switch_phones_without_hard_reset/
I updated the Wear app (v0.2) with support for requesting Bluetooth discoverable mode as well.
Did you guys see this: https://developer.android.com/training/wearables/apps/bt-debugging.html
Yes! I'm so glad something like this has been developed! Worst part about switching ROMs is resetting android wear now. Thanks so much!
Performed the clean in the watch.
It works, and is possible to link the watch with another phone without perform a data wipe.
Then only problem that I've encontered is that the installed watchfaces aren't visible in the Android wear app (in the phone), and I can't set from the phone or hide some.
Thanks
EDIT: Sometimes, due to the watchfaces issue, Android wear app UI generates a FC
Code:
E/AndroidRuntime( 6255): FATAL EXCEPTION: main
E/AndroidRuntime( 6255): Process: com.google.android.wearable.app, PID: 6255
E/AndroidRuntime( 6255): java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.content.ComponentName.equals(java.lang.Object)' on a null object reference
E/AndroidRuntime( 6255): at com.google.android.clockwork.companion.WatchFacePreviewFragment.loadWatchFaces(WatchFacePreviewFragment.java:261)
E/AndroidRuntime( 6255): at com.google.android.clockwork.companion.WatchFacePreviewFragment.onWatchFacesLoaded(WatchFacePreviewFragment.java:209)
E/AndroidRuntime( 6255): at com.google.android.clockwork.companion.watchfaces.WatchFaceLoadTask.onPostExecute(WatchFaceLoadTask.java:198)
E/AndroidRuntime( 6255): at com.google.android.clockwork.companion.watchfaces.WatchFaceLoadTask.onPostExecute(WatchFaceLoadTask.java:33)
E/AndroidRuntime( 6255): at android.os.AsyncTask.finish(AsyncTask.java:636)
E/AndroidRuntime( 6255): at android.os.AsyncTask.access$500(AsyncTask.java:177)
E/AndroidRuntime( 6255): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:653)
E/AndroidRuntime( 6255): at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime( 6255): at android.os.Looper.loop(Looper.java:135)
E/AndroidRuntime( 6255): at android.app.ActivityThread.main(ActivityThread.java:5293)
E/AndroidRuntime( 6255): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime( 6255): at java.lang.reflect.Method.invoke(Method.java:372)
E/AndroidRuntime( 6255): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
E/AndroidRuntime( 6255): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
W/ActivityManager( 829): Force finishing activity 1 com.google.android.wearable.app/com.google.android.clockwork.companion.StatusActivity
bartito said:
Performed the clean in the watch.
It works, and is possible to link the watch with another phone without perform a data wipe.
Then only problem that I've encontered is that the installed watchfaces aren't visible in the Android wear app (in the phone), and I can't set from the phone or hide some.
Thanks
EDIT: Sometimes, due to the watchfaces issue, Android wear app UI generates a FC
Code:
E/AndroidRuntime( 6255): FATAL EXCEPTION: main
E/AndroidRuntime( 6255): Process: com.google.android.wearable.app, PID: 6255
E/AndroidRuntime( 6255): java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.content.ComponentName.equals(java.lang.Object)' on a null object reference
E/AndroidRuntime( 6255): at com.google.android.clockwork.companion.WatchFacePreviewFragment.loadWatchFaces(WatchFacePreviewFragment.java:261)
E/AndroidRuntime( 6255): at com.google.android.clockwork.companion.WatchFacePreviewFragment.onWatchFacesLoaded(WatchFacePreviewFragment.java:209)
E/AndroidRuntime( 6255): at com.google.android.clockwork.companion.watchfaces.WatchFaceLoadTask.onPostExecute(WatchFaceLoadTask.java:198)
E/AndroidRuntime( 6255): at com.google.android.clockwork.companion.watchfaces.WatchFaceLoadTask.onPostExecute(WatchFaceLoadTask.java:33)
E/AndroidRuntime( 6255): at android.os.AsyncTask.finish(AsyncTask.java:636)
E/AndroidRuntime( 6255): at android.os.AsyncTask.access$500(AsyncTask.java:177)
E/AndroidRuntime( 6255): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:653)
E/AndroidRuntime( 6255): at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime( 6255): at android.os.Looper.loop(Looper.java:135)
E/AndroidRuntime( 6255): at android.app.ActivityThread.main(ActivityThread.java:5293)
E/AndroidRuntime( 6255): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime( 6255): at java.lang.reflect.Method.invoke(Method.java:372)
E/AndroidRuntime( 6255): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
E/AndroidRuntime( 6255): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
W/ActivityManager( 829): Force finishing activity 1 com.google.android.wearable.app/com.google.android.clockwork.companion.StatusActivity
Click to expand...
Click to collapse
Did you also try reseting app data of both Android Wear and Google Play on the phone (& restart)?
moneytoo said:
Did you also try reseting app data of both Android Wear and Google Play on the phone (& restart)?
Click to expand...
Click to collapse
yes, performed a reboot in the wear and also a wipe in the phone

[1.117.0306] Latest Gear Fit Manager non-Samsung + Endomondo [4.x/5.x compatible]

Hello,
I've patched the current version of the Gear Fit Manager (v. 1.117.0306) built on 2015, March 06 and released at the end of March.
Links updated on 2015, April 19. Calls are fixed. I'm investigating on the issue with Lollipop 5.1 .
Test version for 5.1 : https://mega.co.nz/#!bEdXAQhb!i5hxkgyzEI43fBWa6ThfIiPUI2U2V2gdVeXY5AGWHg8 [Test 1 - try to use the 5.1 API]
https://mega.co.nz/#!GFcHUAhI!snmHX91S4PJwJZlPtCTMDUjOv36EKeaaKrS54UX2PtY [Test 2 - try to bypass one section]
This version is based on the last official Samsung version compatible with Lollipop. I patched the apk to be compatible with non Samsung phones. To install this version you need to install the following packages (I advice you to install in that order).
Gear Fit Manager and requirements
This firmware to update with Odin: R350XXU0BOA2
https://mega.co.nz/#!qUskxIDL!wexEZQTZ6t6wk0jO6dv1JDsdT6oCDYBxlegMb-MS6qc
This apk which is the main application: Gear Fit Manager
https://mega.co.nz/#!nI0UyJJD!zYFvTolgxAgL39ydX9ZgHCson5K2TJxMx9_-BKOa--A
This apk which contains required components: Gear Fit Installer (it's actually embedded into the second apk but it has to be installed manually)
https://mega.co.nz/#!mFknlTZB!iIB7DWPQC5ECiPlNcum0JXpcJRuE4XmI7v6Drchgk3Y
Your build.prop must NOT contain "samsung", just keep the default values for your device.
App Connect Applications :
Endomondo 11.0.3:
https://mega.co.nz/#!Kd82hawL!lGt2pJbBCfvO7bQ52fI4VgtOufMHLQVEozqWt7ziY84
To connect via Facebook you need to delete the app from your profile (https://www.facebook.com/help/170585223002660) if you already used it before, else you will have a login loop. The normal login via mail also works.
Endomondo is not able to use the Heart Rate monitor from the watch, this is normal (https://support.endomondo.com/hc/en-us/articles/201784416-SmartWatches#gear).
Calculator 2.0:
https://mega.co.nz/#!jFNDQDoJ!oIqRjQY_4oBrCMbygSB4HZfsAt7K1AWW2gg7KvTx1UA
I'll try to keep this topic up to date with the last version available on :
http://forum.xda-developers.com/showthread.php?t=2789503
I guarantee that the software is 100% safe. I will detail the reverse engineering done to make the new versions of the manager to work properly on non-Samsung devices.
Working :
Bluetooth connection
Clocks
Notifications
Media control
Custom clocks
Heart Rate
Reject Calls
SMS Quick Reply
Find my phone
Partially working :
App Connect (the manager cannot be signed properly so you will always get the "You should install Gear Fit Manager application first" message. This can be fixed but no so easily (the app have to be patched to not check the signature). If you want an app, post the apk here and I will patch this app.
Not working :
Anything related to SHealth / Weather as it requires Touchwiz (Endomondo is a good SHealth alternative)
Updates
19/04/2015 : Added Endomondo and Calculator apps.
19/04/2015 : Crash when receiving calls fixed.
Thanks for baking this. I can live without the weather, but I miss the caller ID notifications.
This isn't working on my 5.1 Nexus 6. I get a force close upon opening it. Firmware is at BOA2 and I installed the smaller file, then the first. Anything I can do to help troubleshoot this? It was a clean install on this phone.
It should work with 5.0.2 (tested with my OnePlus One with OxygenOS). I never tried with 5.1 yet. Could you send me a logcat please ? If it's a force close on launch I think it should be fixable.
koalala said:
Hello,
I've patched the current version of the Gear Fit Manager (v. 1.117.0306) built on 2015, March 06 and released at the end of March.
This version is based on the last official Samsung version compatible with Lollipop. I patched the apk to be compatible with non Samsung phones. To install this version you need to install :
- This firmware with Odin (R350XXU0BOA2) :
https://mega.co.nz/#!WFF2XaAD!slUq8FE4D3cvTCIMrI4THnOPlR2GBttRLRyOgm379r8
- This apk which contains required components : Gear Fit Installer (it's actually embedded into the second apk but it has to be installed manually)
https://mega.co.nz/#!mFknlTZB!iIB7DWPQC5ECiPlNcum0JXpcJRuE4XmI7v6Drchgk3Y
- This apk which is the main application : Gear Fit Manager
https://mega.co.nz/#!WFF2XaAD!slUq8FE4D3cvTCIMrI4THnOPlR2GBttRLRyOgm379r8
Your build.prop must NOT contain "samsung", just keep the default values for your device.
I'll try to keep this topic up to date with the last version available on :
http://forum.xda-developers.com/showthread.php?t=2789503
I guarantee that the software is 100% safe. I will detail the reverse engineering done to make the new versions of the manager to work properly on non-Samsung devices.
Working :
Bluetooth connection
Clocks
Notifications
Media control
Custom clocks
Heart Rate
Reject Calls
Find my phone
Partially working :
App Connect (the manager cannot be signed properly so you will always get the "You should install Gear Fit Manager application first" message. This can be fixed but no so easily (the app have to be patched to not check the signature). If you want an app, post the apk here and I will patch this app.
Not working :
Anything related to SHealth / Weather as it requires Touchwiz
Click to expand...
Click to collapse
So great. I waiting for a long time
Will re-install Lolipop on my 6653 and feedback to you soon.
Again, thanks you
Update: Could you please update the frimware link? My gear fit running R350XXU0BNG2 and CAN NOT pair with my Sony Z3 D6653
Thank you for the remark I didn't see that the hyperlink was broken. It's corrected now, you can download the last firmware.
works
wish endomondo can be work in this version could u plz patch this app?? ... btw thank you for your big help:good::good::good:~ it works on my android 5.0 phone. i flash my gear firm by odin3.0.9.5 in csc bar
Log Cat from Stock 5.1 Nexus 5
koalala said:
It should work with 5.0.2 (tested with my OnePlus One with OxygenOS). I never tried with 5.1 yet. Could you send me a logcat please ? If it's a force close on launch I think it should be fixable.
Click to expand...
Click to collapse
Code:
D/AndroidRuntime(19780): Shutting down VM
E/AndroidRuntime(19780): FATAL EXCEPTION: main
E/AndroidRuntime(19780): Process: com.samsung.android.wms, PID: 19780
E/AndroidRuntime(19780): java.lang.RuntimeException: Unable to create service com.samsung.android.wms.service.WingtipManagerService: java.lang.ClassCastException: int[] cannot be cast to long[]
E/AndroidRuntime(19780): at android.app.ActivityThread.handleCreateService(ActivityThread.java:2771)
E/AndroidRuntime(19780): at android.app.ActivityThread.access$1800(ActivityThread.java:151)
E/AndroidRuntime(19780): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1386)
E/AndroidRuntime(19780): at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime(19780): at android.os.Looper.loop(Looper.java:135)
E/AndroidRuntime(19780): at android.app.ActivityThread.main(ActivityThread.java:5254)
E/AndroidRuntime(19780): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(19780): at java.lang.reflect.Method.invoke(Method.java:372)
E/AndroidRuntime(19780): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
E/AndroidRuntime(19780): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
E/AndroidRuntime(19780): Caused by: java.lang.ClassCastException: int[] cannot be cast to long[]
E/AndroidRuntime(19780): at com.samsung.android.wms.service.notification.CallAdapterForLollipop.registerPhoneStateListener(CallAdapterForLollipop.java:150)
E/AndroidRuntime(19780): at com.samsung.android.wms.service.notification.CallAdapterForLollipop.onCreate(CallAdapterForLollipop.java:110)
E/AndroidRuntime(19780): at com.samsung.android.wms.service.WingtipManagerService.initAdapters(WingtipManagerService.java:1641)
E/AndroidRuntime(19780): at com.samsung.android.wms.service.WingtipManagerService.onCreate(WingtipManagerService.java:1275)
E/AndroidRuntime(19780): at android.app.ActivityThread.handleCreateService(ActivityThread.java:2761)
E/AndroidRuntime(19780): ... 9 more
W/ActivityManager( 738): Force finishing activity 1 com.samsung.android.wms/.app.base.ContentsActivity
I/WindowManager( 738): Screenshot max retries 4 of Token{26383230 ActivityRecord{b658373 u0 com.samsung.android.wms/.app.base.ContentsActivity t689 f}} appWin=Window{2394e09a u0 com.samsung.android.wms/com.samsung.android.wms.app.base.ContentsActivity} drawState=1
I/OpenGLRenderer( 738): Initialized EGL, version 1.4
W/ActivityManager( 738): Activity pause timeout for ActivityRecord{b658373 u0 com.samsung.android.wms/.app.base.ContentsActivity t689 f}
W/LocationOracleImpl(17839): Best location was null
W/ResourceType( 1111): No package identifier when getting value for resource number 0x00000000
W/PackageManager( 1111): Failure retrieving resources for com.samsung.android.wms: Resource ID #0x0
D/TaskPersister( 738): removeObsoleteFile: deleting file=687_task_thumbnail.png
D/PhoneStatusBar( 1111): disable: < expand ICONS* alerts SYSTEM_INFO* back home recent clock search >
D/NuPlayerDriver( 188): stop(0xb590d8e0)
W/MessageQueue( 1111): Handler (android.media.MediaPlayer$EventHandler) {36f23de2} sending message to a Handler on a dead thread
W/MessageQueue( 1111): java.lang.IllegalStateException: Handler (android.media.MediaPlayer$EventHandler) {36f23de2} sending message to a Handler on a dead thread
W/MessageQueue( 1111): at android.os.MessageQueue.enqueueMessage(MessageQueue.java:325)
W/MessageQueue( 1111): at android.os.Handler.enqueueMessage(Handler.java:631)
W/MessageQueue( 1111): at android.os.Handler.sendMessageAtTime(Handler.java:600)
W/MessageQueue( 1111): at android.os.Handler.sendMessageDelayed(Handler.java:570)
W/MessageQueue( 1111): at android.os.Handler.sendMessage(Handler.java:507)
W/MessageQueue( 1111): at android.media.MediaPlayer.postEventFromNative(MediaPlayer.java:2670)
D/NuPlayerDriver( 188): reset(0xb590d8e0)
D/NuPlayerDriver( 188): notifyResetComplete(0xb590d8e0)
I/ActivityManager( 738): Process com.google.android.apps.docs (pid 17663) has died
D/PhoneStatusBar( 1111): disable: < expand icons* alerts system_info* back home recent clock search >
koalala said:
Hello,
I've patched the current version of the Gear Fit Manager (v. 1.117.0306) built on 2015, March 06 and released at the end of March.
Click to expand...
Click to collapse
Thank you very much. It works on my Nexus 4 with 5.0.1 stock.
I think my logcat is saying the same thing as the previous one.
[Nexus 6 w/ 5.1 ROM]
Code:
[ 04-10 18:34:15.309 4238: 4238 E/AndroidRuntime ]
FATAL EXCEPTION: main
Process: com.samsung.android.wms, PID: 4238
java.lang.RuntimeException: Unable to create service com.samsung.android.wms.service.WingtipManagerService: java.lang.ClassCastException: int[] cannot be cast to long[]
at android.app.ActivityThread.handleCreateService(ActivityThread.java:2771)
at android.app.ActivityThread.access$1800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1386)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: java.lang.ClassCastException: int[] cannot be cast to long[]
at com.samsung.android.wms.service.notification.CallAdapterForLollipop.registerPhoneStateListener(CallAdapterForLollipop.java:150)
at com.samsung.android.wms.service.notification.CallAdapterForLollipop.onCreate(CallAdapterForLollipop.java:110)
at com.samsung.android.wms.service.WingtipManagerService.initAdapters(WingtipManagerService.java:1641)
at com.samsung.android.wms.service.WingtipManagerService.onCreate(WingtipManagerService.java:1275)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:2761)
... 9 more
Working on Xperia Z2 android 4.4.2 stock/rooted
This is my first attempt to make the gear fit work on a non-samsung device and it's working as informed. Was hoping to get endomondo working thru appconnect, so I'm also looking forward for that patch. Congratulations koalala on this accomplishment and keep up the good work!
This seems to be working on my Nexus 5. Thanks a bunch!
bugs found
Incoming call notify doesn't work. Gear fit will disconnect when there is incoming call and so as the gear for manager
Hi man! You have my all attention
I have Lenovo A806 with Mediatek and Android 4.4.2. It's not possible to connect. Pairing is ok. Logcat is included and I will help you as much as I can, so don't hesitate contact me.
Logcat from line 2381 I think.
Thank you very much!!
Hi, I´m trying to use the app "gear fit share", but i don´t know how i can signed (it show "the manager is not signed" message).
How can i do it?
Is there any tutorial for this?
Thanks!!!
Search tutorial in thread "gear fit manager on non Samsung devices" on xda
Sent from my nexus 4 using XDA Free mobile app
1.117.030622
I have stock rooted Sprint phone and got the 1.117.030622 update and it won't connect anymore. I tried resetting everything still no luck.
hi
followed instructions and the firmware B02 by odin
installed apks, paired with my phone, but it stays on "connect to the device" when in the app, it cant go to the gear
any idea?
logcat joined if any help?
Incoming call notify doesn't work,nexus 4 aicp 5.0.2
hi, i want to use the app "gear fit launcher" to launch tasker shortcuts.
It was hard to find the apk because it isn't available at the playstore anymore.
sadly if i try to activate the app it says "manager not signed"
is there any way to get around this?
if you need the apk, i can upload it for you
adrian_cwchow said:
Incoming call notify doesn't work. Gear fit will disconnect when there is incoming call and so as the gear for manager
Click to expand...
Click to collapse
I have the same problem with my sony xperia z3 compact with 5.0.2

[Xposed] Battery Shutdown Manager

Battery Shutdown Manager
Download @ Google Play
​
Do you know that moment when you're on 1% of battery and think "I'll just use my device 20 more seconds then I'll get my charger" - and at exactly that moment it'll switch to 0% and you'll see the threaded "Shutting down" dialog and know it's too late now?
This Xposed module will help by showing you a dialog with a countdown before the actual shutdown, so you'll have time to attach your charger.
The module achieves this by postponing the shutdown for a couple of seconds to give you time to connect the charger.
Please post any kind of feedback or ideas you have regarding this app :fingers-crossed:
I tested the module a lot but can't possibly test it for all those different phones and versions out there.
Thus I will flag it as beta for now so you can provide feedback before I'll release the 1.0 version.
It would be great if some more people could test it. I used the StabilityTest app to quickly drain my battery down to 0%.
Compatibility:
I wrote this module and tested it with AOSP devices as well as on Cyanogenmod.
It should work without any issues on all Nexus and Google Play Edition devices from Android 4.2 to 5.1+.
As almost all Custom ROMs are based on either AOSP or CM they should work without issues, too.
Some vendors might have changed the original code and thus render this module incompatible on their device. Nothing bad will happen when you install it, it just won't work.
Compatible:
Nexus / AOSP / GPE ROMs
Cyanogenmod
Almost all custom ROMs (as they're usually either based on AOSP or CM)
Sony Stock ROMs
Not compatible:
Currently not working for LG Stock ROMs due to internal code changes by LG.
Android devices <4.2. Support for Android 4.0.3+ and 4.1 might be added when I see a greater demand for it.
Installation:
- Download the app
- Activate the module in the Xposed Insaller
- Reboot your device
- Open the app to change it's options to your liking
Bugs/Issues:
If you encounter any bugs just report them here and I'll try to fix them. Always include as much information as possible, including your device model, android version and exact ROM details.
Note that I will most likely need a log to fix the issue, a generic "doesn't work on phone xyz" won't help me fixing the issues.
There are two possibilities to get a log.
Use the Catlog app. In the app press Menu > Record Log before the device shuts down, then attach the logcat to your bugreport.
Alternatively you need to use adb to grab the log.
Unfortunately logging is a bit more complicated for this module as the interesting part happens on shutdown.
The best solution (and what I do personally for debugging this app) is to use ADB over WiFi (e.g. with this app) and grab the log.
Download:
Google Play Store
Xposed Module Repository
Google+:
www.google.com/+thetonyp
Last but not least an obligatory huge thanks to @rovo89 for his amazing Xposed framework!
If you like this module don't forget to press thanks, rate this thread with 5 stars, consider a donation etc. etc.
:fingers-crossed:​

			
				
I love your icon pack!
Tried it on my cm12.1. No bootloops here. Will edit after full uncharging
EDIT: Turned turning on full brightness, hot spot, gps, flashlight, mobile data, etc... Still 8% to go. Your module and me are waiting eagerly lol
EDIT2: Finally reached 0
And tonyp, I am pleased to say your module works in cm12.1
Suggestion: Make the dialog box closable. So if I am playing a game or writing to a File I can save my progress. Hope you understand.
And I appreciate your idea. Well implemented.
And do you mind sharing that icon pack :hungry:
Samsung galaxy s3 i9300 4.3 mk6 stock rom, bootloops.
Sent from a stolen phone!
Bootloop on Nexus 4, Stock Android 4.3.3...
EDIT Because OP asked how the bootloop occurs on Nexus 4, Android 4.3.3:
Bootloop occurs after activating module and normal (not soft) reboot.
Before reboot app can be runned and configurated.
I have no log app running, so I'm not able to deliver logs.
Yes, please send me a logcat. Bootloops are great, then you can just get the log after the reboot. I literally can't do anything without a log.
mobihack said:
Tried it on my cm12.1. No bootloops here. Will edit after full uncharging
EDIT: Turned turning on full brightness, hot spot, gps, flashlight, mobile data, etc... Still 8% to go. Your module and me are waiting eagerly lol
EDIT2: Finally reached 0
And tonyp, I am pleased to say your module works in cm12.1
Suggestion: Make the dialog box closable. So if I am playing a game or writing to a File I can save my progress. Hope you understand.
And I appreciate your idea. Well implemented.
And do you mind sharing that icon pack :hungry:
Click to expand...
Click to collapse
Thanks for the feedback, then I will add 5.1 to the compatibility at the Play Store.
Regarding the closable dialog, I made it non closable on purpose but I'll consider adding an experimental feature to change that. At first I'd like to fix the bugs, though.
tonyp said:
Thanks for the feedback, then I will add 5.1 to the compatibility at the
Regarding the closable dialog, I made it non closable on purpose but I'll consider adding an experimental feature to change that. At first I'd like to fix the bugs, though.
Click to expand...
Click to collapse
More suggestions:
Add some animations to the dialog
Add option for an alert tune or notification 1min before
Add buttons to dialog box for shutdown(sometimes I dont like to wait)[optional]
Happy with what you had already done and you forgot me an icon pack
bootloops
Bootloop on MMX Canvas Magnus stock ROM (JB 4.2.1)
akhilkbaby said:
Bootloop on MMX Canvas Magnus stock ROM (JB 4.2.1)
Click to expand...
Click to collapse
I'd like to fix the issue, could you kindly send me a logcat of the bootloop?
Unfortunately there is literally nothing I could possibly do without a log.
mobihack said:
More suggestions:
Add some animations to the dialog
Add option for an alert tune or notification 1min before
Add buttons to dialog box for shutdown(sometimes I dont like to wait)[optional]
Happy with what you had already done and you forgot me an icon pack
Click to expand...
Click to collapse
I'm using the stock dialog which guarantees the highest possible compatibility with other devices.
Regarding the notification, I don't know when the battery will be empty before, so there's no way to display a message one minute before. All I could do is starting the dialog at 1% (which I'm considering for a future version), but that would be quite different.
I like the idea for a shutdown button, an option to include that will be in an upcoming version.
Oh, true, the icon pack is called etched material.
Phone freezes when I get a notification from an app. Specifically when I get a notification from Messenger(Facebook app). Is it possible to grab a log if it freezes and I have to restart?
And to make sure it wasn't anything else, I uninstalled it and the freezing stopped.
Galaxy S4 4.4.2 Stock ROM w/ Root
Thanks
HydraS4 said:
Phone freezes when I get a notification from an app. Specifically when I get a notification from Messenger(Facebook app). Is it possible to grab a log if it freezes and I have to restart?
And to make sure it wasn't anything else, I uninstalled it and the freezing stopped.
Galaxy S4 4.4.2 Stock ROM w/ Root
Thanks
Click to expand...
Click to collapse
This sounds very strange, the module is only hooking into one class which has nothing to do with receiving messages.
Yes, usually it works to log the freeze, just start logging (best would be with adb logcat) before it happens.
Can not install on 4.1
I am trying to install it on my xperia x10 running cm10 but it does not install. Please help me so that I can test the module on it.
I am also experiencing odd behavior on CM 11 M11 on two devices: Nexus 5 and 10.
The behavior I'm seeing is that when the battery is running low, the dialog shows up.
When the countdown completes, the device then reboots (seems to be doing a soft boot) instead of shutting down.
I am running some experiments, on a Nexus 4 and I'm hoping to capture a logcat.
---------- Post added at 02:41 PM ---------- Previous post was at 01:49 PM ----------
Fif_ said:
I am running some experiments, on a Nexus 4 and I'm hoping to capture a logcat.
Click to expand...
Click to collapse
There we go, I have it.
This is a logcat of the behavior I was describing earlier: after the countdown, the system performs a soft reboot instead of shutting down.
I have seen this behavior on Nexus 4/5/10 (mako/hammerhead/manta) on CM11 M11.
The logcat below is on a Nexus 4 running CM11 M11 and Battery Shutdown Manager 0.93:
Code:
I/Xposed ( 1726): BatterySM: invokeOriginalMethod. batteryLevel=2, isPoweredLocked=false, chosenTime=30, alertDialog=null, showedDialog=false, prefScreenOff=false, isScreenOn=true
I/Xposed ( 1726): BatterySM: Showing dialog. batteryLevel=0, isPoweredLocked=false, chosenTime=30, alertDialog=null, showedDialog=true, prefScreenOff=false, isScreenOn=true
I/Xposed ( 1726): BatterySM: AlertDialog is showing, postpone shutdown. batteryLevel=0, isPoweredLocked=false, chosenTime=30, alertDialog=true, showedDialog=true, prefScreenOff=false, isScreenOn=true
I/Xposed ( 1726): BatterySM: AlertDialog is showing, postpone shutdown. batteryLevel=0, isPoweredLocked=false, chosenTime=30, alertDialog=true, showedDialog=true, prefScreenOff=false, isScreenOn=true
D/SystemPanel( 4621): Recorder Update, force=false
I/Xposed ( 1726): BatterySM: AlertDialog is showing, postpone shutdown. batteryLevel=0, isPoweredLocked=false, chosenTime=30, alertDialog=true, showedDialog=true, prefScreenOff=false, isScreenOn=true
D/SystemPanel( 4621): Recorder Update, force=false
I/Xposed ( 1726): BatterySM: AlertDialog is showing, postpone shutdown. batteryLevel=0, isPoweredLocked=false, chosenTime=30, alertDialog=true, showedDialog=true, prefScreenOff=false, isScreenOn=true
D/SystemPanel( 4621): Recorder Update, force=false
I/Xposed ( 1726): BatterySM: Dismiss dialog
W/InputMethodManagerService( 1726): Window already focused, ignoring focus gain of: [email protected] attribute=null, token = [email protected]
D/AndroidRuntime( 1726): Shutting down VM
W/dalvikvm( 1726): threadid=1: thread exiting with uncaught exception (group=0x415e4ce0)
E/AndroidRuntime( 1726): *** FATAL EXCEPTION IN SYSTEM PROCESS: main
E/AndroidRuntime( 1726): java.lang.NoSuchMethodError: com.android.server.BatteryService#processValuesLocked(java.lang.Boolean)#bestmatch
E/AndroidRuntime( 1726): at de.robv.android.xposed.XposedHelpers.findMethodBestMatch(XposedHelpers.java:271)
E/AndroidRuntime( 1726): at de.robv.android.xposed.XposedHelpers.findMethodBestMatch(XposedHelpers.java:284)
E/AndroidRuntime( 1726): at de.robv.android.xposed.XposedHelpers.callMethod(XposedHelpers.java:947)
E/AndroidRuntime( 1726): at com.thetonyp.batteryshutdownmanager.BatteryDialog$2.onFinish(BatteryDialog.java:258)
E/AndroidRuntime( 1726): at android.os.CountDownTimer$1.handleMessage(CountDownTimer.java:118)
E/AndroidRuntime( 1726): at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime( 1726): at android.os.Looper.loop(Looper.java:136)
E/AndroidRuntime( 1726): at com.android.server.ServerThread.initAndLoop(SystemServer.java:1289)
E/AndroidRuntime( 1726): at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method)
E/AndroidRuntime( 1726): at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:631)
E/AndroidRuntime( 1726): at com.android.server.ServerThread.initAndLoop(Native Method)
E/AndroidRuntime( 1726): at com.android.server.SystemServer.main(SystemServer.java:1386)
E/AndroidRuntime( 1726): at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method)
E/AndroidRuntime( 1726): at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:631)
E/AndroidRuntime( 1726): at com.android.server.SystemServer.main(Native Method)
E/AndroidRuntime( 1726): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 1726): at java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime( 1726): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:732)
E/AndroidRuntime( 1726): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566)
E/AndroidRuntime( 1726): at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132)
E/AndroidRuntime( 1726): at dalvik.system.NativeStart.main(Native Method)
W/DropBoxManagerService( 1726): Dropping: system_server_crash (1667 > 0 bytes)
I/Process ( 1726): Sending signal. PID: 1726 SIG: 9
I've trimmed the logcat, but it's available to the dev in its entirety, if needed.
Mubasher96 said:
I am trying to install it on my xperia x10 running cm10 but it does not install. Please help me so that I can test the module on it.
Click to expand...
Click to collapse
The module currently requires Android 4.2 or higher. You can't install the module on CM10 as that is based on Android 4.1.
To support Android 4.0 and 4.1 I need to write some custom code which I need some people to test, so everyone interested in this module on a 4.0 or 4.1 device (including CM9 / CM10 etc of course) please write here or send me a PM and I'll contact you as soon as I have a version ready for testing! Can I count you in?
Fif_ said:
I am also experiencing odd behavior on CM 11 M11 on two devices: Nexus 5 and 10.
The behavior I'm seeing is that when the battery is running low, the dialog shows up.
When the countdown completes, the device then reboots (seems to be doing a soft boot) instead of shutting down.
I am running some experiments, on a Nexus 4 and I'm hoping to capture a logcat.
...
I've trimmed the logcat, but it's available to the dev in its entirety, if needed.
Click to expand...
Click to collapse
Thank you very much for the logcat! It contained exactly what I needed!
Thanks to that I identified the issue and pushed out a new version (0.94) to fix it.
It will probably take a couple hours in the Google Play Store to appear, in the meantime you can find the new version at the Xposed Repo or attached to this post.
Additionally this version fixes a potential bootloop cause for devices running Jellybean (4.2 / 4.3).
Could the affected people please test this and confirm? Again, if you manage to get me a log it will make it a lot easier for me to fix any issue whatsoever.
Changelog v0.94:
fixed a soft reboot on Kitkat devices when the countdown reaches 0
fixed a potential bootloop on Jellybean devices
Nice! This is so necessary… I'm gonna test it.
tonyp said:
Thank you very much for the logcat! It contained exactly what I needed!
I believe I identified the issue thanks to the log and pushed out a new version (0.94) to fix it.
It will probably take a couple hours in the Google Play Store to appear, in the meantime you can find the new version at the Xposed Repo or attached to this post.
Changelog v0.94:
fixed a soft reboot on Kitkat devices when the countdown reaches 0
fixed a potential bootloop on Jellybean devices
Click to expand...
Click to collapse
The 0.94 update fixes the soft-reboot after countdown problem for me on CM11 M11 for Nexus 5. I haven't checked the other devices, and won't be any time soon.
Also, I just bought the Pro version on one device.
The Pro option won't unlock on the other devices, I get a "You already own this item." Error.
@tonyp I'm using WSM Manager (Xposed for MIUI) , but this app still ask to download xposed installer. How to fix this?
Fif_ said:
The 0.94 update fixes the soft-reboot after countdown problem for me on CM11 M11 for Nexus 5. I haven't checked the other devices, and won't be any time soon.
Also, I just bought the Pro version on one device.
The Pro option won't unlock on the other devices, I get a "You already own this item." Error.
Click to expand...
Click to collapse
No worries, they're using the same codebase so it will work on all devices.
Thanks a lot for buying pro
That purchase should work on all devices of course sometimes it takes a little while to propagate at Google, when you still have the issue after a couple more hours could you please drop me a PM? I did test the IAP purchases with all possible ways Google offers for me, but unfortunately that's something that could be greatly improved on their side.
exodius48 said:
@tonyp I'm using WSM Manager (Xposed for MIUI) , but this app still ask to download xposed installer. How to fix this?
Click to expand...
Click to collapse
Ah, I didn't know there exists an alternative manager. I'm explicitly checking for the Xposed Installer. You can ignore the warning for now and I will push an update which recognizes the WSM Manager as well
No bootloops on moto g stock 5.0.2

Dolby_Atmos®_(BQ_Aquaris)

Hello! First of all I want to thank the people who make it possible to update Unity for the modules. I am trying to update this audio module is the first time I do this and I want to learn to make contributions. The application starts well but, it seems that there are problems with the libraries and audio server that do not allow me to run the application and the tutorial that is hard for me to understand. How is a large community maybe someone can help me in published oh private.
If you need the project to review it let me know and upload it to the forum.
java.lang.RuntimeException: Exception: unknown problem.
at com.dolby.api.DsBase.convertErrorCodeToException(DsBase.java:114)
at com.dolby.api.DsFocus.getState(DsFocus.java:267)
at com.dolby.dax2appUI.MainActivity.onClick(MainActivity.java:330)
at android.view.View.performClick(View.java:5619)
at android.view.View$PerformClick.run(View.java:22298)
at android.os.Handler.handleCallback(Handler.java:754)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:165)
at android.app.ActivityThread.main(ActivityThread.java:6375)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:802)

Categories

Resources