yashsingh1/xdaforums huggingface dataset:
[Xposed Framework Modules] agentdr8:
That is rather odd. It won't technically start logging until you run Android Auto on your phone, since it's only targeting that app, and won't inject until it sees it in memory. But if you have AA running and there still aren't any debug lines, then something else is going on.
[Xposed Framework Modules] pjcamp:
Which Xposed are you using? The module version for Magisk and associated installer solved all my problem.
[Xposed Framework Modules] agentdr8:
I see that there's a new version of AA out today; 3.6.5835xx. I'll get the module updated for that version hopefully in the next few days.
[Xposed Framework Modules] xs1337:
I've tried with both types of xposed (stand-alone and Magisk module), with the same result

---------- Post added at 08:13 AM ---------- Previous post was at 07:32 AM ----------

I'm now able to see the log! I pulled your source code from gitlab and took a peek. It looks like under certain circumstances, the prefs are not available during the initZygote callback, so the default value of false is assigned to the DEBUG static variable.

I changed: DEBUG = prefs.getBoolean("debug", false);

To: DEBUG = prefs.getBoolean("debug", true);

So at least if the prefs aren't available we don't lose the log. And users that don't have issues wouldn't be affected by this fix...

There was some talks about this, for example https://github.com/rovo89/XposedBridge/issues/56 and https://github.com/rovo89/XposedBridge/issues/74
[Xposed Framework Modules] agentdr8:
Interesting. Thanks for the feedback and references; I'll change the default value to true. I remember having issues w/ SharedPreferences way back when (MM days?) but had thought rovo had addressed that in more recent versions.
[Xposed Framework Modules] krilok:
It's my understanding an OEM head unit is one that came built-in with the car? Then yes, I've one on mine and used this module with relative success. Although I still get the warning after a few taps, I can continue browsing and scrolling in the background... If its any help, I've a Moto G6+ running Android 8.0 and the latest AA (well, the previous one to the one released today)...
[Xposed Framework Modules] agentdr8:
I posted a new version on the first post. Should work with AA 3.6.583xxx. Please test on OEM and aftermarket headunits and let me know how it goes.
[Xposed Framework Modules] xs1337:
Thank you for being so responsive to the new version. Tested on OEM headunit (Honda/Acura) and a Pixel 1.

It doesn't work, there is an error message in the log and I get blocked from scrolling. Also this time, unlike before, if I insist and continue attempts at scrolling, I'm booted out of the list back into the main music screen.

Log Attached.
[Xposed Framework Modules] agentdr8:
Thanks for the log. I mistyped a method name which cause the module to throw an exception. I've rectified that and uploaded a new version.
[Xposed Framework Modules] xs1337:
The error is gone, but the module doesn't do anything on my OEM headunit, unfortunately. I have attached the log but it doesn't show anything out of the ordinary. Compared to the previous version, now AA crashes if I try to scroll too many times past the "safety bump". It shows a black screen, the music stops and it takes me back to the main music screen.
[Xposed Framework Modules] agentdr8:
Try this version. I reverted a change I had made to one of the method replacements.
[Xposed Framework Modules] agentdr8:
Here's one more to test. I added a few other methods to override that relate to content browsing and/or the speed bump.
[Xposed Framework Modules] xs1337:
Version A fixed the crash, but I was still unable to browse. Version B doesn't appear to change anything, I'm still unable to browse past 7 entries or 3 pages.

I posted a little video of what it looks like, in case this might be of some help. At first the car is not moving and I show that I can scroll the entire list of 50 songs. Then the car starts moving and I show that I can't scroll past the 7th song.

Sometimes there is an "Exit" button that appears within the error banner, which gets highlighted if I scroll back up, but pressing the button doesn't do anything. This behavior occurred just now with version B, but doesn't show in the video below:

[Link removed]

Log attached.
[Xposed Framework Modules] agentdr8:
Thanks for the video and log. The "Exit" button is on the same layout as the speed bump, so I think I'm somewhat closer to figuring out what else needs to be bypassed so that it doesn't show that. But it appears the methods I'm currently overriding still aren't catching the motion being sent by the vehicle (likely via CANBUS). I'll try and start working on that other module that will hopefully expose those sensor outputs.

