General Modding your Joying/FYT SC9853i unit without root

Search This thread

PieterD82

Member
Nov 11, 2020
29
6
Hi everybody, I have a Joying 6.2 inch in my car and a SWC wired controller on left side of steering wheel, connected at KEY 1 wire. Today I bought another SWC control, wireless with receiver and placed on console, and I've installed on KEY 2 wire. To be fully functional for me, I want to set both SWC controls to adjust Vol+ and Vol-, but I can only set one of them with SWC settings app.

There is some way to set resistive parameters manually inside any .txt or .conf file?

Thanks in advance!
Hey there,

I also recently installed a second SWC to my unit. I installed it on KEY1 however. I'm not 100% sure on this (i'm making an assumption now) but i do believe that these buttons have the same resistance for what they do.

In case you didn't know, a set of SWC buttons are just completing a circuit with a resistor value per button so it's perfectly fine to have multiple SWC' on KEY1

So, long story short: Connect your secondary SWC to KEY1 instead, even if another one is already connected to it. The resistor values should be the same if in your case you want the buttons to do the same anyway.

Additionally:

If this method does make both SWC's work but you find that you can only program one of your SWC's at a time and loses the setting for the first. Then you will need to get a set of resistors and a multimeter. Take both SWC's out of your car and onto the bench. Connect one of them to your multimeter and measure each resistance value of the buttons on the first SWC and do the same for the second one. If these values are not identical then you will have to make sure they are by changing the resistance values of each button so both units have the same resistor value for each button.

You will have to do this by wiring in, or taking out (hopefully not) resistors. I recommend you use blue resistors (https://www.google.com/search?q=blue+resistors) because they have a tolerance of 1 to 2% whereas the beige ones around 5%

PS: make sure you connect your SWC to the ground of your unit directly.
 
Last edited:

mastrv

Senior Member
Jul 1, 2010
316
101
Sadly this didn't work for me.
Installed first 2 Apks.
set phone permissions.
Set GVC as default caller.
Tested.
App not installed still.

Installed zip file update.

Seems to works for a few calls.

Restarted head unit and tested again. Now when Google tries to call the custom phone dialler keeps crashing.

Reckon there is a way to fix?

Thanks

Let's try to figure it out in the thread so others can benefit with this.

I just went out to the car to make sure it still worked :) It still does! Yay! When I make a voice call, usually the first time I try a voice call, it just ignores it, I believe. Then it seems to work each time after that.

Make sure you have updated your Google app and Google Assistant app. You don't need to clear defaults or reset anything else after that. Make sure you have also installed and updated the latest Google Contacts app as I believe Google Assistant uses it to lookup. This may be the, or one of the, issues.

OK, what model head unit do you have and what firmware are you using / running with? Have you rooted?

Also, please list the steps you tried and the messages displayed with as much details as possible. So, for example, when you say you installed the 2 apks, please list the names and which post you downloaded them from, etc. You should be using everything from post #620, https://xdaforums.com/t/modding-your-joying-fyt-sc9853i-unit-without-root.3974357/post-84814233.
 

Spastro

Senior Member
Feb 18, 2020
51
1
Let's try to figure it out in the thread so others can benefit with this.

I just went out to the car to make sure it still worked :) It still does! Yay! When I make a voice call, usually the first time I try a voice call, it just ignores it, I believe. Then it seems to work each time after that.

Make sure you have updated your Google app and Google Assistant app. You don't need to clear defaults or reset anything else after that. Make sure you have also installed and updated the latest Google Contacts app as I believe Google Assistant uses it to lookup. This may be the, or one of the, issues.

OK, what model head unit do you have and what firmware are you using / running with? Have you rooted?

Also, please list the steps you tried and the messages displayed with as much details as possible. So, for example, when you say you installed the 2 apks, please list the names and which post you downloaded them from, etc. You should be using everything from post #620, https://xdaforums.com/t/modding-your-joying-fyt-sc9853i-unit-without-root.3974357/post-84814233.

Hey Mate. Thanks so much to help me troubleshoot this. Fingers crossed it will work for my model as well.

Google App Details
Google App, Google assistant and google contacts is as up to date as i can get them according to play store.

Google App is on 12.28.8.23.x86_64
Google Assistant is on 0.1.187945513
Google Contacts is on 3.49.2.383700152

