[Q] Good for Enterprise crashes when Xposed is enabled - Xposed General

Hi folks...
I am using a T-Mo Galaxy Note 3 with 4.3 (jellybean) and the latest Xposed Framework 2.7.1 (for reference, I did also try 2.4 through 2.5.1, with the same results).
I have installed the "Good for Enterprise" application to access my organization's email system. Our policy does NOT restrict use of root, so my issue is NOT with the fact that I am rooted.
However, whenever I enable the framework, even with NO modules enabled, launching Good crashes the app right after I enter my password into it. This is 100% repeatable. If I disable Xposed and reboot, Good works perfectly. This is also 100% repeatable.
I have looked through the logcat output and don't know what to look for, as I see a good amount of recurring debug messages. Any suggestions for how to proceed? Also, is it possible to blacklist an application so Xposed does not try to hook only that app?
Any suggestions are appreciated, and please remember that my organization does NOT restrict root via Good policy, so I don't have to worry about RootCloak, etc.
Thanks folks!
- SG

Xposed Framework Causes Good Mobile Messaging to not function
Hey there, not sure if there is anything that you can do about this but I wanted your input:
For some reason when I activate the xposed installer framework (my Verizon HTC One Max is running the most recent version of the NuSenseSix rom), it causes an app I have installed called "Good for Enterprise" to stop functioning. (Good for Enterprise is used for corporate email). if I disable the framework, then the app functions normally. Is there any way you can give me some advice or a resolution regarding this? the framework version I am running is 2.6.1
Thanks,

Slappy_G said:
Hi folks...
I am using a T-Mo Galaxy Note 3 with 4.3 (jellybean) and the latest Xposed Framework 2.7.1 (for reference, I did also try 2.4 through 2.5.1, with the same results).
I have installed the "Good for Enterprise" application to access my organization's email system. Our policy does NOT restrict use of root, so my issue is NOT with the fact that I am rooted.
However, whenever I enable the framework, even with NO modules enabled, launching Good crashes the app right after I enter my password into it. This is 100% repeatable. If I disable Xposed and reboot, Good works perfectly. This is also 100% repeatable.
I have looked through the logcat output and don't know what to look for, as I see a good amount of recurring debug messages. Any suggestions for how to proceed? Also, is it possible to blacklist an application so Xposed does not try to hook only that app?
Any suggestions are appreciated, and please remember that my organization does NOT restrict root via Good policy, so I don't have to worry about RootCloak, etc.
Thanks folks!
- SG
Click to expand...
Click to collapse
I am experiencing the exact same issue with good and my device. If I keep the framework disabled, good for enterprise works perfectly. As soon as I enable the framework and reboot, good hangs every time when attempting to connect after putting in my password and then just force quits back to the home screen.
I opened a seperate thread regarding the issue not seeing this thread until after I had already posted. I am hopeful that a resolution can be found. I have a Verizon HTC One Max, rooted with NuSenseSix Rom. I have also verified that they do not block access to good when it detects a rooted device. And as stated before, it functions normally on my rooted device as long as I keep the framework disabled.

Please describe in detail what you mean with "stop functioning". Does it crash? Please provide a logcat of the error.

I have merged these two threads. As mentioned, please post a logcat. A blacklist to avoid "loading" Xposed is not possible, because Xposed is initialized at system start and "inherited" by all apps.

rovo89 said:
I have merged these two threads. As mentioned, please post a logcat. A blacklist to avoid "loading" Xposed is not possible, because Xposed is initialized at system start and "inherited" by all apps.
Click to expand...
Click to collapse
Understood. I'll post a logcat this evening of both a positive and a negative case.

I am experiencing the excact same behaviour as stated in the OP, and are working under the same conditions (rooted rom with latest xposed and NO anti-root policy). I would LOVE to help providing logcats, and i happen to be part of the IT department enforcing Good, so i can really test this (they wont blacklist me).
I will produce som logcat for you, any advice on how to best do this? Otherwise i will just throw something at best effort :good: :laugh:
Update: Back with a log, see attatched.
I started Catlog (app), pressed home and launched GFE. I then entered my password, and the app crashed. After this i clicked the shortcut on my launcher to start (resume) catlog, and paused the logging. I then exported the whole thing to the attatched textfile. The loglevel is Verbose.
If any system information is needed, other than those in the log file, please ask.
Kind Regards
TwinAdk

Thanks. I don't see any crash/exception of the application there. Is it a normal crash ("<app> has stopped working" or whatever that message says)? If so, can you get the stack trace from it?
But what I noticed is that you have at least one module with quite verbose output (all those lines with "Xposed" tag, they don't come from the framework). Could you please make sure that it crashes even without any active modules?

rovo89 said:
Thanks. I don't see any crash/exception of the application there. Is it a normal crash ("<app> has stopped working" or whatever that message says)? If so, can you get the stack trace from it?
But what I noticed is that you have at least one module with quite verbose output (all those lines with "Xposed" tag, they don't come from the framework). Could you please make sure that it crashes even without any active modules?
Click to expand...
Click to collapse
I will deactivate all modules and re-take the log. It still crashes, that's for sure. When i will screen record the crash, it's not a stopped working crash, the app just closes with it's 'switch to launcher animation'. Once reopened it loads from scratch.
---------- Post added at 11:23 PM ---------- Previous post was at 10:32 PM ----------
Back with log of crash two times in a row, and screen record of working and failing good app. Notice that good cannot he screen recorded, hence the black screen when I'm inside the app. After the working recording I enabled xposed framework and rebooted.
Video and log here:
https://www.dropbox.com/sh/zrkivu9u0k4u2od/AAA5io6UfphGumblJCduRp8da
When you got the files, tell me, I'll remove them from dropbox then.
Kind Regards
TwinAdk

Twin, thanks for uploading the log files and the sharing the videos. i've been super busy and haven't had a chance to do this. what you are showing in your videos is exactly what is happening on my device when the framework is enabled (with no modules enabled/loaded). good prompts for my password and then force quits back to the home screen. it does this over and over again until I disable the framework and restart my device. then good functions normally.
Rovo, let me know if you need me to also supply logs from my device, or if what twin provided is enough to troubleshoot this.
thanks,

No problem, i know that far too well The phone having the problem is a HTC One, m7_ul, running the AICP project rom from here: http://forum.xda-developers.com/showthread.php?t=2632667
I also have an Samsung xCover 2 i can test it on (the wifes) and the former phone, the HTC One X, running a similair AICP rom, in a slightly older version. If this has any intereset, let me know. It would
Also, it occured to me, the Good app also hangs during the initial setup of Good (you have to pair the Good app with your company, by entereing your email address and a one-time key. This is done upon starting the app for the first time).. It has a process where it, after the email and onetime key is submitted, will "log in" - "check stuff" [NOT root policies etc i believe] - "preforms the secure connection" [between phone and company] - "fetches corporate settings" (this is the step where it freezes with XPosed enabled, hence never allowing the initial setup to complete) - "saving settings" [initial setup done, the app loads, if no xposed is present].
Are you interested in a logcat of that process aswell? I am quite sure its the same thing stopping the app from working.
Kind Regards
TwinAdk
EDIT: I just realised the video of the Good app working, was unable to play anywhere else than on my phone, so i screenrecorded it playing on my phone, and posted the screenrecord of a screenrecord to dropbox

you are correct, if i uninstall good and attempt to reinstall while the framework is enabled, it hangs on "retrieving corporate settings". If i disable the framework and reinstall, installation completes with no issues and functions normally. Again this is just enabling the framework on my device, not loading or enabling any modules. I am using a verizon htc one max running rooted nusensesix rom

TwinAdk said:
Video and log here:
https://www.dropbox.com/sh/zrkivu9u0k4u2od/AAA5io6UfphGumblJCduRp8da
When you got the files, tell me, I'll remove them from dropbox then.
Click to expand...
Click to collapse
Thanks, you can remove them.
This isn't a crash - the app deliberatly goes back to the launcher:
Code:
07-16 22:53:08.172 I/ActivityManager(585): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.good.android.gfe/com.good.android.ui.LaunchHomeActivity bnds=[540,960][540,960]} from pid 1068
07-16 22:53:08.312 I/ActivityManager(585): Start proc com.good.android.gfe for activity com.good.android.gfe/com.good.android.ui.LaunchHomeActivity: pid=4604 uid=10161 gids={50161, 3003, 1028, 1015, 1023, 1006}
07-16 22:53:08.943 W/ActivityManager(585): Unable to start service Intent { cmp=com.dell.enterpriseservices/.EnterpriseService } U=0: not found
07-16 22:53:09.633 I/WindowManager(585): Screenshot max retries 4 of Token{41ca04d8 ActivityRecord{41ab9a78 u0 com.good.android.gfe/com.good.android.ui.LaunchHomeActivity t5 f}} appWin=Window{41d18a68 u0 Starting com.good.android.gfe} drawState=4
07-16 22:53:09.643 W/WindowManager(585): Screenshot failure taking screenshot for (1080x1920) to layer 21015
07-16 22:53:09.653 I/ActivityManager(585): START u0 {cmp=com.good.android.gfe/com.good.android.ui.activities.AppLockActivity (has extras)} from pid 4604
07-16 22:53:09.663 W/ActivityManager(585): startActivity called from finishing ActivityRecord{41ab9a78 u0 com.good.android.gfe/com.good.android.ui.LaunchHomeActivity t5 f}; forcing Intent.FLAG_ACTIVITY_NEW_TASK for: Intent { cmp=com.good.android.gfe/com.good.android.ui.activities.AppLockActivity (has extras) }
...
[B][COLOR="Red"]07-16 22:53:22.687 I/ActivityManager(585): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000000 cmp=com.teslacoilsw.launcher/com.android.launcher2.Launcher} from pid 4604[/COLOR][/B]
...
07-16 22:53:23.208 I/ActivityManager(585): Process com.good.android.gfe (pid 4604) has died.
07-16 22:53:23.208 I/WindowState(585): WIN DEATH: Window{41f2c360 u0 com.good.android.gfe/com.good.android.ui.activities.AppLockActivity}
I have decompiled the app and it indeed has code for that. Unfortunately, they have used Proguard to obfuscate the code, so it's very hard to understand why exactly they show the launcher. Maybe they have detected Xposed or something done by it, or it caused an unexpected situation.
You could try one more thing - disable the Xposed resources APIs in the installer settings and reboot. That disables a good part of Xposed. If that doesn't help, someone would need to analyse the app in detail. I'm saying "someone" because I don't have enough free time for that.