EDIT: I've attached a test module that does nothing but logging various classes and methods to see if we can determine what sensor(s) your vehicle has and the values they're sending to the headunit. Please install, enable and test alongside the SAAX module. There should be some good log output in the Xposed log, prefixed by the tag SXTest.
[Xposed Framework Modules] xs1337:
Sorry I had not seen your edit earlier. I did a short drive up and down my driveway at low speed (but fast enough to trigger the block). Basically the same thing as you saw in the video. It wrote a big fat log. Hope it helps...

[Link removed]

Thank you!
[Xposed Framework Modules] agentdr8:
Perfect. Would you say the top speed you reached was roughly around 4-5MPH? If so, I'm pretty sure I have accurate speed data. From what I remember seeing, the speed bump won't trigger under 1.5MPH by default.

:good:

I've also sent you a PM.
[Xposed Framework Modules] xs1337:
Hard to tell without properly recording my speed. It seems "OK", but I'm going to do another run while recording my speedometer this time. Also I'll go out in the street so I can record more representative speeds.
[Xposed Framework Modules] agentdr8:
Give this one a try. I added the CarSensorEvent classes and am overriding the speed sensor, location sensor (speed value), and driving status.
[Xposed Framework Modules] xs1337:
It's working!!! BOSS!

I could scroll hundreds of entries, this is fantastic.

Thank you SO MUCH man :good: I'm sure this is going to help so many others too. Excellent job.
[Xposed Framework Modules] agentdr8:
Awesome. Thanks for taking the time and effort to help test all these variations out.

You'll probably want to disable debugging once you're satisfied, as the excessive logging might affect AA or phone performance.

I'll update the OP and Repo with the latest version.
[Xposed Framework Modules] DoucheMcDoucherson:
Where is the tap limit?

I'm not seeing any tap limit. I'm using version:

SAAX 1.8.5

samsung Galaxy s7

Android 8.0

Android Auto 3.6.583534
[Xposed Framework Modules] agentdr8:
Please upgrade to 1.8.5c. The preferences are no longer necessary and they've been removed. The only one left is the debug toggle.
[Xposed Framework Modules] xs1337:
About that... Now I'm stuck with the log since for some reason Xposed refuses to read the prefs properly on startup. And now that debug defaults to true... ;) I'm going to try to find out what's going on with Xposed not reading this file during init. I checked the permissions on the SAAX pref file and the parent folder and everything looks good. There has got to be something...
[Xposed Framework Modules] xs1337:
Hey [MENTION=434511]agentdr8[/MENTION], as a follow-up to our earlier conversation about the preference file and issues with reading the debug option during the initZygote callback... I have made a couple of interesting discoveries, and I would like to propose a final fix... (better than the quick and dirty fix I proposed to you earlier).

In 2016 Google has started enforcing SELinux in Android. They've also introduced something called direct boot. In a nutshell, the OS becomes operational very early on in the boot sequence, albeit with stringent file access restrictions until the user unlocks the device. (source: https://android-developers.googleblog.com/2016/04/developing-for-direct-boot.html)

When initZygote is called, because it's so early, the preference file is not yet accessible to the Xposed framework through the XSharedPreferences class. So you can see the problem...

