yashsingh1/xdaforums huggingface dataset:
[Huawei Mate 10  Guides, News, & Discussion] Luinwethion:
Just have some awesome news, B146 update finally adds AAC support for BT audio.
[Huawei Mate 10  Guides, News, & Discussion] GozoHU:
I'm looking forward to new B146 update
[Huawei Mate 10  Guides, News, & Discussion] aedel:
distorted and very thin sound when using the equalizer was solved after getting android pie 9.0.0.159 (c185) yesterday here in KSA. before i have the same problem in all Oreo firmware. :good:
[Huawei Mate 10  Guides, News, & Discussion] senkrad76:
Interesting, my experience is the opposite. Nice audio with 8, dirty and tinny articles in the audio after.
[Fire HD 8 and HD 10 Q&A, Help & Troubleshooting] sonofskywalker3:
I just picked up a refurb HD 8, and it's got 5.4.0.1 software installed. I don't want to update any further, but as soon as I got online it downloaded the OTA, and says that it will update when I'm not using the tablet. So I've kept using it to stop that from happening, but I'd really like to just delete the OTA file and block it from downloading again, but I've got no idea how to, and I'm afraid it'll update on me before I can figure it out. Any help?
[Fire HD 8 and HD 10 Q&A, Help & Troubleshooting] DragonFire1024:
The best you can do is use a firewall. https://xdaforums.com/showpost.php?p=77062644&postcount=10
[Fire HD 8 and HD 10 Q&A, Help & Troubleshooting] sonofskywalker3:
Thank you, I have installed the firewall, but the ota download always completes before I can get it installed and set up. What do I lose by updating to the latest version? What do I gain?
[Fire HD 8 and HD 10 Q&A, Help & Troubleshooting] DragonFire1024:
Right now, you don't lose anything. You are literally .1 too high to benefit from the disabling of system apps. You can't downgrade. Since there is no root or other method to disable apps, the choice is yours.
[Android Head-Units] looxonline:
[SOLUTION]

This integration is not present on most head units so I wrote a Xposed module which hooks the proprietary button press handling methods and translates them into standard HID keypresses. This means that SWC will work with Zlink/Zbox and it will also work with other apps on the head unit such as Spotify and Apple Music.

See https://xdaforums.com/showpost.php?p=79312591&postcount=56 for the first release and follow the thread for later releases.

Note that there are two types of releases, final and debug releases. Final releases do not display and debug information via toast messages on the screen. Debug releases display button press information via toast messages on the screen which allow users to collect this information and submit it on this thread so that it can be integrated into the module and their buttons can be supported.

[ORIGINAL PROBLEM]

Hi all,

I recently just picked up a Witson W2-W329 unit. Basically it's a PX5 unit with the following OS Build and firmware:

CPU: ARM Cortex-A53 eight-core 2+32 GB PX5; CPU: PowerVR G6110

Build: PX5-userdebug 8.0.0 OPR5.170623.007 eng.bsp.20180528.174007 test-keys

MCU: 2018-04-16 17:04:06 ZHAN_(NOR)__90_C9RD6686_CAN(A)PX5D1804160