rovo89 said:
Thanks, you can remove them.
This isn't a crash - the app deliberatly goes back to the launcher:
Code:
07-16 22:53:08.172 I/ActivityManager(585): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.good.android.gfe/com.good.android.ui.LaunchHomeActivity bnds=[540,960][540,960]} from pid 1068
07-16 22:53:08.312 I/ActivityManager(585): Start proc com.good.android.gfe for activity com.good.android.gfe/com.good.android.ui.LaunchHomeActivity: pid=4604 uid=10161 gids={50161, 3003, 1028, 1015, 1023, 1006}
07-16 22:53:08.943 W/ActivityManager(585): Unable to start service Intent { cmp=com.dell.enterpriseservices/.EnterpriseService } U=0: not found
07-16 22:53:09.633 I/WindowManager(585): Screenshot max retries 4 of Token{41ca04d8 ActivityRecord{41ab9a78 u0 com.good.android.gfe/com.good.android.ui.LaunchHomeActivity t5 f}} appWin=Window{41d18a68 u0 Starting com.good.android.gfe} drawState=4
07-16 22:53:09.643 W/WindowManager(585): Screenshot failure taking screenshot for (1080x1920) to layer 21015
07-16 22:53:09.653 I/ActivityManager(585): START u0 {cmp=com.good.android.gfe/com.good.android.ui.activities.AppLockActivity (has extras)} from pid 4604
07-16 22:53:09.663 W/ActivityManager(585): startActivity called from finishing ActivityRecord{41ab9a78 u0 com.good.android.gfe/com.good.android.ui.LaunchHomeActivity t5 f}; forcing Intent.FLAG_ACTIVITY_NEW_TASK for: Intent { cmp=com.good.android.gfe/com.good.android.ui.activities.AppLockActivity (has extras) }
...
[B][COLOR="Red"]07-16 22:53:22.687 I/ActivityManager(585): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000000 cmp=com.teslacoilsw.launcher/com.android.launcher2.Launcher} from pid 4604[/COLOR][/B]
...
07-16 22:53:23.208 I/ActivityManager(585): Process com.good.android.gfe (pid 4604) has died.
07-16 22:53:23.208 I/WindowState(585): WIN DEATH: Window{41f2c360 u0 com.good.android.gfe/com.good.android.ui.activities.AppLockActivity}
I have decompiled the app and it indeed has code for that. Unfortunately, they have used Proguard to obfuscate the code, so it's very hard to understand why exactly they show the launcher. Maybe they have detected Xposed or something done by it, or it caused an unexpected situation.
You could try one more thing - disable the Xposed resources APIs in the installer settings and reboot. That disables a good part of Xposed. If that doesn't help, someone would need to analyse the app in detail. I'm saying "someone" because I don't have enough free time for that.
Click to expand...
Click to collapse
See the dropbox folder. I ticked the option and rebooted, then I had same experience and found the shown in the logcat....

Mornig,
I just noticed that i get a notification from Good, saying that "GFE does not have connection [to the corporate network]. Unlock GFE to initiate the connection". See the screenshot (_20140718_072316.JPG) posted in the dropbox folder. I received this while GFE was unable to open, and it confirms that GFE is indeed running in the background..
I tried to rename the Xposed app in the phone, to test, using xSuite (weak attempt, but you never know). Also, i stripped GFE of some permissions using the App Settings module:
- Read External storage
- Read Logs
- com.dell.enterpriseservices.SET_PROPERTY_THIRDPARTY_APPINSTALL (custom GFE permission added to the manifest i belive). Possibly a permission used for corporate inforced rules (that do not apply here yet, but i still nuked it)
I will try stripping permissions to see where it gets me.
Also, there is this module, - http://repo.xposed.info/module/com.phantasm.xposed.gfesecuritypatcher - but it does not work for me at least.
Then there is this thread - http://forum.xda-developers.com/showthread.php?t=2040163 - but the "4.3+ xposed way" mentioned in the very first post, is also no good...
I also tested the rootcloak app, where the developer says it may work with GFE, but he needs more testing. It does not.
I fear however, that all these past efforts have been nullified by some recent GFE update, because the case here is that we dont even get to start the program.
Kind Regards
TwinAdk
EDIT: Okay, that was quick.. I stripped GFE of EVERY SINGLE permission. This caused it to FC on me the first time. The dump report revealed it needed the WAKE_LOCK permission, so i granted it that and retried.. On the second launch, it returned to my launcher as we have seen before...
In fact, i find this behaviour unacceptable, as my company has NOT decided against Xposed, rooting, etc, and a company could for all we know depend on both GFE and Xposed (unlikely, yes, impossible, no). But GFE seems to be dead set against opening up when Xposed is active.
Would it be possible to intercept and block the return to launcher call to android? Just to see where it gets us? This would require a module, i know.
---------- Post added at 08:32 AM ---------- Previous post was at 07:36 AM ----------
Okay, i read up on another thread, and found this post here: http://forum.xda-developers.com/showpost.php?p=53198439&postcount=833
It states the following:
Information Notification: Good for Enterprise (GFE) Good Mobile Messaging Client (GMMC) for Android v2.5 running Android OS v4.4.2 May Encounter Application Restarts After Entering the Password on the Nexus 4 and Nexus 5 Device
Date: June 3, 2014
Problem:
Good for Enterprise (GFE) Good Mobile Messaging Client (GMMC) for Android version 2.5 running Android OS 4.4.2 may encounter application restarts after entering the password on the Nexus 4 and Nexus 5 Device. This problem has occurred after upgrading from GMMC for Android version 2.4 to GMMC for Android version 2.5 and with doing a fresh installation of GMMC for Android version 2.5.
Environment:
· Good for Enterprise (GFE) Good Mobile Messaging Client (GMMC) for Android version 2.5
· Nexus 4 and Nexus 5 devices with Android OS 4.4.2
Please Note:
A re-install of the GFE GMMC Android version 2.5 will not resolve the problem.
Workaround:
Please install the older version of Good for Enterprise (GFE) Good Mobile Messaging Client (GMMC) for Android version 2.4 on your device and disable the auto update setting for this application.
· Here is the link to get the GFE for Android 2.4 release - https://get.good.com/ea/android/
· It's very important to disable the auto update for the application, so it does not auto update to GFE version 2.5.
o Open the Google Play Store
o Hit Menu (3 dots in the upper right)
o Select Settings
o Uncheck 'Auto-update' apps
FIX:
Good Engineering is currently working on a permanent fix for this issue. We will keep you updated on the availability of the new software version.
If you have questions, please contact our technical support team at 1-408-352-7100, 1-866-448-8458 or submit an online support ticket at www.good.com/gmp.
Thank you,
Click to expand...
Click to collapse
Provided this information, i downloaded the 2.4 release of GFE, instead of the 2.5 from Google Play Store - and it just works.
After uninstalling 2.5, rebooting and installing 2.4, i can open up GFE with Xposed fully enabled. I also have the GFE Patcher module (http://repo.xposed.info/module/com.phantasm.xposed.gfesecuritypatcher) installed, just in case.. even though my company does not block root.
Summa summarum - It seems we can call off the witch hunt, and conclude that its a bug in 2.5 of GFE causing the issues.
Also, the GFE Patch module seems to work for people with root, and in the thread where i found the bug-info, people are reporting that 2.5 of GFE works, when installed on top of 2.4, via playstore. This is however not the case for me, 2.5 still returns to launcher.
@revo89, thank you for all your time and effort in this matter, and once again, thank you for the xposed framework as a whole, its is a truly amazing piece of art, and my phone is not my phone without it! :good::good:

@twin
You are absolutely correct buddy. After reading your recent update to this thread, I removed and reinstalled w/ GFE 2.4 via the link you provided. that took care of my issue. I can use GFE 2.4 with the framework & modules enabled with no issues. as soon as I upgrade again to 2.5, I start experiencing the same issue as before where it force quits back to the home screen. for now I will use 2.4 until a newer version of GFE is released and will test again with that version. but at least now I have a working solution to the issue.
thanks again for all your time and assistance in troubleshooting this problem.

Thanks so much everyone for working on this thread. I run xposed on a Verizon note2 and I have been having this same issue described here. Its been driving me crazy and I've had to live without xposed since this 'bug' arrived. I'll try 2.4 as well and then wait for GFE to fix the newer versions. Thanks again.

I had this issue.. It's rom dependant.
I had one rom on my Note2 that had this issue. But a rooted stock rom does not have this issue.
I'm running a HTC One M8 as of today. It's got rooted stock, it also does not have this issue.
Hope that helps (but yeah 2.4 works, I kept a backup in titanium)

Indeed, it seems that the rom makes a difference, because some people say it works (2.5), and some doesnt.. Must be parts of the rom that is the issue, and that part is used only in some roms
Kind Regards
TwinAdk

Awesome, this thread was a lifesaver! I couldn't figure out why and kept reinstalling and on the phone with tech support at my company who basically told me to do a hard reset (right....). The older version 2.4 works fine. Thanks TwinAdk!

Related

Advanced Permission Manager without root

I am trying out this app. The good news is that it does not require root. Instead, it will create a revised apk. After installing it, Play still shows it's installed. So you might be care about update.
I used the Costoc Mobile as a test. It can remove everything except
- prevent phone from sleeping: android.permission.WAKE_LOCK
- read phone status and identity: android.permission.READ_PHONE_STATE
Removing them results in crash. I am not sure if this is application specific though.
Has anyone else tried it?
Thanks
redhonker said:
I am trying out this app. The good news is that it does not require root. Instead, it will create a revised apk. After installing it, Play still shows it's installed. So you might be care about update.
I used the Costoc Mobile as a test. It can remove everything except
- prevent phone from sleeping: android.permission.WAKE_LOCK
- read phone status and identity: android.permission.READ_PHONE_STATE
Removing them results in crash. I am not sure if this is application specific though.
Has anyone else tried it?
Thanks
Click to expand...
Click to collapse
I've tried it! It's a great tool. I'd love some more insight on it from more experienced people here however. (it's why I signed-up)
Test

