Related
I've been trying to compile AOSP apps individually and that doesn't seem to work. These are the steps I took:
1. Install GCC and Java
2. The repo commands (sync from android git etc)
3. make Gallery3D
4. push Gallery3D.apk /system/app/
So as you can see, compilation went on fine. And pushing to my phone also went fine (CM 5.0.4.1). However, when I try to run Gallery3D, I got FC. Here's my logcat:
I/ActivityManager( 93): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.cooliris.media/.Gallery }
V/RenderScript_jni( 6329): surfaceDestroyed
V/RenderScript( 6329): setSurface 0 0 0x0
D/ViewFlipper( 6329): updateRunning() mVisible=false, mStarted=true, mUserPresent=true, mRunning=false
D/LocationManager( 6198): removeUpdates: listener = [email protected]
D/NetworkLocationProvider( 93): removeListener(): wallpaper
D/NetworkLocationProvider( 93): enableLocationTracking(): false
E/NetworkLocationProvider( 93): releaseCheckLocationLock: wake lock has already been released
D/SensorManager(18699): found sensor: BMA150 3-axis Accelerometer, handle=0
D/SensorManager(18699): found sensor: AK8973 3-axis Magnetic field sensor, handle=1
D/SensorManager(18699): found sensor: AK8973 Orientation sensor, handle=2
D/SensorManager(18699): found sensor: CM3602 Proximity sensor, handle=4
D/SensorManager(18699): found sensor: CM3602 Light sensor, handle=5
W/ResourceType(18699): Failure getting entry for 0x7f02003a (t=1 e=58) in package 0: 0xffffffb5
D/AndroidRuntime(18699): Shutting down VM
W/dalvikvm(18699): threadid=3: thread exiting with uncaught exception (group=0x4001b178)
E/AndroidRuntime(18699): Uncaught handler: thread main exiting due to uncaught exception
E/AndroidRuntime(18699): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cooliris.media/com.cooliris.media.Gallery}: android.content.res.Resources$NotFoundException: Resource ID #0x7f02003a
E/AndroidRuntime(18699): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
E/AndroidRuntime(18699): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
E/AndroidRuntime(18699): at android.app.ActivityThread.access$2200(ActivityThread.java:119)
E/AndroidRuntime(18699): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
E/AndroidRuntime(18699): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(18699): at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime(18699): at android.app.ActivityThread.main(ActivityThread.java:4363)
E/AndroidRuntime(18699): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(18699): at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime(18699): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
E/AndroidRuntime(18699): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
E/AndroidRuntime(18699): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(18699): Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f02003a
E/AndroidRuntime(18699): at android.content.res.Resources.getValue(Resources.java:891)
E/AndroidRuntime(18699): at android.content.res.Resources.getDrawable(Resources.java:579)
E/AndroidRuntime(18699): at com.cooliris.media.HudLayer.<init>(HudLayer.java:121)
E/AndroidRuntime(18699): at com.cooliris.media.GridLayer.<init>(GridLayer.java:134)
E/AndroidRuntime(18699): at com.cooliris.media.Gallery.onCreate(Gallery.java:78)
E/AndroidRuntime(18699): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
E/AndroidRuntime(18699): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
E/AndroidRuntime(18699): ... 11 more
I/Process ( 93): Sending signal. PID: 18699 SIG: 3
I/dalvikvm(18699): threadid=7: reacting to signal 3
I/dalvikvm(18699): Wrote stack trace to '/data/anr/traces.txt'
I/DumpStateReceiver( 93): Added state dump to 1 crashes
Click to expand...
Click to collapse
Besides this, I noticed that my Gallery3D.apk is smaller size(~500kb) than the one which comes with CM (~700kb).
Any help guys? Been trying to figure this out and googling. What did I miss?
arctu said:
I've been trying to compile AOSP apps individually and that doesn't seem to work. These are the steps I took:
1. Install GCC and Java
2. The repo commands (sync from android git etc)
3. make Gallery3D
4. push Gallery3D.apk /system/app/
So as you can see, compilation went on fine. And pushing to my phone also went fine (CM 5.0.4.1). However, when I try to run Gallery3D, I got FC. Here's my logcat:
Besides this, I noticed that my Gallery3D.apk is smaller size(~500kb) than the one which comes with CM (~700kb).
Any help guys? Been trying to figure this out and googling. What did I miss?
Click to expand...
Click to collapse
Q&A section ma man
I believe this is the right section, it's a question on compiling/development. I believe Gallery3D might be lacking mdpi images, and you're compiling for mdpi devices (may be wrong, not able to check now).
What you can do is to do a search for "PRODUCT_LOCALES", within all your files, I think it's in build.mk or product.mk. You will see that the default is mdpi, follow by <something> (can't remember now) += nodpi. Add a <something> += hdpi after the nodpi line, and compile and push again. I had a similar issue and was able to fix it this way, with advice from cyanogen.
Thanks Wysie. That helps!
To those facing the same problem here are the exact steps I took (using terminal and nano):
1. Open/Edit build/core/product_config.mk:
nano build/core/product_config.mk
Click to expand...
Click to collapse
2. Find:
PRODUCT_LOCALES += nodpi
Click to expand...
Click to collapse
3. Add in after that line:
PRODUCT_LOCALES += hdpi
Click to expand...
Click to collapse
4. Save and Exit: Ctrl+X
5. Run make again:
make Gallery3D
Click to expand...
Click to collapse
If you did everything correctly, and have compiled before, the compiler should write this at the beginning:
*** Build configuration changed: "generic-eng-{mdpi,nodpi}" -> "generic-eng-{mdpi,nodpi,hdpi}"
*** Forcing "make installclean"...
*** Done with the cleaning, now starting the real build.
Click to expand...
Click to collapse
It works now. Hope this helps the others.
arctu said:
Thanks Wysie. That helps!
To those facing the same problem here are the exact steps I took (using terminal and nano):
1. Open/Edit build/core/product_config.mk:
2. Find:
3. Add in after that line:
4. Save and Exit: Ctrl+X
5. Run make again:
If you did everything correctly, and have compiled before, the compiler should write this at the beginning:
It works now. Hope this helps the others.
Click to expand...
Click to collapse
cheers, helped me out
after quick grep to confirm I used sed
Code:
sed s/PRODUCT_LOCALES\ \+\=\ nodpi/PRODUCT_LOCALES\ \+\=\ hdpi/ build/core/product_config.mk -i
I am very happy to propose you my first custom rom for the HTC JetStream! This rom is based on the released rom from AT&T 1.30.502.1 and should work for both American and Canadian tabs. The system has been made as light as possible and all "unnecessary" application has been removed.READ CAREFULLY:
This rom does NOT include any kernel but works exclusively with DoomLord Kernel v1
Installing this rom will WIPE your device but can be done if this feature is needed
You need [URL="http://forum.xda-developers.com/showthread.php?t=1418084"]ClockWorkMOD [/URL]to install this ROM
You are doing this at your own risks
Rom Description:
This rom is my daily driver, I like my tablet, clean without any bloatware or unneccessary app or widgets from AT&T or HTC
Zipaligned / Deodexed
Rooted - latest version
Removed all unnecessary applications - see second post
Latest version 2.03.10:
Careful, this version will WIPE your device, make a backup!
Careful, the new version will WIPE your phone, make a backup!
I am not asking for donation but press the thanks button and please Vote for this thread tooCredits:
DooMLoRD for the kernel and CWM
mendozinas, for his online kitchen
dsixda, for his kitchen
Before asking a question, use this button
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
and watch this , thanks:
v2.03.10
New Boot animation
Roboto fonts included
Battery in %
Ad-Away an No-Frill included
All bloatware removed
Phone functions enabled
Tethering activated
Rooted
Latest Market
Busybox installed
Zipaligned
Fully de-odexed
Frequently Asked Questions:
Will this rom work with the default kernel?
Most probably yes but...
Wi-Fi will be broken
Can I revert to the default kernel on this rom?
Yes now you can! but follow the steps and I won't babysit
Download the file from my site called: Jetstream_OsiMood_DefaultKernelFiles.rar
Inside you will find 2 files JetStream_OsiMood_DefaultKernel_WiFi_Module.zip and defaultBoot.img
Once those two files unzipped in a folder
Move the zip file to your SD-Card
Once done, reboot in bootloader: adb reboot bootloader
Now time to flash the default kernel: fastboot flash boot defaultBoot.img
Now go in recovery and install the attached zip, the patch will install the correct WiFi module and wipe your cache
Reboot, you have now the default kernel running and WiFi working
Try to reboot in recovery if it does not work just re-install the DooMLoRD recovery
Nice work - looking forward to flashing this tonight!
FYI - Link currently broken on DL page.
tyrannos said:
Nice work - looking forward to flashing this tonight!
FYI - Link currently broken on DL page.
Click to expand...
Click to collapse
I know for the link, working on it... will let you know when back up
it's great to see some movement here. one question - why must it work with doomlords kernel? that thing is quite unstable..
guru_shastri said:
it's great to see some movement here. one question - why must it work with doomlords kernel? that thing is quite unstable..
Click to expand...
Click to collapse
Simply because it is working smoothly for me @1.8ghz and that is more than enough
The link is up
Downloading now, looking forward to trying this one!
Wait, so this will still work with the stock kernel, right?
guru_shastri said:
it's great to see some movement here. one question - why must it work with doomlords kernel? that thing is quite unstable..
Click to expand...
Click to collapse
Gotta agree here, its great to see a custom rom for this device but after spending an hour reverting and wiping back to stock kernel just yesterday because of 2 weeks of rebooting and freezes with the custom kernal, I'd be really hesitant to go back to it.
I would absolutely love to see an option to stick with stock kernel if possible. Thanks for the work on this rom, its great to finally see some movement on this forum!
Sent from my HTC PG09410 using XDA
dcd17 said:
Gotta agree here, its great to see a custom rom for this device but after spending an hour reverting and wiping back to stock kernel just yesterday because of 2 weeks of rebooting and freezes with the custom kernal, I'd be really hesitant to go back to it.
I would absolutely love to see an option to stick with stock kernel if possible. Thanks for the work on this rom, its great to finally see some movement on this forum!
Sent from my HTC PG09410 using XDA
Click to expand...
Click to collapse
I am going to see what I can do for that as it seems I am also facing some random reboots
Market
Hello. Thanks, finally somebody have action, good to see people taking time to work with this great device.
I just download your rom and installed and runs very smooth and clean. One issue tho, the Market aka Google Play is giving me an error FC
D/AndroidRuntime( 3044): Shutting down VM
W/dalvikvm( 3044): threadid=1: thread exiting with uncaught exception (group=0x4001c798)
E/AndroidRuntime( 3044): FATAL EXCEPTION: main
E/AndroidRuntime( 3044): java.lang.NullPointerException
E/AndroidRuntime( 3044): at com.google.android.finsky.utils.Sha1Util.secureHash(Sha1Util.java:46)
E/AndroidRuntime( 3044): at com.google.android.finsky.utils.FinskyLog.scrubPii(FinskyLog.java:57)
E/AndroidRuntime( 3044): at com.google.android.finsky.services.Reconstructor.recordPackageInstalled(Reconstructor.java:139)
E/AndroidRuntime( 3044): at com.google.android.finsky.services.Reconstructor.reconstruct(Reconstructor.java:109)
E/AndroidRuntime( 3044): at com.google.android.finsky.services.ReconstructDatabaseService.updateFromReconstruct(ReconstructDatabaseService.java:135)
E/AndroidRuntime( 3044): at com.google.android.finsky.services.ReconstructDatabaseService.access$000(ReconstructDatabaseService.java:26)
E/AndroidRuntime( 3044): at com.google.android.finsky.services.ReconstructDatabaseService$1.onResponse(ReconstructDatabaseService.java:68)
E/AndroidRuntime( 3044): at com.google.android.finsky.services.ReconstructDatabaseService$1.onResponse(ReconstructDatabaseService.java:49)
E/AndroidRuntime( 3044): at com.google.android.vending.remoting.api.VendingRequest.deliverResponse(VendingRequest.java:141)
E/AndroidRuntime( 3044): at com.google.android.vending.remoting.api.VendingRequest.deliverResponse(VendingRequest.java:40)
E/AndroidRuntime( 3044): at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:113)
E/AndroidRuntime( 3044): at android.os.Handler.handleCallback(Handler.java:587)
E/AndroidRuntime( 3044): at android.os.Handler.dispatchMessage(Handler.java:92)
E/AndroidRuntime( 3044): at android.os.Looper.loop(Looper.java:152)
E/AndroidRuntime( 3044): at android.app.ActivityThread.main(ActivityThread.java:4606)
E/AndroidRuntime( 3044): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 3044): at java.lang.reflect.Method.invoke(Method.java:491)
E/AndroidRuntime( 3044): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
E/AndroidRuntime( 3044): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
E/AndroidRuntime( 3044): at dalvik.system.NativeStart.main(Native Method)
W/ActivityManager( 300): Force finishing activity com.android.vending/com.google.android.finsky.activities.TosActivity
W/ActivityManager( 300): Force finishing activity com.android.vending/.AssetBrowserActivity
D/ActivityManager( 300): isSketcherDisabledInCurrentTask():false, ActivityRecord{40a49db8 com.android.vending/com.google.android.finsky.activities.TosActivity}
D/ViewRoot( 300): ## mIsSketcherDisabledInCurrentTask is false
D/WindowManager( 300): call linkToDeath, this=Window{4114a998 Sorry! paused=false}
dcd17 said:
Gotta agree here, its great to see a custom rom for this device but after spending an hour reverting and wiping back to stock kernel just yesterday because of 2 weeks of rebooting and freezes with the custom kernal, I'd be really hesitant to go back to it.
I would absolutely love to see an option to stick with stock kernel if possible. Thanks for the work on this rom, its great to finally see some movement on this forum!
Click to expand...
Click to collapse
You can now roll back to the default kernel
juannicolas said:
Hello. Thanks, finally somebody have action, good to see people taking time to work with this great device.
I just download your rom and installed and runs very smooth and clean. One issue tho, the Market aka Google Play is giving me an error FC
Code:
D/AndroidRuntime( 3044): Shutting down VM
W/dalvikvm( 3044): threadid=1: thread exiting with uncaught exception (group=0x4001c798)
E/AndroidRuntime( 3044): FATAL EXCEPTION: main
E/AndroidRuntime( 3044): java.lang.NullPointerException
E/AndroidRuntime( 3044): at com.google.android.finsky.utils.Sha1Util.secureHash(Sha1Util.java:46)
E/AndroidRuntime( 3044): at com.google.android.finsky.utils.FinskyLog.scrubPii(FinskyLog.java:57)
E/AndroidRuntime( 3044): at com.google.android.finsky.services.Reconstructor.recordPackageInstalled(Reconstructor.java:139)
E/AndroidRuntime( 3044): at com.google.android.finsky.services.Reconstructor.reconstruct(Reconstructor.java:109)
E/AndroidRuntime( 3044): at com.google.android.finsky.services.ReconstructDatabaseService.updateFromReconstruct(ReconstructDatabaseService.java:135)
E/AndroidRuntime( 3044): at com.google.android.finsky.services.ReconstructDatabaseService.access$000(ReconstructDatabaseService.java:26)
E/AndroidRuntime( 3044): at com.google.android.finsky.services.ReconstructDatabaseService$1.onResponse(ReconstructDatabaseService.java:68)
E/AndroidRuntime( 3044): at com.google.android.finsky.services.ReconstructDatabaseService$1.onResponse(ReconstructDatabaseService.java:49)
E/AndroidRuntime( 3044): at com.google.android.vending.remoting.api.VendingRequest.deliverResponse(VendingRequest.java:141)
E/AndroidRuntime( 3044): at com.google.android.vending.remoting.api.VendingRequest.deliverResponse(VendingRequest.java:40)
E/AndroidRuntime( 3044): at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:113)
E/AndroidRuntime( 3044): at android.os.Handler.handleCallback(Handler.java:587)
E/AndroidRuntime( 3044): at android.os.Handler.dispatchMessage(Handler.java:92)
E/AndroidRuntime( 3044): at android.os.Looper.loop(Looper.java:152)
E/AndroidRuntime( 3044): at android.app.ActivityThread.main(ActivityThread.java:4606)
E/AndroidRuntime( 3044): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 3044): at java.lang.reflect.Method.invoke(Method.java:491)
E/AndroidRuntime( 3044): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
E/AndroidRuntime( 3044): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
E/AndroidRuntime( 3044): at dalvik.system.NativeStart.main(Native Method)
W/ActivityManager( 300): Force finishing activity com.android.vending/com.google.android.finsky.activities.TosActivity
W/ActivityManager( 300): Force finishing activity com.android.vending/.AssetBrowserActivity
D/ActivityManager( 300): isSketcherDisabledInCurrentTask():false, ActivityRecord{40a49db8 com.android.vending/com.google.android.finsky.activities.TosActivity}
D/ViewRoot( 300): ## mIsSketcherDisabledInCurrentTask is false
D/WindowManager( 300): call linkToDeath, this=Window{4114a998 Sorry! paused=false}
Click to expand...
Click to collapse
No clue why, empty the cache of the app and try again
This is going to sound stupid but how do you boot the device in recovery? I've loaded CWM through adb but any button combo won't work. I would really like to test out this ROM, thanks for any help!
for CWM - reset the device - and after the screen goes black press and hold vol. down.
so to install this rom we need to install the doomlord kernel and then go back to stock? or we can just install it over the stock?
can anyone actually work with the doomlord kernel to improve it? i think it was great at its base..perhapes just removing the voltage control..i think that's the problem it had.
CarpeNoctem said:
You can now roll back to the default kernel
No clue why, empty the cache of the app and try again
Click to expand...
Click to collapse
Tried that but since the app have never being opened there is no clean/clear cache option active for it.
NJFM said:
This is going to sound stupid but how do you boot the device in recovery? I've loaded CWM through adb but any button combo won't work. I would really like to test out this ROM, thanks for any help!
Click to expand...
Click to collapse
the simplest way, install this: https://play.google.com/store/apps/details?id=com.siriusapplications.quickboot&hl=en
CarpeNoctem said:
I am going to see what I can do for that as it seems I am also facing some random reboots
Click to expand...
Click to collapse
I really don't think the level is the issue. my Jetstream ran the MOST STABLE with Doomlords kernel. I had more random reboots before I ever rooted it or anything. I think Honeycomb just sux or maybe the version of Sense we have over Honeycomb sux and is waaaaay underdeveloped from factory. just my 2 cents....
Sent from my HTC Rezound™ using xda premium
k2trill said:
I really don't think the level is the issue. my Jetstream ran the MOST STABLE with Doomlords kernel. I had more random reboots before I ever rooted it or anything. I think Honeycomb just sux or maybe the version of Sense we have over Honeycomb sux and is waaaaay underdeveloped from factory. just my 2 cents....
Click to expand...
Click to collapse
Now you have the choice at least you, stock or DooMLoRD
its a fact that some devices sufford random reboots only when using the kernel. i think the kernel has a great base, and my device never ran faster - but it still crashed him.
i think it's got something to do with the Voltage control, but i can't really be sure.
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 ?
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
Hi,
Ive decompiled the miui camera (miui 12, Redmi Note 8 Pro) and have recompiled it and included some libs, I have renamed the package and a few permissions (is this the cause of the error?) so as not to cause conflicts with the system camera app. I run into a problem with registerMarshalQueryable.. which from what I can tell is a camera2 method/class, so really it should just be there in the system, unless its looking in the wrong place?
Below is the error
2020-09-06 16:11:26.182 2694-2694/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.android.newcamera, PID: 2694
java.lang.NoSuchMethodError: No static method registerMarshalQueryable(Landroid/hardware/camera2/marshal/MarshalQueryableV in class Landroid/hardware/camera2/marshal/MarshalRegistry; or its super classes (declaration of 'android.hardware.camera2.marshal.MarshalRegistry' appears in /system/framework/framework.jar)
at com.android.camera2.vendortag.struct.MarshalQueryableRegister.preload(MarshalQueryableRegister.java:1)
at com.android.camera.CameraAppImpl.onCreateApplicationDelegate(CameraAppImpl.java:11)
at com.android.camera.CameraAppImpl.onCreateApplicationDelegate(CameraAppImpl.java:1)
at miui.external.Application.attachBaseContext(Application.java:4)
at android.app.Application.attach(Application.java:376)
at android.app.Instrumentation.newApplication(Instrumentation.java:1156)
at android.app.LoadedApk.makeApplication(LoadedApk.java:1222)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6562)
at android.app.ActivityThread.access$1500(ActivityThread.java:230)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1911)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:224)
at android.app.ActivityThread.main(ActivityThread.java:7551)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:995)
Click to expand...
Click to collapse