Head Unit Details
Joying 10.25 Inch Android 8.1.0
Not Rooted (Would like to keep it that way)
MCU: 2019.09.07 10:40:57 JY_53_C63L_G32P48F64_Vwe: 1.0
CPU: Intel X86_octor-Core 1.8GHZ SC9853 4 +64GB

Installed Files.
The three files mentioned were downloaded from your post as linked above.

Original Issue.
When using google assistant, google would tell me there was no app installed.

Following your instructions.
Installed both the GVC+CallHandler+4 APK and the Custom GVCBluetoothPhone Handler APK.
I made sure both these applications had phone access within Android Settings.

I now tested several times, but google constantly told me no app installed.

installed telecom server.
Proceeded to install telecom server from flash drive by unzipping the contents to the root of a empty spare drive.
Install completed without issues. Now when i insert the flash drive back into my computer to check if the backup of the original files are there so i can revert if needed i can see i have the following files listed.

LOST.DIR (empty folder)
lsec_update
lsec6521update

Returning back to the head unit now that the telecom server is installed i tested google assistant again.

First time nothing happens as you had mentioned.
Tried Again then everything seems to work perfectly.

Here is where my problem starts.
Now If i restart the headunit completely for example to test what happens after the car has been off for a few days and try again.

Google assistant initiates the call as per before but then i get a pop up saying CustomPhoneDialer has stopped.
I have the option to open the app again however even if i do this and repeat the process to call someone the Custom Phone Dialer always crashes.

Thanks again for all the help.
 

mastrv

Senior Member
Jul 1, 2010
316
101
Hey Mate. Thanks so much to help me troubleshoot this. Fingers crossed it will work for my model as well.

Google App Details
Google App, Google assistant and google contacts is as up to date as i can get them according to play store.

Google App is on 12.28.8.23.x86_64
Google Assistant is on 0.1.187945513
Google Contacts is on 3.49.2.383700152

Head Unit Details
Joying 10.25 Inch Android 8.1.0
Not Rooted (Would like to keep it that way)
MCU: 2019.09.07 10:40:57 JY_53_C63L_G32P48F64_Vwe: 1.0
CPU: Intel X86_octor-Core 1.8GHZ SC9853 4 +64GB

Installed Files.
The three files mentioned were downloaded from your post as linked above.

Original Issue.
When using google assistant, google would tell me there was no app installed.

Following your instructions.
Installed both the GVC+CallHandler+4 APK and the Custom GVCBluetoothPhone Handler APK.
I made sure both these applications had phone access within Android Settings.

I now tested several times, but google constantly told me no app installed.

installed telecom server.
Proceeded to install telecom server from flash drive by unzipping the contents to the root of a empty spare drive.
Install completed without issues. Now when i insert the flash drive back into my computer to check if the backup of the original files are there so i can revert if needed i can see i have the following files listed.

LOST.DIR (empty folder)
lsec_update
lsec6521update

Returning back to the head unit now that the telecom server is installed i tested google assistant again.

First time nothing happens as you had mentioned.
Tried Again then everything seems to work perfectly.

Here is where my problem starts.
Now If i restart the headunit completely for example to test what happens after the car has been off for a few days and try again.

Google assistant initiates the call as per before but then i get a pop up saying CustomPhoneDialer has stopped.
I have the option to open the app again however even if i do this and repeat the process to call someone the Custom Phone Dialer always crashes.

Thanks again for all the help.
You probably meant lsec_updatesh was now on your flash drive. That should be a directory. Please zip up the directory and post it.

As far as the steps you've taken, they seem correct. If you can have a look at the log or also post it, that should help narrow down the issue. The error should be noted in the log.
 

Spastro

Senior Member
Feb 18, 2020
51
1
Hey mate.
Used a logcat capture tool I found on the playstore to grab the logs. I didn't have root or a method to hook it up to my laptop so I hope I was able to capture enough information.



Lsec_updatesh

 

Attachments

  • logcat_07-25-2021_20-14-37.txt
    12.3 KB · Views: 7
Last edited:

mastrv

Senior Member
Jul 1, 2010
316
101
@Spastro The log doesn't help. I was having a look at the code and I think I know how to change it to show a message instead of causing the error. It will take me a while to re-install the dev environment, to make the change and test it.