[Q] xposed, VPN, ICS & Auto VPN Dialog Confirm

I read the module FAQ and the code page and tried out module & xposed code and I was not able to get around my problem. I'm not sure that it was supposed to get around my problem though, but I was hoping to get your take on things. I can't find much data, though I can find a few people asking the same questions as I.
I installed an android 4.3 ROM (http://forum.xda-developers.com/showthread.php?t=2121063) on my phone and tried to connect to an OpenVPN based VPN provider. I got an error and contacted their support. Part of that process was to try another app, so we tried the OpenVPN COnnect app, the official OpenVPN app. I got a different error with that app.
One says that "your android firmware does not support the VPNService API("
OpenVPN Connect says "Sorry, due to a known issue in this version of android, it is not possible to gain permission to open a VPN tunnel"
There seems to be a few problems popping up with OpenVPN based VPNs in various Android 4.x OSs, but none complaine about 4.3 specifically. Usually they complain about 4.4 or back when 4.0 and 4.1 were new. I found this article talking about it on OpenVPN, and they're just pointing the finger, but I can't find the actual bug referenced:
https://forums.openvpn.net/topic13772.html
I came across your code on this page:
https://code.google.com/p/ics-openvpn/wiki/FAQ
And decided to try loading xposed and your module after emailing OpenVPN Connect and receiving a response right away. The guy who replied seemed to think the error is related to the fact that the confirmation acknowledgement dialog is not able to be summoned. I figured maybe the ROM wasn't bypassing it properly or missing some part of it, so I tried your way of bypassing it.
After loading xposed and your module, and selecting the 2 VPN apps, I still get the same results.
What are your thoughts? Should I give up and find a new ROM?
What are you talking about? If you're asking about a specific module (looks to me that way,) you should do that in the appropriate thread.
After some more research and experimentation yesterday, it's looking more like those OpenVPN clients that "support" the VPNServiceAPI actually *require* it, and that annoying/nasty little dialog that google enabled to "protect" the user just serves to piss off advanced users like me. This is my hypothesis at this point, though I have not confirmed this. I suspect this because I just tested on Jelly Bomb, a 4.1 based ROM and see the same results so far.
As far as what I was talking about in my OP, I copy/pasted an email to the author of the xposed module here and tried to reformat it to fit the message board, and apparently I missed a few pronouns. By far not the most egregious use of the English language I've seen on these boards, so what's with the attitude? I don't see specific sub forums for each and every module, so I don't get what you're implying. I only saw the one xposed board, so where else was I supposed to post?
No attitude, I honestly didn't understand how your issue was related to the Xposed framework. I just searched the repo for "VPN" and now see what you're talking about.
The Auto VPN Dialog Confirm doesn't have a thread here on XDA. Reading your post again, you're trying to use Xposed to fix a bug with the app if I'm not mistaken? I'd first try checking the logcat and forwarding that to the author of the VPN app if you haven't already.
I can't answer the rest of your questions since that's up to the module's author. That being said, it looks like a module specific question/request, not a framework query.
My understanding of the issue described here is different, probably because I'm trying to solve the same problem On the other hand, I'm not on ICS anymore, but am using Sammy 4.1.2 stock with DorimanX Kernel 8.43 at the moment.
OpenVPN should be usable for establishing a connection on boot. Out of the box, this creates a dialog to trust this application. Even though I trust it and confirm, there is no way of saving that preference permanently. It seems to be kept for a while (disconnect / reconnect doesn't trigger it again at least ) Therefore, it always reappears each time I boot.
The only possible solution I could find was the Xposed Module "Auto VPN Dialog Confirm" - the same module mentioned by the OP.
I used it together with the OpenVPN Client by colucci.web.it (paid version in my case, because I also wanted TAP support and auto connect functionality as well as the option of controlling it via Tasker).
After installing "Auto VPN Dialog Confirm" it recognized the installed OpenVPN client and offered to allow VPN API connections from it without confirmation. The VPN client also has an option to automatically create connections when Wifi is up and allows to be triggered either when seeing a specific SSID or when connecting to a network which does not have a specific SSID. The latter one is the typical condition for untrusted networks.
Therefore, it achieves what I wanted - being able to route my traffic via OpenVPN in case I'm not connected to my home WiFi
Regarding the issue encountered on ICS - maybe getting in touch with the Developer of the Xposed module might be the best option, unless someone else has already found a solution for it. It could also be good to exactly specify the OpenVPN client used as clearing the Xposed logfile and having "AutoVPN Dialog confirm" run as the only Xposed app (and fail). Afterwards, the log hopefully contains useful feedback for the developer to investigate further (Support URL listed for the module)

[PROBLEM] Server classes and resource hooks

com.android.server.*
I know that these classes have to be hooked in handleLoadPackage for lpparam.packageName == "android", but sometimes there are several processes ("system:ui" for example) that contain this package and hooks fail even from handleLoadPackage.
Now I'm using this code, is it correct?
Code:
if (lpparam.packageName.equals("android") && lpparam.processName.equals("android")) { ... }
Resource hooks
They are just not working. Well, most of them. Using fwd or DrawableLoader doesn't matter. No errors shown in log. It's not just a problem with some packages. Status bar icons, action bar icons, etc, etc - I can't replace 90% of them, exact same hooks were working on Kit Kat.
For example, png drawable is used only in manifest and in actionbar ( actionbar.setIcon(iconResId) ). With a hook this icon is replaced in launcher, but not in actionbar.
Code:
Starting Xposed binary version 60, compiled for SDK 21
Phone: HTC One (HTC), Android version 5.0.2 (SDK 21)
ROM: LRX22G release-keys
Build fingerprint: htc/htc_europe/m7:5.0.2/LRX22G/482424.2:user/release-keys
Platform: armeabi-v7a, 32-bit binary, system server: yes
SELinux enabled: yes, enforcing: no
Mikanoshi said:
Resource hooks
They are just not working. Well, most of them. Using fwd or DrawableLoader doesn't matter. No errors shown in log. It's not just a problem with some packages. Status bar icons, action bar icons, etc, etc - I can't replace 90% of them, exact same hooks were working on Kit Kat.
For example, png drawable is used only in manifest and in actionbar ( actionbar.setIcon(iconResId) ). With a hook this icon is replaced in launcher, but not in actionbar.
Click to expand...
Click to collapse
Noticed that as well. Some resources can be replaced, others it's like they're just silently ignored. I'm guessing maybe the ART optimizations are the culprit?
There's a thread about it here. I'm sure @rovo89 will chime in when he's had time to take a look. As a workaround, you could always find the method that's setting the original drawable and replace it there; that seems to work for me in most cases.
Mikanoshi said:
com.android.server.*
I know that these classes have to be hooked in handleLoadPackage for lpparam.packageName == "android", but sometimes there are several processes ("system:ui" for example) that contain this package and hooks fail even from handleLoadPackage.
Now I'm using this code, is it correct?
Code:
if (lpparam.packageName.equals("android") && lpparam.processName.equals("android")) { ... }
Click to expand...
Click to collapse
So you're saying that there are situations with lpparam.packageName == "android" and lpparam.processName <> "android"? That would explain a couple of other issues. If you could find out a good way to reproduce this, it could be quite helpful.
Depending on the situation, I will have to see how to handle it. Checking for package name "android" is a pretty common pattern to ensure you're in the system server (which I even recommend myself!), so ideally it should stay correct even without the additional checks you suggested.
rovo89 said:
So you're saying that there are situations with lpparam.packageName == "android" and lpparam.processName <> "android"? That would explain a couple of other issues. If you could find out a good way to reproduce this, it could be quite helpful.
Depending on the situation, I will have to see how to handle it. Checking for package name "android" is a pretty common pattern to ensure you're in the system server (which I even recommend myself!), so ideally it should stay correct even without the additional checks you suggested.
Click to expand...
Click to collapse
I've seen only "system:ui" process name, it tries to search for classes in XposedBridge.jar only and of course fails.
Occurrences are very inconsistent, I install modules from Eclipse and then soft reboot like 50 times a day, and this bug happens 2 or 3 times. Not a big problem though, it just clutters Xposed log
I also have a lot of problems with installing apk via adb, it either throws an excpetion and doesn't install
Code:
ActivityManager: java.lang.UnsatisfiedLinkError: No implementation found for java.lang.String android.os.SystemProperties.native_get(java.lang.String) (tried Java_android_os_SystemProperties_native_1get and Java_android_os_SystemProperties_native_1get__Ljava_lang_String_2)
ActivityManager: at android.os.SystemProperties.native_get(Native Method)
ActivityManager: at android.os.SystemProperties.get(SystemProperties.java:52)
ActivityManager: at com.htc.customization.HtcCustomizationManager.<init>(HtcCustomizationManager.java:65)
ActivityManager: at com.htc.customization.HtcCustomizationManager.<clinit>(HtcCustomizationManager.java:60)
ActivityManager: at android.os.Environment$UserEnvironment.getCustomizationReader(Environment.java:523)
ActivityManager: at android.os.Environment$UserEnvironment.isDynamicSwitchSupported(Environment.java:534)
ActivityManager: at android.os.Environment$UserEnvironment.<init>(Environment.java:222)
ActivityManager: at android.os.Environment.initForCurrentUser(Environment.java:142)
ActivityManager: at android.os.Environment.<clinit>(Environment.java:136)
ActivityManager: at android.os.Environment.getLegacyExternalStorageDirectory(Environment.java:726)
ActivityManager: at android.os.Debug.<clinit>(Debug.java:96)
ActivityManager: at android.ddm.DdmHandleHello.handleHELO(DdmHandleHello.java:164)
ActivityManager: at android.ddm.DdmHandleHello.handleChunk(DdmHandleHello.java:91)
ActivityManager: at org.apache.harmony.dalvik.ddmc.DdmServer.dispatch(DdmServer.java:171)
ActivityManager: java.lang.UnsatisfiedLinkError: android.os.Debug
ActivityManager: at android.ddm.DdmHandleHello.handleFEAT(DdmHandleHello.java:176)
ActivityManager: at android.ddm.DdmHandleHello.handleChunk(DdmHandleHello.java:93)
ActivityManager: at org.apache.harmony.dalvik.ddmc.DdmServer.dispatch(DdmServer.java:171)
ActivityManager: java.lang.UnsatisfiedLinkError: android.os.Debug
ActivityManager: at android.ddm.DdmHandleProfiling.handleMPRQ(DdmHandleProfiling.java:215)
ActivityManager: at android.ddm.DdmHandleProfiling.handleChunk(DdmHandleProfiling.java:106)
ActivityManager: at org.apache.harmony.dalvik.ddmc.DdmServer.dispatch(DdmServer.java:171)
or installs but fails to launch until (soft) reboot:
Code:
I/ActivityManager(15637): Process name.mikanoshi.icecontrol (pid 27200) has died
I/ActivityManager(15637): Start proc name.mikanoshi.icecontrol for activity name.mikanoshi.icecontrol/.Settings: pid=27233 uid=10343 gids={50343, 9997} abi=armeabi-v7a
I/art(27233): Late-enabling -Xcheck:jni
W/art(27233): Failed to find OatDexFile for DexFile /data/app/name.mikanoshi.icecontrol-2/base.apk ( canonical path /data/app/name.mikanoshi.icecontrol-2/base.apk) with checksum 0x7991961b in OatFile /data/dalvik-cache/arm/[email protected]@[email protected]@classes.dex
D/Process(15637): killProcessQuiet, pid=27233
No idea if Lollipop or Xposed problem
rovo89 said:
So you're saying that there are situations with lpparam.packageName == "android" and lpparam.processName <> "android"? That would explain a couple of other issues. If you could find out a good way to reproduce this, it could be quite helpful.
Depending on the situation, I will have to see how to handle it. Checking for package name "android" is a pretty common pattern to ensure you're in the system server (which I even recommend myself!), so ideally it should stay correct even without the additional checks you suggested.
Click to expand...
Click to collapse
Yes, I can confirm this seems to be the case. Haven't got a chance to debug which process comes with packageName == "android" apart from "android" process itself, but when that happens, classLoader cannot find classes that are typically available within "android" package, which is logical. The other process that has packageName "android" is something else with no access to those classes.
Oh, and rarely soft reboot after module activation ends like this
Code:
E/Xposed(10834): Error -32 while adding app service user.xposed.app
E/Xposed(10822): Zygote service is not running, Xposed cannot work without it
I would like to concentrate on the bigger issues first. Yours can probably be solved by another reboot.
So after some research, grepping the AOSP code and so on, it seems that the "system:ui" process is only used by the PackageManagerService. Maybe more will follow in the future. For some reason, the process seems to be called "android:ui" though once it has been started. It's running with UID 1000, but in the system_app SELinux context.
I would like to understand some more things about this before making a decision. It seems that there can now indeed be processes with package name "android" that aren't the system_server. Without breaking existing modules, I think I could only block handleLoadPackage() for these. Maybe it would also make sense to add a new handleLoadSystemServer() method. That would avoid the need for checks, especially if only system services are hooked. For backward-compatiblity, handleLoadPackage() could still be called for package "android", but modules would produce error messaages if they don't check the process name. Or there could be a compatiblity break at this point, requiring all modules that hook system services to adopt the new API.
I don't mind checks Almost every module that hooks system classes requires an update for 5.0 anyway.
Huge issues for me now are broken resource hooks and problems with installing apks (sometimes it takes 3-5 tries to install and then soft reboot just to test interface changes).
Most likely, this is the reason why the ChooserActivity runs in the "android:ui" process now:
https://github.com/android/platform...40#diff-30afe08a44bf548c7cc9116a473f8bdfL2798
It used to declare multiprocess=true, which meant that the activity was started in the caller's process. Now it's started in a separate process, where ":ui" is relative to the package name, not the applications's default process name (that would be "system").
There are also other activities with similar attributes defined, even in KitKat. If someone has a bit of time at their hands, they could try to check whether handleLoadPackage() is also called for package == "android" and process != "android" on KitKat ROMs for those other activities. It wouldn't be as noticable as it is on Lollipop because the system services that most modules hook there were available with the boot class path.
Anyway, now we know that there are legitimate usages of the "android" package for other things than the system_server. These usages are very limited though. The activities use the boot classloader, so hooking methods from initZygote() would (still) work for them. What if I set the packageName for these apps to "system" instead? So modules checking for "android" as package name could be sure it's the system_server then. Modules which need to do something for the android:ui process could simply check for "system" as package name. Any complaints?
Good solution... Ship it
But I believe majority of actively developed modules are already fixed for this specific case.
rovo89 said:
Most likely, this is the reason why the ChooserActivity runs in the "android:ui" process now:
https://github.com/android/platform...40#diff-30afe08a44bf548c7cc9116a473f8bdfL2798
It used to declare multiprocess=true, which meant that the activity was started in the caller's process. Now it's started in a separate process, where ":ui" is relative to the package name, not the applications's default process name (that would be "system").
There are also other activities with similar attributes defined, even in KitKat. If someone has a bit of time at their hands, they could try to check whether handleLoadPackage() is also called for package == "android" and process != "android" on KitKat ROMs for those other activities. It wouldn't be as noticable as it is on Lollipop because the system services that most modules hook there were available with the boot class path.
Anyway, now we know that there are legitimate usages of the "android" package for other things than the system_server. These usages are very limited though. The activities use the boot classloader, so hooking methods from initZygote() would (still) work for them. What if I set the packageName for these apps to "system" instead? So modules checking for "android" as package name could be sure it's the system_server then. Modules which need to do something for the android:ui process could simply check for "system" as package name. Any complaints?
Click to expand...
Click to collapse
Great idea, no complaints here.
Whike fixing this, maybe you can try to look why appInfo is null for "android" package.
pyler said:
Whike fixing this, maybe you can try to look why appInfo is null for "android" package.
Click to expand...
Click to collapse
That's very simple to answer: https://github.com/rovo89/XposedBri...de/robv/android/xposed/XposedBridge.java#L245
There's simply no ApplicationInfo object (yet), it's constructed later when the PackageManagerService is running. I could construct a fake object, but there are hardly any fields that could be filled with proper values.
atleast flags field could be filled, or not? just do copy of real object for android, which any normal app can get.
since we talk about this, is this doable or Xposed starts too soon for these values?
rovo89 said:
What if I set the packageName for these apps to "system" instead?
Click to expand...
Click to collapse
Old modules which use "android" are incompatible...
To be compatible i have then to check "system" and "android" - this is not better than check for package& process name
system is for *:ui processes and we mostly care about android only.
pyler said:
system is for *:ui processes and we mostly care about android only.
Click to expand...
Click to collapse
Who is "we" and whats the source of "mostly"
I have to say that i'm using "android" for <21 and so it seems i have to use different package names depending on Xposed version
pyler said:
atleast flags field could be filled, or not? just do copy of real object for android, which any normal app can get.
since we talk about this, is this doable or Xposed starts too soon for these values?
Click to expand...
Click to collapse
"real object for android" => you mean the one that I said doesn't exist at the time the system_server is starting up, as the PackageManagerService is not running yet?
No idea about your other suggestion, I'm currently looking mainly into crashes etc., API extensions have to wait...
defim said:
I have to say that i'm using "android" for <21 and so it seems i have to use different package names depending on Xposed version
Click to expand...
Click to collapse
I was talking about "other things than the system_server", i.e. the process for ChooserActivity etc. This process is hardly used, I'm not even sure if it existed in previous versions. Only for this process, the package name is faked to be "system". The system_server, which is way more widely used, will keep package name "android". So I don't expect a single module to break.
If no update for older modules is needed its great :good:
can i use it on samsung device running cm 12
can i use it on samsung device running cm 12

Gmail app keeps kicking out/closing

I have a brand new kindle fire 7, just did the steps for installing Google play store, installed a few apps but the gmail app won't stay open and work.... What do I do now?
Same with me. I would love to find the answer to this. Thanks.
I'm having the same problem... Have tried most of the standard attempts to fix it. It did refresh the messages initially, but it still opens, then immediately closes. (Still shows it's running and have cleared that, rebooted, etc). Very frustrating! (Sorry.... probably the wrong thread, but's happening on my new Fire 8HD 2017 too)
Getting the same error here, so I did a logcat on it:
Code:
E/DatabaseUtils(15437): Writing exception to parcel
E/DatabaseUtils(15437): java.lang.SecurityException: Permission Denial: reading com.android.providers.downloads.DownloadProvider uri content://downloads/all_downloads/73 from pid=15497, uid=10016 requires android.permission.ACCESS_ALL_DOWNLOADS, or grantUriPermission()
E/DatabaseUtils(15437): at android.content.ContentProvider.enforceReadPermissionInner(ContentProvider.java:539)
E/DatabaseUtils(15437): at android.content.ContentProvider$Transport.enforceReadPermission(ContentProvider.java:452)
E/DatabaseUtils(15437): at android.content.ContentProvider$Transport.enforceFilePermission(ContentProvider.java:443)
E/DatabaseUtils(15437): at android.content.ContentProvider$Transport.openTypedAssetFile(ContentProvider.java:388)
E/DatabaseUtils(15437): at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:313)
E/DatabaseUtils(15437): at android.os.Binder.execTransact(Binder.java:446)
W/GAV2 (15497): Thread[Background tasks,5,main]: dispatch call queued. Need to call GAServiceManager.getInstance().initialize().
--------- beginning of crash
E/AndroidRuntime(15497): FATAL EXCEPTION: Background tasks
E/AndroidRuntime(15497): Process: com.google.android.gm, PID: 15497
E/AndroidRuntime(15497): java.lang.SecurityException: Permission Denial: reading com.android.providers.downloads.DownloadProvider uri content://downloads/all_downloads/73 from pid=15497, uid=10016 requires android.permission.ACCESS_ALL_DOWNLOADS, or grantUriPermission()
E/AndroidRuntime(15497): at android.os.Parcel.readException(Parcel.java:1548)
E/AndroidRuntime(15497): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:185)
E/AndroidRuntime(15497): at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:148)
E/AndroidRuntime(15497): at android.content.ContentProviderProxy.openTypedAssetFile(ContentProviderNative.java:691)
E/AndroidRuntime(15497): at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1080)
E/AndroidRuntime(15497): at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:921)
E/AndroidRuntime(15497): at android.content.ContentResolver.openFileDescriptor(ContentResolver.java:778)
E/AndroidRuntime(15497): at android.content.ContentResolver.openFileDescriptor(ContentResolver.java:733)
E/AndroidRuntime(15497): at android.app.DownloadManager.openDownloadedFile(DownloadManager.java:1040)
E/AndroidRuntime(15497): at ene.a(SourceFile:636)
E/AndroidRuntime(15497): at ene.a(SourceFile:439)
E/AndroidRuntime(15497): at com.google.android.gm.job.DownloadCompleteJob.a(SourceFile:40)
E/AndroidRuntime(15497): at eks.run(Unknown Source)
E/AndroidRuntime(15497): at android.os.Handler.handleCallback(Handler.java:739)
E/AndroidRuntime(15497): at android.os.Handler.dispatchMessage(Handler.java:95)
E/AndroidRuntime(15497): at android.os.Looper.loop(Looper.java:135)
E/AndroidRuntime(15497): at android.os.HandlerThread.run(HandlerThread.java:61)
It appears that com.google.android.gm doesn't have the permissions it needs (ACCESS_ALL_DOWNLOADS), so I tried to grant this permission with:
Code:
adb shell pm grant com.google.android.gm android.permission.ACCESS_ALL_DOWNLOADS
but I got:
Code:
Operation not allowed: java.lang.SecurityException: Package com.google.android.gm has not requested permission android.permission.ACCESS_ALL_DOWNLOADS
Anyone find a solution to this?
Try disabling "Download attachments" under Gmail's account settings while disconnected from WiFi.
Zeranoe said:
Try disabling "Download attachments" under Gmail's account settings while disconnected from WiFi.
Click to expand...
Click to collapse
Yes, I tried that...
Having the same issue. Can we downgrade the gmail app or something?
cduced said:
Having the same issue. Can we downgrade the gmail app or something?
Click to expand...
Click to collapse
Nope - characteristic if the underlying components that Gmail relies on. Can't downgrade those; will either fail or immediately self-updating to latest version. Look to another mail client (many fine options in Play Store) or use web interface.
gmail app quits
same problem - same with inbox spp. starts for few seconds then goes away. is still running but not in screen!
---------- Post added at 04:51 PM ---------- Previous post was at 04:38 PM ----------
just got off the phone with Amazon. needless to say they do not troubleshoot Google's apps! Nice guy, second tier informed him. so either Google fixes this or we are SOL! Maybe if we get a long enuf thread here! Anyone here work for Google?
carlscheider said:
same problem - same with inbox spp. starts for few seconds then goes away. is still running but not in screen!
---------- Post added at 04:51 PM ---------- Previous post was at 04:38 PM ----------
just got off the phone with Amazon. needless to say they do not troubleshoot Google's apps! Nice guy, second tier informed him. so either Google fixes this or we are SOL! Maybe if we get a long enuf thread here! Anyone here work for Google?
Click to expand...
Click to collapse
Unlikely either party will pursue a 'fix' as Amazon and Google don't pursue mutual business objectives or cross validate apps. Especially hacks. Best option IMO is to consider a different mail app (there are many fine alternatives in the Play Store) or use the Gmail web interface (spartan but serviceable).
thanks
that makes perfect sense. i do use an email app but prefer gmail direct.
i will hold out hope. Had the same problem with Amazon's washington post - it finally fixed itself! found i could sometimes get it to work by just shutting it off normally.
i used to be a cto - crappy code lives forever. no attention to zero defect.
appreciate the wisdom. saves a few frustrating calls.
carlscheider said:
that makes perfect sense. i do use an email app but prefer gmail direct.
i will hold out hope. Had the same problem with Amazon's washington post - it finally fixed itself! found i could sometimes get it to work by just shutting it off normally.
i used to be a cto - crappy code lives forever. no attention to zero defect.
appreciate the wisdom. saves a few frustrating calls.
Click to expand...
Click to collapse
I suspect (but have no direct evidence to support) a new dependency on a core Google component not included with the basic Play Store install for this device (FireOS v5 in general). Haven't peeled back the onion to identify root cause as I do not run FireOS on any of my devices. Do have temporary access to a 'stock' HD 8. Will take a look if time permits.
Could simply be a version mismatch on Android code shared between FireOS and Google components. That would be a tougher fix on unrooted devices.
Davey126 said:
I suspect (but have no direct evidence to support) a new dependency on a core Google component not included with the basic Play Store install for this device (FireOS v5 in general). Haven't peeled back the onion to identify root cause as I do not run FireOS on any of my devices. Do have temporary access to a 'stock' HD 8. Will take a look if time permits.
Could simply be a version mismatch on Android code shared between FireOS and Google components. That would be a tougher fix on unrooted devices.
Click to expand...
Click to collapse
I am a little surprised too. You can download it from the Play Store from the tablet so it's not to do with compatibility I don't think. I had the same problem earlier with Weather Underground and I downgraded a few versions and it worked. Could be an update Amazon snuck by us too. The tablet kicks you out right after you setup Gmail. It's like you can do everything else except read your Email. It even still sends you notifications. I thought it was working after my reset an hour ago because of the notifications. I tapped the icon, it went to setup and when it got to the inbox, it kicks me out. I'll reinstall it later using an older version and see if it works. I don't worry about auto update as I don't let my play store apps auto update.
EDIT: I recall when I had my Fire 7 working, you could go back a few versions of an app and update it from the play store to most recent and that fixed the issue. Perhaps try that?
Old version - good thinking
Didn't realize I could do that. I grew up coding assembly language on an IBM 50 - left when Smalltalk and C++ were all the rage.
I will stop auto updates and see about getting an older version.
I am kind of amazed that Amazon allows this "side loading" - it isn't really a root - just a sidestep.
Glad it works. The Fire 8 is a marvelous little gadget for the price. It will change EVERYTHING - like FIRE..
And it makes Jeff just a bit richer - like he needs it.
Many thanks.
cannot regress in Fire
carlscheider said:
Didn't realize I could do that. I grew up coding assembly language on an IBM 50 - left when Smalltalk and C++ were all the rage.
I will stop auto updates and see about getting an older version.
.
Click to expand...
Click to collapse
OK, after a bit of a search, I found a repository of older versions.
Is this reliable? https://gmail.en.uptodown.com/android/old
I am on 7.7.2 - I see there is even a newer one.
OK, 7.5.21 lasts a little longer - not much.
7.5.7 nope. 7.4.23 , 6.11.27, nope.
I am going to stop for now. I did find that it seems useful to delete the storage BEFORE uninstalling. It's like the next install picks up on the existing memory and just uses it. If you delete that, it starts fresh. Not that it is getting me anywhere. Thanks. Later.
carlscheider said:
OK, after a bit of a search, I found a repository of older versions.
Is this reliable? https://gmail.en.uptodown.com/android/old
I am on 7.7.2 - I see there is even a newer one.
OK, 7.5.21 lasts a little longer - not much.
7.5.7 nope. 7.4.23 , 6.11.27, nope.
I am going to stop for now. I did find that it seems useful to delete the storage BEFORE uninstalling. It's like the next install picks up on the existing memory and just uses it. If you delete that, it starts fresh. Not that it is getting me anywhere. Thanks. Later.
Click to expand...
Click to collapse
Older versions are also available on APKMirror. Not that it matters as it would seem an underlying dependency is missing. Becomes a cat-and-mouse game. Consider using a different mail app or the Gmail web interface.
Davey126 said:
Older versions are also available on APKMirror. Not that it matters as it would seem an underlying dependency is missing. Becomes a cat-and-mouse game. Consider using a different mail app or the Gmail web interface.
Click to expand...
Click to collapse
Damn shame no one these days has built in POP options anymore. I'd take a totally manual interface over an app any day.
---------- Post added at 10:45 AM ---------- Previous post was at 10:42 AM ----------
carlscheider said:
OK, after a bit of a search, I found a repository of older versions.
Is this reliable? https://gmail.en.uptodown.com/android/old
I am on 7.7.2 - I see there is even a newer one.
OK, 7.5.21 lasts a little longer - not much.
7.5.7 nope. 7.4.23 , 6.11.27, nope.
I am going to stop for now. I did find that it seems useful to delete the storage BEFORE uninstalling. It's like the next install picks up on the existing memory and just uses it. If you delete that, it starts fresh. Not that it is getting me anywhere. Thanks. Later.
Click to expand...
Click to collapse
Google is good about putting updates across all versions. If that is the case with Gmail, no older ones will work.
Gmail used to work. I did have it on the tablet a while back. Though I never reinstalled it after I did my first reset.
Davey126 said:
Look to another mail client (many fine options in Play Store) or use web interface.
Click to expand...
Click to collapse
You were right, there are other email apps that are fine... Thanks.
Would having root allow one to give the gmail app the proper permissions?