After some fiddling with USB ports I managed to get CarPlay working and to be honest the interface makes the unit feel premium vs the standard bluetooth audio interface. I'd love to use it over the standard interface BUT.... steering wheel controls don't work. :(

I've got it installed into a Renault Koleos which has a CANBus box. So here is my question...

Has anyone else used CarPlay on a PX5 unit and been able to use their steering wheel controls with it?

It would seem as if the OS just has to push the commands through to the app via some sort of an API. The kind of integration you would expect...
[Android Head-Units] vassandrei:
Are you using the zlink app for Carplay or do you have a dongle?
[Android Head-Units] looxonline:
Zlink. What Witson unit do you have? Is it PX5 and running CAN? Do you know if the SoM is made by FYT?
[Android Head-Units] Zaagfluit:
I have the same problem, also with can bus with a w2 w207 wiston device for my peugeot 207

joying has similar looking mcu names [IMG="joying mcu"]https://i.imgur.com/r5HWTjw.png[/IMG]

and has also firmware for my car, with can bus and the same px5, screen res & ram. (maybe also for your car)

what is different is that i have a built in dvd drive and the joying unit does not.

1. Is it a bad idea to try this firmware? joying has a newer firmware

2. is it possible to revert to the preinstalled firmware if it does not work properly (backup)?
[Android Head-Units] looxonline:
A few thoughts:

Some weeks ago the user [MENTION=9263010]walkin123[/MENTION] tried the same thing. He installed the latest Joying FW onto his Seicane unit. The unit accepted the firmware but knew that it was not a joying unit (they must have some sort of a handshake with the MCU) and therefore displayed a banner at the top of the screen indicating that the FW does not match the MCU. Even though his FW supported CAN it seems that it does not support all of the vehicles that the Seicane FW did and so he was unable to select his particular vehicle from the Android system. Even though Android does not perform the CAN decoding it seems as if it configures the MCU and possibly the CAN box as to what vehicle to decode for and without the option to select his vehicle he lost all CAN inputs including steering wheel commands. On the plus side the FW solved all of the other bugs that he was experiencing.

Another possible problem is that while the MCUs and the interconnections within the units are similar they are not identical. For instance they seem to use different radio tuner modules which the MCU controls via I2C/I2S. You may lose radio functionality if the different modules are not protocol compatible but you may be OK if they are.

Regarding the backup and restore option, this is something that I have been investigating for the last week. I believe that it should be simple to make a backup of the /system /restore /data and /misc partitions so that an Android restore should be possible. Whether or not the unit will allow you to force an older ROM over a newer ROM is something that I am unsure of. [MENTION=2550900]surfer63[/MENTION] or another experienced member would be able to help you there. In the case of the MCU I also believe it is simple to extract the img but once again I am unsure of how simple it would be to write it back over whatever you install.

Perhaps [MENTION=2550900]surfer63[/MENTION] or one of the more experienced guys could comment on this.
[Android Head-Units] Zaagfluit:
Ok, thnx for the explanation!

I'll probably wait/hunt for a more suitable firmware then.

I think the swc function for the zlink app is just something they forgot to implement, all other stock apps do have swc, so a small update would fix it.

I also noticed that the zlink software in my unit is 2.X. The latest from zjinnova is 4.X.
[Android Head-Units] looxonline:
All the best getting firmware out of Witson. I think you would be the first person I have hear of as being successful in doing so. They have literally zero support. I would never suggest buying from them unless you absolutely have to. Joying support is FAR better.
[Android Head-Units] Zaagfluit:
I'm afraid you're right. i think i will try some retailers selling "s200" devices that claim they provide software updates.
[Android Head-Units] Zaagfluit:
Somone on this forum has extracted an updated version of the zlink apk from a joying firmware with build in carplay support. Could this solve the steering wheel problems? Is it possible to run the 2 apk’s with different version numbers side by side?
[Android Head-Units] looxonline:
Just be sure you are not mixing the zBox APK with the zLink APK. If you did find an updated zLink APK I'd be interested to know where. I would like to give it a test.
[Android Head-Units] Zaagfluit:
https://xdaforums.com/android-auto/...ction-joying-unit-android-auto-t3791200/page3

Its on this page, the apk is included in reply #25. They try to use it in a unit without the carplay function built in

---------- Post added at 11:10 PM ---------- Previous post was at 10:29 PM ----------

On this site there are people who do get newer versions of certain s200 wxxx mcu’s from witson, So if a new version is released you will probably find it there first.

https://www.roadnav.com
[Android Head-Units] looxonline:
Sweet mother of pearl.......WITSON just contacted me with a firmware update dated 02.08.2018. After weeks and weeks of absolutely no feedback whatsoever they just dropped this one....

Will install it this weekend and see if it fixes the issue.
[Android Head-Units] Zaagfluit:
Nice!, Thats fresh from the oven. Is it specific for your car?:angel:
[Android Head-Units] looxonline:
It's labelled as specific in the filename but when you scan through the MCU folder it has a list of compatibly radio and CAN configurations that seems to cover everything that they sell.
[Android Head-Units] Zaagfluit:
Sounds promising:good:

---------- Post added at 08:53 AM ---------- Previous post was at 08:40 AM ----------

Ohh yeah...I got it too!
[Android Head-Units] looxonline:
Dig through the archive and check what dates the files were modified on. Looks like they labelled it 02.08.2018 but to be honest there is not much in there that was modified after April.
[Android Head-Units] Zaagfluit:
I’ve installed it, and it is EXACTLY the same mcu number (same date, same time, same everything) as you described in the beginning of this topic. Nothing changed, zlink app still on 2.4
[Android Head-Units] looxonline:
Exactly my point. Did you check the android build details and are they also the same?

Joying actually make improvements based on the problems that the customer is experiencing. WITSON stick their head in the sand and hope that the problem will disappear. I'm planning on doing a youtube review to show how poor the service is and how many bugs the unit has just to try and help other people. To be fair I will probably give it another month to see if they are actually interested in working on new firmware.
[Android Head-Units] Zaagfluit:
I did not check the Android build yet. A youtube review might be usefull, also for witson to see how they are screwing things up. I hope there will be custom/alternative roms available in the future, since it uses the same hardware as many other brands. I will try The zlink apk from Joying this weekend to see if it changes anything.
[Android Head-Units] looxonline:
I know that gtxaspec is working on a custom ROM for FYT based PX5 units. He fried his FYT SoM though so I think he needs more time to get another. When that is ready it should be compatible with our units provided it does not touch the MCU. That being said I am not too familiar with all of the interfaces between SoM and motherboard and whether there are major differences in implementation between the two resellers. Could be that the Joying ROM (which gtxaspec) is basing his off does not have support for the CAN vehicles that we need...anyway we will see with time.

Let us know how the new zlink app works out.
[Android Head-Units] Zaagfluit:
I guess we have to wait a bit more. I have succesfully updated the Z-link app, but no changes strangely enough, still 2.4.4.

The Witson firmware update Built details are: px5-userdebug 8.0.0 OPR5 170623.007 Don't know what my previous was but my guess is it was the same.
[Android Head-Units] looxonline:
After the 007 does it give a date? Something like bsp.20180528?
[Android Head-Units] Zaagfluit:
Yes, exactly the date you mention.
[Android Head-Units] looxonline:
Yea, at least we have an Android build and MCU FW that we can restore to in case of emergency.
[Android Head-Units] DWhite456:
zlink app. Has anyone successfully gotten it to work on a unit that is not a P5? Have older MCTB unit rk3088 and the app just crashes when opened. Anyone have any thoughts?
[Android Head-Units] looxonline:
Most stores selling it on Ali say that it will work with any unit running 4.2 or later. Could be something with your build or the particular apk you are using.
[Android Head-Units] DWhite456:
Thanks, I know ali sells the carplay dongle but others have ripped the zlink app from a P5 Joying unit and have had success using carplay without the dongle, just the software.
[Android Head-Units] vassandrei:
really?? I've not had any success. could you link any posts with what to do? I've had the apk for a while but I think it only works with non MTCD/MTCE based boards (FYT I think?) they also have a PX5 SoC but the MCU is different. At least, I think that's whats up? Because aside from the licensing system zlink uses it comes up with a "No MFI found" error on my system and others with MTCD systems.
[Android Head-Units] looxonline:
MFI is the authentication chip that Apple use to ensure that devices trying to connect to their products are "Apple certified". It became a hardware requirement from the iPhone 6S onward and is a hardware requirement for all CarPlay interfaces regardless of the model device that is connecting. This is why certain lightning cables will not work with an iPhone 6s...they don't have the MFI chip. This is also why only one USB port on the unit will work...it is the only one with the MFI chip.

With some PX5 units that are not advertised as supporting CarPlay they will not have the MFI chip embedded. The app will therefore not work. The only option there is to buy the zBox adapter which has the MFI chip embedded and use it with the zBox app.
[Android Head-Units] vassandrei:
I get that, that’s what I’m saying that it seems after all there is a hardware requirement (either built in on in a dongle). That said, the company that makes zbox and zlink is advertising wireless Carplay on their site through zlink. I don’t think it’s available yet though. How does wireless Carplay relate to MFI if there’s no physical connection?
[Android Head-Units] Zaagfluit:
I got a mail from Witson today with a MCU update. They seem more interested in finding a solution. Maybe a policy change?
[Android Head-Units] looxonline:
Did he just mail you without you actually having to ask? Is the MCU update specifically for your unit? Link...?
[Android Head-Units] Zaagfluit:
It's a "she" i think (Emily). The last thing i send them was a response to the previous firmware, that it was the same one i already had, and a list of issues i still have.

It seems specific for my car, just like the previous one. i will upload & test this weekend.
[Android Head-Units] looxonline:
I don't think that the issue lies in the MCU anyway since it is clearly relaying the command to the unit. Honestly I think the zjinnova have made a mistake in their app because even the owners of the zbox are all reporting that in the latest versions the prev/next buttons have stopped working. It seems like we may be able to get it to work if we go back to an earlier version of the zlink app. I may try digging around in some older Joying firmware off their website to try those apks.

I mailed Witson back to see if they will send me something too. I'm not so sure that the previous one was specific to your car. You and I were running exactly the same MCU and Android version. If you send me a link for the original firmware that they sent you the first time around then I will be able to do a diff against the one that they sent to me and see if there was any difference in the code at all.

Also, my weekends are normally busier than my week but I should be getting some time in the next 3 weeks to really dig into the code and see if there is a way to send the SWC to the app by recompiling the smali. Depending of the complexity of the code it may be possible to identify where they have introduced the bug and recompile.
[Android Head-Units] Zaagfluit:
View attachment 4575317

View attachment 4575318

Here are my MCU updates, the thing that is specific for my car is that it automaticly selects the right canbus after an update. With joying units you have to select it by yourself after an update. The canbus selection option is removed from the s200 devices. Would be great if you could fix the swc by yourself!
[Android Head-Units] looxonline:
I was also just sent a "new" MCU file. Do a binary diff. I'm sure that you will find the new one to be identical to the old one like I just did.
[Android Head-Units] Zaagfluit:
Is yours the same? I do not know how to do a binary diff.
[Android Head-Units] looxonline:
It was identical. I've been into the Java and I noticed that the handler takes actions with the buttons based on the current music app that is either running or in the background. Seems that there are cases for the radio, ipod, Bluetooth and other apps but nothing for CarPlay. Perhaps adding a case for carplay with the correct action would fix this. I just don't know what the correct action is. I would need a firmware where this actually works to compare against before I could edit the smali and integrate it into the code.
[Android Head-Units] andreyirra:
Do you keep the box plugged in when the car is turned off? Does it consume battery? Like lights kept on?

Another question no precisely related. With CarPlay the music is always flat so it relies in the eq of your head unit. Mine didn’t come with an eq so I downloaded one. Every app stops after 5 minutes in the background. Is there a way to keep the eq working after 5 minutes since CarPlay won’t let me use the iPhones equalizer?
[Android Head-Units] Zaagfluit:
I’ve installed a third party dab+ radio app and steering wheel controls worked right away. So it should be possible from within the app i think.
[Android Head-Units] Magic1991:
What are the last news about this problems ?

I have a joying unit with android 6.0.

Zlink works perfectly but the SWC doesn’t work.

What can I do ??
[Android Head-Units] bassembrace:
I would be also interested!
[Android Head-Units] bassembrace:
Hey guys just an idea. I noticed that when I have Spotify launched on CarPlay AND on the unit in the background and they both have an internet connection (hotspot through phone) the SWCs work!

So whatever we do on the phone, it happens on CarPlay of course.

Maybe a workaround could be to use the built in Bluetooth music app (joying) and use it simultaneously with CarPlay just in sake of SWC controls. OR build a Bluetooth control app, so basically making the headunit the Bluetooth remote of the phone, in order to control media on it (means also on CarPlay). This way we are using the Headunits media controls, to control our iPhone = CarPlay (Next/Prev buttons etc.)
[Android Head-Units] bassembrace:
Is there no solution to this? I am really interested in making it work finally :rolleyes:
[Android Head-Units] looxonline:
Progress, finally...

As the title says, I believe that I have finally made some progress on this although it is not yet solved. Details below...

This weekend I finally managed to dig into the code on the unit. I have managed to get live debugging working on the unit so that I can set breakpoints in the code and check if they trigger when I perform real world actions. What this allows me to do is to check if an external action results in a particular piece of code being executed.

I was interested in the segment of code that is executed when a button on my SWC is pressed. I managed to track it down to the same segment of code that is executed when some of the buttons on the front panel are pressed. I focussed my efforts on the "next" button. It turns out that a method "mcuKeyRollLeft" within the "HandlerMain" class is executed for this button press. In IMG22 you can see that it checks what the current running application is (appId) and then makes a change based on that app. The apps that it services are the radio app, the bluetooth app and several others. None of them are zLink or zBox. Even within each app the key may have different meanings as you can see in the picture.

This narrows down where we need to intercept the code execution and make sure that something is done to communicate with the zLink app...but what???

Enter the second part of the story.

I next used jdax to analyse the zLink apk. This is an odd apk with not much going on which makes me think that things are mostly happening within a service somewhere. Nevertheless there is still a manifest file which tells us which broadcast receivers the app has been programmed to listen on. At the bottom of IMG23 you will see that there is a broadcast receiver called "ActionMusicPauseOrReplayReceiver". The actions that it supports are pause and another which seems generic, perhaps allowing for next, prev, play and other commands to be received through the filter.

This command is never broadcast in any of the case statements contained within the head unit main server. My idea is therefore this...

Create an xposed module which hooks into the mcuKeyRollLeft method, sends out the broadcast message that the zLink apk would receive and then hands code execution back to the standard main server method so that we don't break any of the existing functionality.

Since I have never written an xposed module or even an android app before this may take me a while. If anyone has any experience with android apps or xposed modules you could really help out but helping me to bang these modules out. They should be dead simple but doing something for the first time always takes a bit of time.

We may almost be there...
[Android Head-Units] bassembrace:
Wow, that’s good news. I couldn’t wait anymore and bought a Chinese Arduino pro micro clone. Basically I soldered the joying swc I bought, onto the + - and A3 of the Arduino, hooked it up via micro usb to my computer and programmed it to translate the different resistor signals when a button is pressed into USB HID language. Then I hooked it up to my head unit via usb, programmed the keys in the zlink app (in the settings menu when nothing is plugged in) and voila. I have working SWC now. However the keyboard on the unit is not working anymore but that’s fine for me :) the main downside however is I can’t get the volume keys to work since it’s internal. And I don’t want to root the unit at any price, wanna keep it as stock as possible
[Android Head-Units] looxonline:
More progress...