One question, when you say "reboot" do you mean completely or from sleep? There's a setting of whether to completely reboot or just to sleep the head unit so that it quickly restarts. Which is yours set to?
 

Spastro

Senior Member
Feb 18, 2020
51
1
Mine is set to sleep.
But occasionally I don't drive for a few days at a time. So the radio will turn off compleatly.

So when I was testing I did a reboot from the menu in joying as a test.
 

Spastro

Senior Member
Feb 18, 2020
51
1
@Spastro The log doesn't help. I was having a look at the code and I think I know how to change it to show a message instead of causing the error. It will take me a while to re-install the dev environment, to make the change and test it.

One question, when you say "reboot" do you mean completely or from sleep? There's a setting of whether to completely reboot or just to sleep the head unit so that it quickly restarts. Which is yours set to?
Hey mate. Managed to get any further?
 

mastrv

Senior Member
Jul 1, 2010
316
101
Attached is a debug version of the apk. You'll probably have to uninstall the existing one first. I'll have to go back and figure out how I signed it or just create new keys, etc to create a release version.

I just went out to the car to test it. Now, when an error occurs, a toast message pops up and says an unhandled error occurs and then displays the text message part of the exception.

I was getting an occasional error and the message says that it couldn't find the GVC call handler...interesting. When I try it again, it works. Odd. I'll have to figure out if that can be addressed.

Anyway, you should at least now see why it's failing on your set up. Let me know and I'll see if it can also be addressed. FYI, I set the Toast message to stay visible for as long as possible (i.e. "Long") but it's still kind of short...pay attention or maybe take a video while you're testing so you can look back on it.
 

Attachments

  • app-debug.apk
    3.2 MB · Views: 11

Spastro

Senior Member
Feb 18, 2020
51
1
Attached is a debug version of the apk. You'll probably have to uninstall the existing one first. I'll have to go back and figure out how I signed it or just create new keys, etc to create a release version.

I just went out to the car to test it. Now, when an error occurs, a toast message pops up and says an unhandled error occurs and then displays the text message part of the exception.

I was getting an occasional error and the message says that it couldn't find the GVC call handler...interesting. When I try it again, it works. Odd. I'll have to figure out if that can be addressed.

Anyway, you should at least now see why it's failing on your set up. Let me know and I'll see if it can also be addressed. FYI, I set the Toast message to stay visible for as long as possible (i.e. "Long") but it's still kind of short...pay attention or maybe take a video while you're testing so you can look back on it.
Hey Mate, thanks again for all the work.

Uninstalled the custom dialer and installed your new debugging version.
Gave the customer dialer phone access.
Tried making a call and it failed the first time as expected. Tried again and it worked.

On my joying head unit. I restarted the device to emulate what would happen if the car was left off for a few days as i dont drive everyday.

When the head unit restarted i tried voice calling again and got this error. Now this will continue to happen and never work again no matter how many times i try.

Screenshot_20210805-202728.png



Now if i reinstall the GVC Call Handler apk it will start to work but again breaks as soon as the head unit restarts or in real life cases turns off completely after a period of none use.
 

mastrv

Senior Member
Jul 1, 2010
316
101
I tried a few things and have not been able to determine why that activity cannot be found.

Still looking into it.

I'm thinking of trying to modify the code to not use the googlevoicecallhandler4joying at all.

...still working on it.
 

shahin_pz10

New member
Aug 8, 2021
1
0
Hello guys,
I have a problem with my sc9853i android device that was made by other manufacturers. I need to disable developer mode to use an application that wrote to use OBDII but it is not successful because it will be on every time that I disable it so I can not open the application.
Thanks to your helpful comments I already changed the ROM to joying 2020.04.07 version. But the problem still exists.
I tried to root my device using this tread and I was successful, also I installed this APK to change Joying settings to android default settings to disable developer mode forever, but as I open Joying extra tools app the button that changes between original and Joying settings disappear.
Would you please help me to solve this solution?
Thanks!
 

Spastro

Senior Member
Feb 18, 2020
51
1
I tried a few things and have not been able to determine why that activity cannot be found.

Still looking into it.

I'm thinking of trying to modify the code to not use the googlevoicecallhandler4joying at all.

...still working on it.
Been playing around with it yesterday to see if I can work anything out.

Everytime I start the car and try you voice dialling I get the error I posted above about the manifest.