The makeWorldReadable switch is an attempt at helping with file opening issues, but will not work in this case. The Xposed API doc says "This will only work if executed as root (e.g. initZygote()) and only if SELinux is disabled." (from https://api.xposed.info/reference/de/robv/android/xposed/XSharedPreferences.html#makeWorldReadable())

Interestingly, I looked at the GravityBox source and they do not use XSharedPreferences, and instead have implemented their own preference loading routines, in accordance with the principles explained in that first link about direct boot.

So with all that in mind... I made a small code change which I have verified fixes the problem entirely on all of my devices. Sorry for posting it here but I'm not set up for Gitlab code submissions:

private static void initPrefs() {
prefs = new XSharedPreferences("com.dr8.xposed.saax", "com.dr8.xposed.saax_preferences");
prefs.makeWorldReadable();
DEBUG = prefs.getBoolean("debug", false);
}

@Override
public void initZygote(StartupParam startupParam) throws Throwable {
initPrefs();
}

@Override
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
initPrefs();

// String targetcls = "egh"; 3.4.x
// String targetcls = "dyi"; 3.5.x
String targetcls = "ehh";

[etc...]

Basically we attempt to read the prefs one time during initZygote as usual (which will fail on many devices that implement SELinux and fast boot). And then when the AA package gets loaded, we read the prefs again. This will also have the advantage of not needing a reboot of the device when changing a preference. Note that I reverted the default value of the DEBUG flag to false again.

What do you think? Hope this helps.

---------- Post added at 07:52 PM ---------- Previous post was at 07:43 PM ----------

[MENTION=9399761]Liquid50[/MENTION], I believe you need to upgrade to the latest AA version (3.6).
[Xposed Framework Modules] Liquid50:
Upgrading and will report back!

---------- Post added at 07:48 PM ---------- Previous post was at 07:29 PM ----------

1.8.5c working perfectly on latest Android Auto

+rep

Donate button?
[Xposed Framework Modules] agentdr8:
Thanks for looking into it and providing code as well. I'll get it integrated and test it out to see how it's working and post it up so that you have a chance to verify the changes.
[Xposed Framework Modules] agentdr8:
Any time you see this error (NoSuchMethodError) it likely is always a version mismatch between the SAAX module and the intended AA version. Since the AA code is obfuscated, each module has to be built for that particular AA version. Class and method names change each time Google releases another version. PITA for sure, but not much I can do about it.

Spot on. :good:
[Xposed Framework Modules] agentdr8:
[MENTION=9434937]xs1337[/MENTION] When you have a chance, try this version and see if the debug toggle is working for you. It seemed to work for me, but I had to force stop the AA process before it would re-read in the changed pref setting.
[Xposed Framework Modules] krilok:
Tried v1.8.5c this morning and didn't get any warnings or scrolling limits at all!

[MENTION=434511]agentdr8[/MENTION]; Thank you for all your efforts...
[Xposed Framework Modules] xs1337:
Yes it works great. Looks like Android keeps some processes alive in the background at its own discretion for faster loading times, so that's why that load event doesn't get triggered every time we start AA. I'm not sure what mechanism Xposed has, that would detect the app being started by the user, but it works good enough as it is, I think.

Now here is a question and maybe a feature request? We the users would hate to lose you as the dev of this great module. I know that if you had to step aside, I would never update AA because I don't want to lose the functionality that ASAX brings. But I've noticed Google FORCES me to update AA if my version becomes "old" (not even that old). I went to apkmirror and downloaded version 3.0, and upon launching it, I get a mandatory screen asking me to update AA or leave. If I accept, it does a background update via Play Store. Very sneaky. So the feature request is: could the forced update be bypassed if you hooked to the right method(s)? I've attached a screenshot of what I'm talking about.

At any rate, thank you so much for making AA usable. Isn't it funny how car manufacturers have no problems letting us browse a 2,000-song USB stick, but somehow Google thinks we can't do that?
[Xposed Framework Modules] agentdr8:
I've looked into blocking the mandatory updates, but unfortunately the dependencies aren't that cut & dry. AA depends on a certain version of Google Play Services, which depends on a certain version of Google Play Store, which provides certain versions of Google Play Music and Google Maps, which are required for AA to even function. I'm sure it was all carefully thought out by Google to maintain full control over the AA experience, but it is rather annoying, especially when I don't use Google Play Music, but am required to have it installed (and updated) just so that AA works.

While I have no intention of abandoning the SAAX module any time in the near future, I can definitely understand your perspective. It's actually quite funny (to me), since I don't even use my own module ever since I got a Pixel and use Google Pay. Got tired of toggling Xposed on/off just to make payments. Outside of my dev m8 and the DHU emulator, I'm relegated to Google's annoying restrictions. Luckily I don't have a ton of content that I use via AA, so I don't encounter the speed bump that often.

One thing I'm pretty open about is making sure the source is available to all. And if anyone wants specifics on the process/workflow that I use to adapt the module to new versions of AA, I'm more than willing to post that up as well. It should be maintainable by pretty much anyone with some Java experience if I were to drop off the face of the planet.
[Xposed Framework Modules] xs1337:
I see what you mean. It would actually be pretty cool if somehow you could do a little write-up of your process, sort of like a how-to/tutorial. Although it can be tailored to your experience with AA and SAAX, I'm sure many other Xposed developers would be interested. I haven't found a lot of well-written articles on Xposed (not to say zero). In fact, I'm particularly interested in your reverse engineering tools and procedures. The little I've messed with true reverse engineering, it was fun but challenging (I'm talking about disassembling with IDA- it can't be worse than that?? Thankfully Java is not a compiled language).
[Xposed Framework Modules] agentdr8:
I've done some disassembly work with IDA too; reverse engineering APKs is definitely easier than that by a significant amount. Mainly due to all the great open source tools that others have released, and because dalvik bytecode can be sort of converted back into understandable Java syntax.

I'll put something together and post it up. It probably won't be an exact how-to, since I'm not a programmer by trade or education, but if I can fumble my way through it to produce usable modules, I'm sure anyone else can too.
[Xposed Framework Modules] krilok:
Now that the module seems to have lifted restrictions, I wonder if something similar can be done with audio processing. At the moment, while using AA and listening to music, audio is always processed by the car's head unit and not by the phone, so DSP's such as V4A have no effect on the sound output. My car's built-in audio settings are limited to basic bass and treble control, and no matter how much I fine tune them the overall sound is honestly quite horrible... [MENTION=434511]agentdr8[/MENTION]: Would bypassing this be at all possible through xposed? Any suggestions? Your feedback would be much appreciated...
[Xposed Framework Modules] agentdr8:
I know we visited this topic before, and I don't think it's something I can fix. V4A is injected at a system level, so I think in order for it to process the audio for AA it would need to be updated/modified to account for that audio path. Even if I could reroute the audio out a different stream, I don't think it would ultimately end up at the headunit, so that wouldn't be any better than playing music from your phone directly.

There are other solutions, depending on your vehicle, and what sort of budget you have to address it. Traditional car audio components (such as a line-level converter + EQ or DSP) would probably net you better results.
[Xposed Framework Modules] krilok:
Sorry, didn't realise we'd mentioned this before. Thank you for your reply and advice anyhow... ?
[Xposed Framework Modules] kenñyhartline:
Coolo
[Xposed Framework Modules] kingofvagabonds:
Please excuse my ignorance. I have an unrooted Samsung S8 Snapdragon, and this module would be essentially the only reason I root the phone. Does this work with the most basic rooting process? My understanding according to the xda rooting guide is I can do a basic root with something like CF Auto Root which enables Super SU. I'm assuming I can then put xposedinstaller and xposed platform on the phone, followed by this module? Thank you so much.
[Xposed Framework Modules] agentdr8:
Sounds about right, but I'm not a Sammy expert, so I don't know the exact steps involved. I know that you need root for the Xposed installer, but how you obtain that is device-dependent.

Assuming you have the Xposed framework properly installed and working, the module should just work.
[Xposed Framework Modules] mistermojorizin:
please disregard if mentioned already, there seems to be a new version of AA in the play store. Thank you!
[Xposed Framework Modules] agentdr8:
Thanks for the heads up. I'll see what changed and update the module shortly.
[Xposed Framework Modules] agentdr8:
Posted the updated module on the OP and the Xposed Repo. Please let me know if there are any issues.
[Xposed Framework Modules] agentdr8:
I see that there's a new version of AA out. I'll try and get the module updated later today.

EDIT: New version posted to OP and Repo.
[Xposed Framework Modules] krilok:
Just a note to thank the Dev for his work, and let users know the module works great... Unfortunately, I've just switched phones and the new one runs Pie, so no xposed yet, which is a bummer...

Hopefully it will develop soon enough...
[Xposed Framework Modules] mistermojorizin:
Just a heads up that version 3.9 of android auto is available now. Thanks for continuing development!
[Xposed Framework Modules] agentdr8:
Thanks. I'll start working on it tomorrow.
[Xposed Framework Modules] krilok:
Agentdr8: Any thoughts on porting this to Magisk or as a standalone app? Xposed for pie is nowhere close...
[Xposed Framework Modules] agentdr8:
AFAIK it's not possible. Magisk modules can only do systemless files, libraries, and APK replacements, not in-memory modifications or process injection. I would have to modify the AA package itself, but since it's heavily obfuscated, there's zero chance of it successfully compiling with a test certificate. And without the proper package signature, it likely won't work with Google Play Services, which it needs to integrate with all the other Google stuff.
[Xposed Framework Modules] krilok:
Sad it can't be done, but thanks for the explanation anyhow...?
[Xposed Framework Modules] agentdr8:
Updated the module for 3.9.585xxx, but since only the arm64 package variant was released on APKMirror, I'm unable to test the module, as I don't have any 64-bit devices with Xposed. Please test and let me know if this works on your devices.
[Xposed Framework Modules] Liquid50:
I upgraded to a PIXEL 3 XL and of course I was sad to lose unlimited scrolls but I found an app that disables the scrolling limit! Its called ODB2AA and it works without ROOT!

Wanted to share with those who can't run XPOSED or don't want to ROOT their phones.

Works pretty great on my FORD Sync 3 unit + Pixel 3 + Android Pie.
[Xposed Framework Modules] krilok:
Thank you, will have a look at the app you mentioned... Great to know removing the limit can be achieved without xposed, too. ?
[Xposed Framework Modules] calichelozano:
Hi, this will only work with GPS units, not all android auto.

This Xposed module doesn't work anymore with the latest AA release, will there be a new version of SAAX?

Thanks!
[Xposed Framework Modules] agentdr8:
Yes. I didn't realize Google released another version of 3.9 2 days ago. Now that there's a 32-bit build, I can actually test the module as well. I'll hopefully get it updated sometime this weekend.

EDIT: I compared the releases against one another and they're the same. So v1.8.9 of the module should work fine with AA 3.9.585xxx. Verified on my m8.
[Xposed Framework Modules] Liquid50:
Oh ok. My head unit does have GPS. I have to enable the "head unit server" in Android Auto. Perhaps you can develop an app that doesn't require root ;).
[Xposed Framework Modules] Crapping_Bricks:
Just wondering, are there any settings to be changed in this module anymore? Because the app just shows a debug setting
[Xposed Framework Modules] agentdr8:
No settings any longer. For the most part, people just want the prompts gone, so I did away with all of them.
[Xposed Framework Modules] krilok:
Good news for those on Pie... Edxposed!! Tried it a few days ago with this module but AA crashed constantly (something related to resource hooks from what I read). Thought I'd wait a bit for development to evolve, and tried again today... With the latest Edxposed version, we can finally get to use SAAX on pie!

Here's a link to the currently compatible Edxposed modules:

https://www.google.com/url?sa=t&sou...BRAB&usg=AOvVaw0SaJp4wm0jLP5wrIHLyNh2&ampcf=1

You'll also find the links there to download it and get it running... ?
[Xposed Framework Modules] calichelozano:
hi! this module isn't working anymore, will a new version be released? would be great. thanks.
[Xposed Framework Modules] krilok:
Working for me... Latest AA and edxposed....
[Xposed Framework Modules] calichelozano:
mine is doesn't. android 8, xposed, latest AA.
[Xposed Framework Modules] agentdr8:
Can you enable debugging and send me your Xposed Error Log?

Also, which version of Android Auto do you have installed?
[Xposed Framework Modules] calichelozano:
Hi, can you please tell me how to enable debug mode on Xposed and copy log? I can't find the option.

my AA version is 3.9.585064

Thanks,
[Xposed Framework Modules] agentdr8:
In Xposed Installer -> Modules, tap on SAAX and enable the debug option. Force stop Android Auto, and then relaunch it. Exit out and then go to Xposed Installer -> Logs and send that to me.
[Xposed Framework Modules] *justintime*:
Thanks for the tip.... Do you need to install Torque also? Too work?
[Xposed Framework Modules] Liquid50:
No
[Xposed Framework Modules] mistermojorizin:
Thanks for continuing to support this module. New version available: https://www.apkmirror.com/apk/google-inc/android-auto/android-auto-4-0-5904-release/
[Xposed Framework Modules] calichelozano:
Will the op release a new version?
[Xposed Framework Modules] mistermojorizin:
I think so, but no expectations. He mentioned it's ok if we give him a heads up from time to time when a new version is available. But it's not like he owes us anything, he's just releasing his work out of the goodness of his heart, when he's ready to share something. :good:
[Xposed Framework Modules] agentdr8:
Thanks for the heads up.

Yep.
[Xposed Framework Modules] agentdr8:
Oops, double-replied.
[Xposed Framework Modules] aryehzev:
I'm on the OnePlus 6T with EdXposed and I don't see any options.

My other modules are working fineView attachment 4709925
[Xposed Framework Modules] krilok:
Don't worry, there are no longer any options to tamper with since a few versions back... Just install the module and it should do its thing.
[Xposed Framework Modules] agentdr8:
Latest version added to OP and Repo.