So I wrote the xposed module yesterday. This is the first time that I have every written anything within the Android dev environment so it took me some time to get up and running. Nevertheless, thanks to [MENTION=2550900]surfer63[/MENTION] making his xFYTtweaker open source I was able to learn a lot from his code and get a module out the door.

I can see that the module intercepts the SWC key presses and that it seems to be processing them but I think I may have a problem with the context that I am using to send out the broadcast message. I see an warning popping up in the logcat each time I trigger the hook in the xposed module. I am going to try and investigate this further and see if the broadcast message approach will work. If it fails then I am going to try and do what [MENTION=3734950]bassembrace[/MENTION] did with hardware but in software. I.e. instead of sending a broadcast intent I will inject a keypress into the android input manager which will appear to the system as if it were a HID keypress. This can then be programmed into the desired function using the screen that is already in the app. More updates in the next two weeks. I may also ask [MENTION=2550900]surfer63[/MENTION] for his kind help to see if I am messing up the broadcast intent context.
[Android Head-Units] looxonline:
Partial success...

Today I was able to control the music playing within the zlink app using commands sent over adb. So I know how to get the control through. Now I just need to code it into the xposed module and release...
[Android Head-Units] tommylotto:
Congrats. Looks like you are making progress. Would the solution that you are working on work for any android unit using ZLink or only your brand? I have a Joying with working SWCs, but they do not work with ZLink. Might your solution work for me too?