Happens everytime regardless if the car was turned off for a few mins and the headunit goes into standby mode or if the car is off for a few days and the entire headunit goes off.

Once that error pops or before trying to initiate voice calling as I just turned the car on, if I open the joying GVC and leave it running in the back ground and try initiate voice sailing again it works.
Everytime.

However doing this, Google assistant brings the joying GVC app to the front and the joying phone controlls appear at the bottom .
When I hang up the joying GVC remains on the front and I need to tap the home button to return.

After a call if I clear all recent apps from background and try voice calling again Google assistant will once again tell me to check the manifest.
 
Last edited:

mastrv

Senior Member
Jul 1, 2010
316
101
Been playing around with it yesterday to see if I can work anything out.

Everytime I start the car and try you voice dialling I get the error I posted above about the manifest.

Happens everytime regardless if the car was turned off for a few mins and the headunit goes into standby mode or if the car is off for a few days and the entire headunit goes off.

Once that error pops or before trying to initiate voice calling as I just turned the car on, if I open the joying GVC and leave it running in the back ground and try initiate voice sailing again it works.
Everytime.

However doing this, Google assistant brings the joying GVC app to the front and the joying phone controlls appear at the bottom .
When I hang up the joying GVC remains on the front and I need to tap the home button to return.

After a call if I clear all recent apps from background and try voice calling again Google assistant will once again tell me to check the manifest.
Interesting observation.

I think I've found a possible reason for the error. On one post on a developer's forum, where someone had the same error occurring, someone suggested that if the activity being called doesn't handle errors/exceptions properly then the error can occur. A few comments seemed to have fixed their issue based on that.

So perhaps the GVC app doesn't handle what is being attempted.

In any case, I haven't had too much time to work on this especially with the hot weather...the garage was extremely hot. It's a lot cooler now and I'll probably be getting back to this. Still working on it!
 

Spastro

Senior Member
Feb 18, 2020
51
1
Interesting observation.

I think I've found a possible reason for the error. On one post on a developer's forum, where someone had the same error occurring, someone suggested that if the activity being called doesn't handle errors/exceptions properly then the error can occur. A few comments seemed to have fixed their issue based on that.

So perhaps the GVC app doesn't handle what is being attempted.

In any case, I haven't had too much time to work on this especially with the hot weather...the garage was extremely hot. It's a lot cooler now and I'll probably be getting back to this. Still working on it!
Really appreciate, at least for now if I just manually start both apps and leave them running in the background everytime I start the car at least it works.

Not ideal but it works.

Thanks again for looking into it.
 

ant_thomas

Senior Member
Feb 25, 2007
277
26
Some commands that can be put inside updatecfg.txt
Code:
twipe_all # Wipe entire system
twipe_data # Will wipe data partition (but not /sdcard, internal memory). Wiping the /data partition will wipe all config, all 3rd party apps and updates of system apps. This is the same as a "reset to factory defaults"
twipe_sd # Will wipe internal memory /sdcard (but not the data partition)
dellapp # Remove all 3rd party apps
make_updates # Make an upgrade U-disk boot file
test # test unit and firmware before flash

Interested about this one - since the official firmware update has twipe_all in the updatecfg.txt file.

I'm guessing that means a firmware update puts us back to factory?
Considering I've got the headunit to a point where I'm fairly happy with the setup, would be annoying to have to do all that again.
 

surfer63

Senior Member
May 4, 2010
6,602
3,968
Zwolle
github.com
Interested about this one - since the official firmware update has twipe_all in the updatecfg.txt file.

I'm guessing that means a firmware update puts us back to factory?
Considering I've got the headunit to a point where I'm fairly happy with the setup, would be annoying to have to do all that again.
Yes, it puts you back to factory.
When making programs that do change the way they use their settings/preferences, you write an update method that takes care of this when moving to a different settings/preferences configuration. This to do proper housekeeping and keep your settings clean. FYT doesn't do that, or at least didn't do that.
You can of course simply remove the twipe_all from the updatecfg.txt, but in the past we have seen many cases of program crashes, program errors, program functions no longer functioning, unit freezes, unit crashes, etcetera because of this. Lately they seem to have this better under control, or simply start writing to new preference/setting variables and no longer use the old ones. This is considered ugly, but enables also going back to an older version which will simply use the older settings.