Android Pay stopped working

Hi,
I've an S7 Edge (GM-935F) that I've flashed with LineageOS and rooted with Magisk (currently 15.3, waiting for 15.4 to go stable). Since late December I was able to use Android Pay despite Safety Net checks never passing from Magisk Manager. Two weeks ago this stopped and when trying to use Android Pay the phone reports "You are no longer able to use Android Pay on this device". I've updated LineageOS nightly builds (which come through weekly) and have only the Xposed module installed (and up-to-date) from the Magisk modules list (i.e. it too is systemless). The Play Store shows my device as "Uncertified" under Settings > Device certification. I'd read here that Xposed causes the checks Android Pay performs to fail, but Xposed was installed and active (I use Gravity Box) when Android Pay was working and I've not updated Xposed since then (its version 89.2 of SDK25).
Its strange as I can start the Android Pay app and see my cards (payment and store) that I've added, just can't make actual payments.
A couple of catlog outputs from having failed to pay (unfortunately I don't have a CatLog from when Android Pay was working to compare this to)...
Catlog device info
Code:
build.board: universal8890
build.bootloader: G935FXXS1DQHF
build.brand: samsung
build.cpu_abi: arm64-v8a
build.cpu_abi2:
build.device: hero2lte
build.display: lineage_hero2lte-userdebug 7.1.2 NJH47F eaf65f5fde
build.fingerprint: samsung/lineage_hero2lte/hero2lte:7.1.2/NJH47F/eaf65f5fde:userdebug/release-keys
build.hardware: samsungexynos8890
build.host: agrippa.acc.umu.se
build.id: NJH47F
build.manufacturer: samsung
build.model: SM-G935F
build.product: lineage_hero2lte
build.radio: G935FXXU1DQD7
build.serial: ad07160328408551ce
build.tags: release-keys
build.time: 1517395812000
build.type: userdebug
build.user: jenkins
version.codename: REL
version.incremental: eaf65f5fde
version.release: 7.1.2
version.sdk_int: 25
Catlog from a failure to pay last week (can't remember what I filtered on, possibly 'pay')
Code:
02-09 14:21:12.958 I/ActivityManager(4796): Start proc 9367:com.google.android.apps.walletnfcrel/u0a128 for service com.google.android.apps.walletnfcrel/com.google.commerce.tapandpay.android.clientconfig.sync.ClientConfigSyncService
02-09 15:37:04.335 I/ActivityManager(4796): Start proc 11094:com.google.android.apps.walletnfcrel/u0a128 for backup com.google.android.apps.walletnfcrel/com.google.commerce.tapandpay.android.sharedpreferences.backup.TapAndPayBackupAgent
02-09 15:58:43.464 I/ActivityManager(4796): START u0 {act=com.google.android.gms.tapandpay.tap.TAP_EVENT cat=[targeted_intent_op_prefix:.tapandpay.tap.TapEventIntentOperation] flg=0x10040000 cmp=com.google.android.gms/.tapandpay.tap.TapUiActivity (has extras)} from uid 10033 on display 0
02-09 15:58:43.512 I/ActivityManager(4796): Start proc 11707:com.google.android.gms.ui/u0a33 for activity com.google.android.gms/.tapandpay.tap.TapUiActivity
02-09 15:58:43.549 I/ActivityManager(4796): START u0 {act=com.google.android.gms.tapandpay.tap.TAP_EVENT cat=[targeted_intent_op_prefix:.tapandpay.tap.TapEventIntentOperation] flg=0x10040000 cmp=com.google.android.gms/.tapandpay.tap.TapUiActivity (has extras)} from uid 10033 on display 0
02-09 15:58:44.729 I/ActivityManager(4796): START u0 {act=com.google.android.gms.tapandpay.tap.TAP_EVENT cat=[targeted_intent_op_prefix:.tapandpay.tap.TapEventIntentOperation] flg=0x10040000 cmp=com.google.android.gms/.tapandpay.tap.TapUiActivity (has extras)} from uid 10033 on display 0
02-09 15:58:44.847 I/ActivityManager(4796): START u0 {act=com.google.android.gms.tapandpay.tap.TAP_EVENT cat=[targeted_intent_op_prefix:.tapandpay.tap.TapEventIntentOperation] flg=0x10040000 cmp=com.google.android.gms/.tapandpay.tap.TapUiActivity (has extras)} from uid 10033 on display 0
02-09 15:58:45.752 I/ActivityManager(4796): START u0 {act=com.google.android.gms.tapandpay.tap.TAP_EVENT cat=[targeted_intent_op_prefix:.tapandpay.tap.TapEventIntentOperation] flg=0x10040000 cmp=com.google.android.gms/.tapandpay.tap.TapUiActivity (has extras)} from uid 10033 on display 0
02-09 15:58:45.875 I/ActivityManager(4796): START u0 {act=com.google.android.gms.tapandpay.tap.TAP_EVENT cat=[targeted_intent_op_prefix:.tapandpay.tap.TapEventIntentOperation] flg=0x10040000 cmp=com.google.android.gms/.tapandpay.tap.TapUiActivity (has extras)} from uid 10033 on display 0
02-09 15:58:49.593 I/ActivityManager(4796): START u0 {act=com.google.android.gms.tapandpay.tap.TAP_EVENT cat=[targeted_intent_op_prefix:.tapandpay.tap.TapEventIntentOperation] flg=0x10040000 cmp=com.google.android.gms/.tapandpay.tap.TapUiActivity (has extras)} from uid 10033 on display 0
02-09 15:58:49.699 I/ActivityManager(4796): START u0 {act=com.google.android.gms.tapandpay.tap.TAP_EVENT cat=[targeted_intent_op_prefix:.tapandpay.tap.TapEventIntentOperation] flg=0x10040000 cmp=com.google.android.gms/.tapandpay.tap.TapUiActivity (has extras)} from uid 10033 on display 0
02-09 15:58:50.082 I/ActivityManager(4796): START u0 {act=com.google.android.gms.tapandpay.tap.TAP_EVENT cat=[targeted_intent_op_prefix:.tapandpay.tap.TapEventIntentOperation] flg=0x10040000 cmp=com.google.android.gms/.tapandpay.tap.TapUiActivity (has extras)} from uid 10033 on display 0
02-09 15:58:50.156 I/ActivityManager(4796): START u0 {act=com.google.android.gms.tapandpay.tap.TAP_EVENT cat=[targeted_intent_op_prefix:.tapandpay.tap.TapEventIntentOperation] flg=0x10040000 cmp=com.google.android.gms/.tapandpay.tap.TapUiActivity (has extras)} from uid 10033 on display 0
02-09 15:59:29.338 I/ActivityManager(4796): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.google.android.apps.walletnfcrel/com.google.commerce.tapandpay.android.cardlist.CardListActivity bnds=[720,2054][981,2333] (has extras)} from uid 10027 on display 0
02-09 15:59:32.201 I/ActivityManager(4796): START u0 {cmp=com.google.android.apps.walletnfcrel/com.google.commerce.tapandpay.android.paymentcard.PaymentCardDetailsActivity (has extras)} from uid 10128 on display 0
02-09 16:04:01.184 I/ActivityManager(4796): START u0 {flg=0x10008000 cmp=com.google.android.apps.walletnfcrel/com.google.commerce.tapandpay.android.cardlist.CardListActivity (has extras)} from uid 10128 on display 0
02-09 16:04:08.506 I/ActivityManager(4796): START u0 {cmp=com.google.android.apps.walletnfcrel/com.google.commerce.tapandpay.android.cardlist.CardListActivity (has extras)} from uid 1000 on display 0
02-09 16:04:10.943 I/ActivityManager(4796): START u0 {cmp=com.google.android.apps.walletnfcrel/com.google.commerce.tapandpay.android.survey.SurveyActivity (has extras)} from uid 10128 on display 0
CatLog from failed payment this morning (filterd on "android.gms") with some activity from yesterday (was too long to include in a post here, hence pastebining it)
Its not vital that I get this working but I was starting to like the convenience of not having to take my wallet out. Any advice or suggestions would be very much appreciated.
Thanks in advance.
Not sure if relevant, but Santander app just updated and though hidden with Magisk Hide still detects root versions 15.3 and 5.6.
Edit: Cleared cache and data from banking app and works now
got same problem since yesterday. it worked perfectly with magisk root. any fix to this problem?
Hi,
Thanks for the input, I'm wary of clearing the cache for Android Pay as I'm unsure whether that is where card details are kept/stored, if so wiping may remove them. I can open the Android Pay app ok. My banking app (Nationwide) works fine, as does PayPal. Android Pay is by default hidden under Magisk Managers "Magisk Hide".
Reading through theres a thread which suggests using a dated module to use Universal SafetyNet Fix | Universal Hide but towards the end of the thread user Didgeridoohan recommends against it and suggests instead obtaining a valid fingerprint for the phone and using a boot script via resetprop method. They have a very useful page on using Magisk.
I think I'll give that a go, I've been meaning to give resetprop a whirl to get HDR working in the camera. Unsure where to find a valid fingerprint for this model of phone though, searching is almost useless as it returns matches on using the fingerprint scanner. Will have a trawl through the S7 Edge forum here though and see what i can find.
Updated this morning to the latest nightly build of LineageOS 14.1 and the device is still uncertified under Play Store > Settings > Device Certificate (I've an old backup from 2018-01-18 when the phone was working with Android Pay that I may give a whirl and see if it still allows payments, bit of a faff though). Also found a long thread on Android Pay on the Samsung GM-935F that I'll have a read through and another thread Has anyone got android pay working with root? where people have had success with root (including someone reporting success with Magisk).
Any other suggestions welcome.
+1
Same thing here. Samsung S7 Edge on Superman 2.7 rom.
Android pay stopped working a few days ago. I tried updating Magisk 15.3 / 5.6 (Android Pay is checked in Magisk Hide)
I'm able to open the app and see my cards. I deleted one of my credit card but unable to add it anymore. It always tells me "You are no longer able to use Android Pay on this device".
no luck...
any help would be appreciated.
Problem solved.
Install Safety net fix v2 beta 5. (check link below)
Download and flash with TWRP.
Reboot.
https://www.google.ca/amp/s/forum.xda-developers.com/apps/magisk/xiaomi-safetynet-fix-t3600431/amp/
Android Pay back to normal.
?
Slingky1178 said:
Problem solved.
Install Safety net fix v2 beta 5. (check link below)
Download and flash with TWRP.
Reboot.
https://www.google.ca/amp/s/forum.xda-developers.com/apps/magisk/xiaomi-safetynet-fix-t3600431/amp/
Android Pay back to normal.
[emoji6]
Click to expand...
Click to collapse
Thanks [emoji106]
通过我的 SM-G9500 上的 Tapatalk发言
Slingky1178 said:
Problem solved.
Install Safety net fix v2 beta 5. (check link below)
Download and flash with TWRP.
Reboot.
https://www.google.ca/amp/s/forum.xda-developers.com/apps/magisk/xiaomi-safetynet-fix-t3600431/amp/
Android Pay back to normal.
Click to expand...
Click to collapse
This didn't fix NFC issue though right? Just let you use the app properly again?
Slingky1178 said:
Problem solved.
Install Safety net fix v2 beta 5. (check link below)
Download and flash with TWRP.
Reboot.
https://www.google.ca/amp/s/forum.xda-developers.com/apps/magisk/xiaomi-safetynet-fix-t3600431/amp/
Android Pay back to normal.
Click to expand...
Click to collapse
didn't work for me (magisk v16)
Android pay stop working for me too. I was on magisk v. 15 and one day stop working. Every time when I try to pay payment get declined. Saftynet pass, but payment is declined every time when I want to use android pay. I cleared cache, data and still not working. I updated bo magisk v. 16 and still not working
---------- Post added at 08:51 AM ---------- Previous post was at 08:02 AM ----------
Android pay stop working for me too. I was on magisk v. 15 and one day stop working. Every time when I try to pay payment get declined. Saftynet pass, but payment is declined every time when I want to use android pay. I cleared cache, data and still not working. I updated bo magisk v. 16 and still not working
tambukey said:
This didn't fix NFC issue though right? Just let you use the app properly again?
Click to expand...
Click to collapse
For me, NFC is working cause I was able to pay at gas station and grocery store so it seems to be working again.
Most important, the following error message disappear ;
"You are no longer able to use Android Pay on this device".
I only installed Safety net fix v2 beta 5 via TWRP.
Then re-added my credit card and set it as default.
Presentely, Magisk v16, Magisk Manager 5.6.1
Android Pay is already disabled in Magisk Hide.
Sorry it didn't work for everyone.
I read that safety net fix changes build.prop and other things like that for better compatibility.
So it might be other Magisk modules...?
In my case, I only use Busybox for Android NDK 1.27.2m and Viper4AndroidFX 2.5.0.5.
Good luck guys.
Slingky1178 said:
For me, NFC is working cause I was able to pay at gas station and grocery store so it seems to be working again.
Most important, the following error message disappear ;
"You are no longer able to use Android Pay on this device".
I only installed Safety net fix v2 beta 5 via TWRP.
Then re-added my credit card and set it as default.
Presentely, Magisk v16, Magisk Manager 5.6.1
Android Pay is already disabled in Magisk Hide.
Sorry it didn't work for everyone.
I read that safety net fix changes build.prop and other things like that for better compatibility.
So it might be other Magisk modules...?
In my case, I only use Busybox for Android NDK 1.27.2m and Viper4AndroidFX 2.5.0.5.
Good luck guys.
Click to expand...
Click to collapse
I upgraded to the v2 beta 5 for safety fix, but haven't tested yet. Can I ask more about your device, trying to piece together why some people get it to work and other don't. What device, which rom, and I see you're on most recent Magisk. Have you tried it again since updating those? And also you 100% never got the NFC side to work before upgrading to Safety Net v2 beta 5?
tambukey said:
I upgraded to the v2 beta 5 for safety fix, but haven't tested yet. Can I ask more about your device, trying to piece together why some people get it to work and other don't. What device, which rom, and I see you're on most recent Magisk. Have you tried it again since updating those? And also you 100% never got the NFC side to work before upgrading to Safety Net v2 beta 5?
Click to expand...
Click to collapse
My device is Samsung S7 Edge on Superman rom 2.8
Carrier is Bell Canada.
Yes, I tried Google Pay this morning and still fonctionning.
It was working a few days ago like others (via NFC of course)
One day, it stopped working with the error message "You are no longer able to use Android Pay on this device".
I deleted my credit card from Android Pay app but was unable to readd it.
So I dig that forum and finally decided to install safety net fix and it's working now.
Slingky1178 said:
My device is Samsung S7 Edge on Superman rom 2.8
Carrier is Bell Canada.
Yes, I tried Google Pay this morning and still fonctionning.
It was working a few days ago like others (via NFC of course)
One day, it stopped working with the error message "You are no longer able to use Android Pay on this device".
I deleted my credit card from Android Pay app but was unable to readd it.
So I dig that forum and finally decided to install safety net fix and it's working now.
Click to expand...
Click to collapse
Awesome, thank you. I have not gotten that error before, but I don't think that would stop it from working. Hopefully I will figure out why it just never starts the NFC process. Granted, after visiting Canada twice now I truly feel like U.S. is super far behind on NFC payment at registers. We have the right tech, but they never enable them at any store. I can only find a couple in my area that show the symbols, and for all I know they don't actually have them on since basically no one in the states seems to use it.
tambukey said:
Awesome, thank you. I have not gotten that error before, but I don't think that would stop it from working. Hopefully I will figure out why it just never starts the NFC process. Granted, after visiting Canada twice now I truly feel like U.S. is super far behind on NFC payment at registers. We have the right tech, but they never enable them at any store. I can only find a couple in my area that show the symbols, and for all I know they don't actually have them on since basically no one in the states seems to use it.
Click to expand...
Click to collapse
From my personnal experience, Canada used to lag behind USA for tech deployment.
Major banks just activated NFC payments via smartphones like april last year.
(before it was working but a NFC sim card was required and it was just working for a very limited number of smartphones)
Now, I would think pretty much any smartphone with NFC is compatible.
The problem is that merchants also have to replace their terminals so maybe they don't want to pay for that...
Now, I'm able to pay at drugstore, grocery stores, gas stations and even restaurants.
The only drawback is the 100$ limit.
Slingky1178 said:
From my personnal experience, Canada used to lag behind USA for tech deployment.
Major banks just activated NFC payments via smartphones like april last year.
(before it was working but a NFC sim card was required and it was just working for a very limited number of smartphones)
Now, I would think pretty much any smartphone with NFC is compatible.
The problem is that merchants also have to replace their terminals so maybe they don't want to pay for that...
Now, I'm able to pay at drugstore, grocery stores, gas stations and even restaurants.
The only drawback is the 100$ limit.
Click to expand...
Click to collapse
There is a limit? Is that a bank set limit? I
I'm pretty sure it's configured by the merchant.
Only place I saw more was at "Maxi A Plein Gaz".
It's a gas station. Max is 150$.
And Google Pay on phone works even outside at the pump
Slingky1178 said:
I'm pretty sure it's configured by the merchant.
Only place I saw more was at "Maxi A Plein Gaz".
It's a gas station. Max is 150$.
And Google Pay on phone works even outside at the pump
Click to expand...
Click to collapse
Strange I have never seen limits, granted mine doesn't work , Regardless thanks for the info. I will be doing some testing soon, luckily I have a mall near me where every vending machine has one and there are about 5 different types available to test with.
tambukey said:
Awesome, thank you. I have not gotten that error before, but I don't think that would stop it from working. Hopefully I will figure out why it just never starts the NFC process. Granted, after visiting Canada twice now I truly feel like U.S. is super far behind on NFC payment at registers. We have the right tech, but they never enable them at any store. I can only find a couple in my area that show the symbols, and for all I know they don't actually have them on since basically no one in the states seems to use it.
Click to expand...
Click to collapse
I've got the same problem using the Universal SafetyNet module on my Xperia Z5. Everything in AndroidPay works, but when I go to pay it seems like NFC never gets activated. I know NFC works on my ROM because I can use Android Beam with no issues.
I'm wondering if it's an issue with the module spoofing the wrong phone or if others are able to use AndroidPay on a custom ROM with the Universal module.
Devo7v said:
I've got the same problem using the Universal SafetyNet module on my Xperia Z5. Everything in AndroidPay works, but when I go to pay it seems like NFC never gets activated. I know NFC works on my ROM because I can use Android Beam with no issues.
I'm wondering if it's an issue with the module spoofing the wrong phone or if others are able to use AndroidPay on a custom ROM with the Universal module.
Click to expand...
Click to collapse
So far I haven't figured out a correlation on who has it working and who doesn't. It's kinda hit or miss since there really don't seem to me a lot of people trying to get it to work. I don't think it has to do with the Universal Module. I looked at its script and don't see anything related specifically to NFC, maybe something to do with how it affects SEpolicy but I am not sure. I am still pretty new to most programming languages.
I am wondering if we can come up with a script to basically force the pay NFC to activate. Like a root accessed app that starts nfc, reads if any are nearby, verifies it is a pay service, then loads the saved card into active nfc? Again, I have no idea how to actually make that happen.

Categories

Resources