So be brave and test without the twipe_all. If the unit stays stable and works fine after one week, then please share with the forum from which version you came and to which version you upgraded.
If it isn't stable (after 1 hour, 1 day, ..) simply flash it again using the twipe_all.
 
  • Like
Reactions: marchnz

mashrom

Member
Oct 22, 2019
32
1
To modify the radio stations, open the apk with 7-zip. Do not add or remove files. Only update the existing files. Keep the file names the same. This will be the easiest way to add/modify stations.

Modify the radio_freqs.json file within the res/raw directory. You can add entries or modify existing entries. Use a text editor that uses Linux type formatting, such as Notepad++. Each entry is something like:

"freqName": "KLOS Rock Station",
"freqLogo": "CA50",
"freqNum": 9550,
"cityName": "Los Angeles",
"userRadios": []

freqName is the text displayed for the station.

freqLogo is the filename of the station image. For example, in the above, the image file would be named CA50.png

freqNum corresponds to the radio station frequency. When tuned to 95.5MHz FM, then this information is displayed.

cityName corresponds to the city name that must be specified so the station data is used. For example, when "Los Angeles" is specified for the radio station, all stations that have cityName of "Los Angeles" will be used. You specify your city by going into the radio settings by clicking on the little disk image on the bottom of the radio screen...2nd from the right.

Make sure you don't miss or add any quotes. If you do, the whole file may be ignored as it won't be valid JSON format. If you're curious about JSON, there are many examples and lots of info found by Google.

Only 18 (6 x 3) stations can be selected for display on the screen. You can choose to only have 18 entries of your choice or all of those in you area. When scanning for stations, all entries that match will display the logo you specify.

For station logos, replace existing files in the res/drawable-nodpi-v4 directory with the logo file(s) you provide. They should match the same format as those you replace. Some formats may not work. If the image has an issue or can't be found, a default image is displayed.
Excellent mod! For the orignal app how the city name is determined if I want to keep the same orignal GUI? Can't find the same menu of City Name as in your mod.
Thanks
 

Top Liked Posts

  • There are no posts matching your filters.
  • 11
    See title: Only for SC9853i Joying/FYT 8.1 units.
    Due to some changes in the flashing process since the previous PX5 and Sofia 3GR models it is now partly possible to mod your unit without root.

    Some info to start with:
    (partly from 4pda, partly from a "hint" from @julien_blanche, mostly from own knowledge)

    Contents of a firmware zip:
    Code:
    6521_1.zip           # The zip that contains the boot.img; the system/vendor/oem partitions and a few other things.
    Allapp.pkg           # Special file that contains all FYT apps (actually a special XAR archive.)
    config.txt           # file comparible to the build.prop which can contain additional properties
    lsec6521update       # The binary that really does the update
    oem                  # Folder containing some additional apps
    Stm32ud.bin          # The MCU binary. It is not always in every firmware
    updatecfg.txt        # Contains instructions for the flashing process
    crruptoff            # Special file for "WiFi only". Not in the normal firmwares. Be careful!


    Some commands that can be put inside updatecfg.txt
    Code:
    twipe_all     # Wipe entire system
    twipe_data    # Will wipe data partition (but not /sdcard, internal memory). Wiping the /data partition will wipe all config, all 3rd party apps and updates of system apps. This is the same as a "reset to factory defaults"
    twipe_sd      # Will wipe internal memory /sdcard (but not the data partition)
    dellapp       # Remove all 3rd party apps
    make_updates  # Make an upgrade U-disk boot file
    test             # test unit and firmware before flash

    Some properties that can be put inside config.txt. Say you live in Brazil and you want your locale settings immediately on Brazil, you can add that, for example:
    Code:
    ro.product.locale = pt_BR

    The file crruptoff:
    If you have a unit with a 4G module, but you don't have 4G (or don't want to use it), you can use this file. Put one line in this crruptoff being "fixwifi" and save it to the sdcard/usb-stick you use for flashing.
    You can use it to get rid of the "No SIM" notification in your notification bar.
    Does not work anymore on the later firmwares. Chances are minimal but maybe it might work again "some day".

    The Allapp.pkg
    The Allapp.pkg file is a special XAR archive with a directory structure. You can use ApkPack.exe to create or extract it.
    Folder path: This is where your files are being extracted to, or packed from
    File path: This is the file that is being created (packed), or where the files are extracted from.
    All apks (*.apk) and all libraries (*.so) will be installed as system apks and libraries, which means you can't uninstall them, but on the SC9853i units they are installed under /oem and not under /system.
    Inside this Allapp.pkg you will also find two other files: fyt.prop and skipkillapp.prop.
    The fyt.prop is identical to the build.prop but gives the option to add extra properties or replace/modify properties in the build.prop.
    The skipkillapp.prop contains apps (package names) with values from -15 to 15.
    When going into "deep sleep" the packages not mentioned in this list will be killed. Applications in this list with positive values will absolutely be killed (unstable otherwise??). The ones with higher values first. The ones with values 1 and 0 as last, where the app with value 0 will be the last killed before going into deep sleep.
    The apps with negative values are considered system apps and will not be killed. In this case the most negative number (-15) has the highest priority. My assumption (not tested, not verified) is that negative numbers approaching 0 might be killed if the system needs the memory?
    So in other words: If you do not want that some of your apps are killed, you can add them to this "skipkillapp.prop" by their package name. Say you use @realzoulou's DAB-Z app, you would add a line for DAB-Z (com.zoulou.dab). Or for example if you are a Tasker user, which is normally killed as well:
    Code:
    com.zoulou.dab = -10
    net.dinglisch.android.taskerm = -10
    (I would suggest not using values like -15, -14, -13 to make sure you do not really interfere with the real system apps).
    And then you need to add this file to your own allapp.pkg

    The lsec_updatesh folder and lsec.sh script
    Practical applications:
    • Making patches, an alternative to creating the Allapp.pkg package.
    • Work on all folders in the unit (which Allapp.pkg cannot do).
    • Delete unnecessary files or applications (who uses the calculator app?), or overwite files like the fyt.prop or others.
    • Modify/overwrite config files that are otherwise not modifiable (like bluetooth config?)
    • Setting properties that normally require root/admin rights.
    • Creating backups of your partitions using the dd command. This can be handy on a device for which you do not have a firmware yet as backup.
    • Rooting your unit, also if you do not have a firmware from your supplier.
    • Make a Custom ROM by simply doing all kind of modifications after the "normal" firmware flash.

    See for more info about the "The lsec_updatesh folder and lsec.sh script" in post #228.

    Creating an Allapp.pkg and flash it to your device (post #2)
    Some pre-build flashable images (post #3)
    And if everything goes wrong and your unit ends up in a boot loop or doesn't get past the boot logo. (post #4)
    8
    Creating an Allapp.pkg and flash it to your device

    Use the (English) version of ApkPack.exe (english version attached) to unpack/repack an Allapp.pkg. (It also works with wine on Linux/MacOS)

    (See this youtube link for a really quick & dirty (and unsharp, sorry) video about what scrolls on your screen when flashing such a mini Allapp.pkg)

    (1) Quick example:
    • Create a folder Allapp
    • Copy some wanted apks or mods into the folder.
    • Use the ApkPack.exe to create the Allapp.pkg
    • Simply copy the "Allapp.pkg" and "lsec6521update" onto a clean FAT32 formatted SD-card or USB-stick.
    • Put the USB-stick into your unit and it will recognise the update and flash it to your unit.
    • Other options:
      • Copy the "Allapp.pkg", (optional) "updatecfg.txt", (optional) "config.txt" and "lsec6521update" onto a clean FAT32 formatted SD-card or USB-stick.
      • In my case having a 4G unit without using 4G and wanting to use Google Assistant for calls: Copy the Allapp.pkg, config.txt (see above), crruptoff (see above) and lsec6521update onto a clean FAT32 formatted USB-stick.
      • Note that when NOT using an updatecfg.txt, nothing will be wiped on your unit. Only added/replaced.

    (2) Another example:
    • Create folder Allapp on your pc/laptop
      • add (2019-08-14) main server mod with extended navi_app.txt and "BT to background" hacks. (see my github repo. Be careful to choose the one for your specific firmware date)
      • add BW-RDS radio mod (see my github repo. Only choose version for Android 8.1 if you want full functionality)
      • add oandbackup (dk.jens.backup_305.apk) (Free and open source backup restore apk)
      • add latest MagiskManager-v7.3.2.apk
    • Use apkpack.exe (attached) to create a new Allapp.pkg by selecting the folder to be packaged, the name of the file being Allapp.pkg, and select button "Packed" (sloppy translation from Chinese)
    • Copy created "Allapp.pkg" and "lsec6521update" onto a clean FAT32 formatted USB-stick.
    • Insert in your unit and the flashing process will start (Note: It will mention "Setting to factory defaults" before flash reboot, but it is really not doing that)
    • After the (very quick) flash and normal reboot, you will have 2 new apps and 2 modded apps.

    (3) Example for a FYT compatible SC9853i, like a Sinosmart or Zhan or "unnamed":
    You can also create your own Allapp.pkg, also with a modded Joying apk as the apks are actually identical, but there is one big naming issue to take into account!
    Even though the apks are identical having the same package name, they have different apk names. A normal install will check for the package name and replace the apk with that same package name, whatever its apk name (think of versions or build time stamps behind the the "normal" name). The flashing method simply looks at the apk name and will create an /oem/app/<apk_name>/<apk_name>.apk. In this case versions numbers of build timestamps will create again and again a new folder with the exact same apk and none will work.
    As an example for the radio app:
    • Joying: 190043001_com.syu.radio.apk
    • Sinosmart: 190042001_com.syu.radio.apk
    • "Some" unbranded: 190101001_com.syu.radio.apk
    Again: The apks are exactly the same but have a different name. If you simply flash one next to the other, both will not work anymore as both have the same internal package name being "com.syu.radio". So you have no radio at all.
    So, how to create an Allapp.pkg with a modded Joying apk for your FYT compatible SC9853i unit?
    • Check the name of your unit's radio app (or BT, Video, Music app). (If you don't know how you can use my HWGet_info.apk and open the resulting HWget_info.zip and look inside the "oem_listing.txt")
    • Find the name of the modded Joying app.
    • Rename the modded Joying app to the name of your app. So for example for Joying-> Sinosmart radio app: rename 190043001_com.syu.radio.apk to 190042001_com.syu.radio.apk (Joying to Sinosmart)
    • Create a folder Allapp
    • Copy the modded and now renamed Joying radio apk into the folder (repeat if relevant for other mods).
    • Use the ApkPack.exe to create the Allapp.pkg
    • Simply copy the "Allapp.pkg" and "lsec6521update" onto a clean FAT32 formatted SD-card or USB-stick.
    • Put the USB-stick into your unit and it will recognise the update and flash it to your unit.
    • Also create an Allap.pkg for your original app so you can always flash back the original app if you want (or need) to.
    7
    Some pre-build flashable images

    Only for real Joying SC9853i units. Other FYT compatibles are not supported.
    All SC9853i FYT models are actually the same, but boot images are mostly different and apks have different names. In the latter case you would have 2 identical apks with the same package name, but with a different apk name residing in different folders. Neither of them will work anymore as Android doesn't know which one is the correct one.

    The zips that can be found in this post can be directly unzipped to a clean, empty Fat32 formatted USB-stick or SD-card. You do not need to be rooted and you don't need my JET apk.
    When this USB-stick or SD-card is inserted into your unit, the unit will recognize it as a flashable firmware and start flashing the files to your unit.

    Notes:
    • These flashable firmware files will leave all your installed apps and settings as they are. Only the files in these Allapp.pkg files will be overwritten.
    • The zips containing boot images will only overwrite the boot image. All apps and settings remain as they are.
    • The "combi" zips are just combinations of possible mods and/or boot images. They behave the same as the previous two.
    • The zips that can be downloaded from this post are all on one of my github repositories. You can find it here: SC98531BinRepo.
    ----------------------------------------------------------------------------------------------------------------------------------------------------------------
    Boot images
    2019-11-28 | 20191128-rooted-boot-image (thanks to @rigattoni) | 20191128-normal-boot-image
    2019-09-17 | 20190917-rooted-boot-image | 20190917-normal-boot-image
    2019-08-14 | 20190814-rooted-boot-image (thanks to @julien_blanche)

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------
    Main server apk mods (the 190000000_com.syu.ms.apk)
    The ORG version is the apk as delivered by Joying in their firmwares.
    The ORG_extended is the Joying one including an extended navi_app.txt, extended player_app.txt, extended navi_audio_from_playstatus.txt.
    The NoKill is the extended version where the normal functionality to kill all apps when going into "deep sleep" (turn of ignition), has been disabled.

    2020-04-07 | 2020-04-07-com_syu_ms-ORG | 2020-04-07-com_syu_ms-ORG_extended | 2020-04-07-com_syu_ms-nokill | ( Zips, modified smali files, modified assets text files, some info)
    2019-11-28 | 2019-11-28-com_syu_ms-ORG | 2019-11-28-com_syu_ms-ORG_extended | 2019-11-28-com_syu_ms-NoKill | ( Zips, modified smali files, modified assets text files, some info)
    2019-09-17 | 2019-09-17-com_syu_ms-ORG | 2019-09-17-com_syu_ms-ORG_extended | 2019-09-17-com_syu_ms-NoKill | ( Zips, modified smali files, modified assets text files, some info)
    2019-08-14 | 2019-08-14-com_syu_ms-ORG | 2019-08-14-com_syu_ms-ORG_extended | 2019-08-14-com_syu_ms-NoKill

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------
    Other mods
    There are currently two mods for the radio: One very nice one from user @Soiski71 and one which I made.
    The ORG version in this case is the one delivered with the Joying firmwares.

    Radio | SC98531-Radio-ORG | SC98531-Radio-Mod (preview) | SC98531-Radio-Mod-Soiski71 (preview)

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------
    Combinations
    These are combinations of above files which I found useful. Undoing them can be done by using one of the above ORG zips.
    2019-09-17 | 2019-09-17-radio_mainserver | 2019-09-17-rootedboot_radio_mainserver
    4
    If everything goes wrong and your unit gets in a boot loop or stops on boot logo

    - Download a fresh firmware from the Joying blog.
    - Unzip it to an SD-card/USB-stick (as normal)
    - Put the USB-stick/SD-card in your unit and "push" the Reset (RST) with a paperclip or something like that. When the boot logo appears, reset the unit again. Now the flashing process should start.
    4
    This post recaps some of the work done to enable voice calling using Google Assistant (GA) through a Bluetooth attached phone on an sc9853i FYT compatible Android Head Unit (HU). I have a TEyes SPro 4/64 with CC2 firmware installed. This should work on other FYT compatible, including Joying units, but no guarantees. This includes required files and instructions/steps for those that may find this at some point in the future.

    Attached is the software to enable GA voice calling:
    • Telecom script to update the Telecom server, if required. FYI, the Telecom server on my head unit was missing code to handle the voice call.
    • The updated simple phone app that is called by the GA when a voice call is made. The Telecom server calls this app when the voice call is made. This is a release version and not a debug version of the app.
    • GVC CallHandler I used. This app is called by the simple phone app. This app passes the details to the Bluetooth app to make the call.
    Instructions:
    • Ensure you have up to date/latest Google Assistant, Google app and the Google Contacts app and they have appropriate or all Permissions given...from Play store if you don't already have them.
    • Install the attached GVC CallHandler and CustomGVCBluetoothPhoneHandler applications normally and give them permission to make calls. Root is not required. The GVC app is available from the Google Play Store. That may work, but the attached is a version that I tested with.
    • Try voice calling using Google Assistant...say "Call xxxxx" where xxxxx is any of your contacts from Google Contacts. i don't believe that Google Assistant uses contacts from the Bluetooth phone app on the HU. If prompted, set the GVC CallHandler as the default app to make calls. One of two things will happen:
      1. It works and no messages or errors occur....the call will be made and you are finished! Note that there seems to be an issue where the first and/or second attempt don't work. Try the voice call a second or third time.
      2. It doesn't work and a message similar to "App isn't installed." then you need to replace the Android Telecom server app that is currently installed on your head unit.
    • To replace the Telecom server, unzip the attached telecom_script.zip to a usb drive and insert into the HU. This should invoke the standard update process. The script includes the original TEyes Telecom server from my unit and the new one from another Joying unit, as described in a previous post. When it runs, it creates some information from your unit as well as copying the existing Telecom server on your head unit to the USB drive. If you need it or want to re-install it at some point, save it somewhere. You can also get it back from your own firmware.
    • If it didn't work previously and you replaced your Telecom server, try the voice call again.
    • That's it...it should have worked.

    I'll be trying to figure out more info about the voice call not working on the initial attempt(s). I suspect I won't be able to determine the issue as I believe it occurs within the GVC app.

    If you update to a different / newer firmware in the future, you will probably have to repeat this process.