[PX5][MD725] Solution for the bluetooth echo v2 - MTCD Android Head Units General

Hi,
I release final solution for the bluetooth calls echo issue. Solution is for the PX5 units. For now it works only with MD725 module.
Donate to me
If you want to use this solution in your custom ROM, please put my "Donate to me" button in a noticeable place.​
Changelog:
26.08.2017:
-Added patched version of sdsdk
-Fixed problem with auto connect after sleep
24.08.2017:
-Added libgnustl_shared.so to zip archive because not all ROMs have it.
Click to expand...
Click to collapse
All needed files are available in the attachment
!! You have to be rooted in order to use this solution for the bluetooth echo !!​
1. Copy gocsdk, sdsdk, libf1xaec.so, libgnustl_shared.so and f1xaec.ini files to your SD card
2. Install a file manager (like ES File Explorer) which supports exploration of Android system dirs.
3. Go to /system/bin directory
4. Find gocsdk file and rename it to gocsdk_backup
5. Copy gocsdk file from your SD card to /system/bin
6. Set permissions (access rights) to 777 for /system/bin/gocsdk
7. Find sdsdk file and rename it to sdsdk_backup
8. Copy sdsdk file from your SD card to /system/bin
9. Set permissions (access rights) to 777 for /system/bin/sdsdk
10. Copy libf1xaec.so to /system/lib directory
11. Set permissions (access rights) to 777 for /system/lib/libf1xaec.so
12. Copy libgnustl_shared.so to /system/lib directory
13. Set permissions (access rights) to 777 for /system/lib/libgnustl_shared.so
14. Copy f1xaec.ini to /system/etc directory
15. Set permissions (access rights) to 777 for /system/etc/f1xaec.ini
Now it is very important to figure out what binary is used by your Head Unit. It can be either sdsdk or gocsdk. Right now rules of choosing binary by a Head Unit are unknown - probably it depends on MCU.
16. Install a terminal emulator (like Termux)
17. Execute command ps | grep gocsdk and ps | grep sdsdk
18. Remember what process is running (gocsdk or sdsdk) (if execution one of these commands gave you more lines of output, it means that this binary is used by the Head Unit)
19. Open /system/etc/f1xaec.ini
20. If your Head Unit is using sdsdk, change value of the streamDelay parameter to 280
21. If your Head Unit is using gocsdk, change value of the streamDelay parameter to 210
22. Restart Head Unit.
Click to expand...
Click to collapse
gocsdk and sdsdk are taken from HA 20170726 rom. If someone of you would have a problem on newer firmware, then we will consider update of binaries.
Short info: libf1xaec.so is a shared library containing implementation of webrtc algorithms with my patches and adjustments for RK3688 SoC. Do not worry - any viruses or other spyware are not included .

I'm sorry and I personally disagree with what was done by XDA moderators, I hope the manufacturer will listen to you.
In any case thank you for all the hard work you have done.

I also disagree.. I will donate back. The donation is a thank you for all the hard work.
So thank you.

hi,
thank you for the refund, but i sent it to you back, it is for your hard work as write Nomader0, thank you

Joining the others here in what they say, I will also donate again. - your work is worth it regardless of this isolated fix.
Looking forward to what happens here, and to see what you can achieve with the manufacturers...

We have so many great people here . Guys, thank you very much for all your messages and donations - I really, really appreciate that . Now I see that is worth to sitting even 3 months in the car D) just to read such good words.
So, there is no time to wait. Please read the first post and enjoy .

Great! Is there any precautions in install if I already have one of your earlier fix? (testing the old "C" right now)
Is the old gosdk_orig ok, just rename to _backup? The other "sdk" file in the first fix should be taken back to original?

[email protected] said:
Great! Is there any precautions in install if I already have one of your earlier fix? (testing the old "C" right now)
Is the old gosdk_orig ok, just rename to _backup? The other "sdk" file in the first fix should be taken back to original?
Click to expand...
Click to collapse
Nothing special to upgrade from previous solution is needed. Just replace gocsdk from old solution with newer one and follow the README.
Yes, sdsdk can be taken back to original. Name of the gocsdk backup file does not matter - it can be _backup, _orig, etc.
What I observed, Sdsdk* binaries are not executed by Android at all. They are almost the same as gocsdk. The only difference is implementation of the audio pooling.

Hi, I have an xtrons PB7653BAP with the same problem. I tried your solution, but cannot rename or copy in the directory with ES File Explorer. It is read only. How can I change that? Afterwards, how can I set permission codes to 777?
Thanks

clsbuilder said:
Hi, I have an xtrons PB7653BAP with the same problem. I tried your solution, but cannot rename or copy in the directory with ES File Explorer. It is read only. How can I change that? Afterwards, how can I set permission codes to 777?
Thanks
Click to expand...
Click to collapse
you have to be root.
after that use root explorer

Nomader0 said:
you have to be root.
after that use root explorer
Click to expand...
Click to collapse
OK, thanks for that. Stupid question (I'm not used to Android) perhaps but how to get rooted? Do you mean at the reboot (menu) of the radio?

clsbuilder said:
OK, thanks for that. Stupid question (I'm not used to Android) perhaps but how to get rooted? Do you mean at the reboot (menu) of the radio?
Click to expand...
Click to collapse
ok..
1st, is your unit a PX3 or PX5?
there are 2 ways to root
1. install Malaysks ROM which is rooted
2. use tools like kingoroot etc..

Nomader0 said:
ok..
1st, is your unit a PX3 or PX5?
there are 2 ways to root
1. install Malaysks ROM which is rooted
2. use tools like kingoroot etc..
Click to expand...
Click to collapse
OK, I can manage that. About px3 or 5, no clue; where can I find that? Can you help me on that? I cannot post a link (because I am new), but if you search for xtrons PB7653BAP you will find it; It is a 7" HD Digital Octa-Core 64bit 32GB + 2G RAM Android 6.0 Multi Touch Screen Car DVD Player Custom Fit for BMW E53 / X5.

clsbuilder said:
OK, I can manage that. About px3 or 5, no clue; where can I find that?
Click to expand...
Click to collapse
Settings >> About tablet >> Build number - what is at the beginning of the line?

clsbuilder said:
OK, I can manage that. About px3 or 5, no clue; where can I find that? Can you help me on that? I cannot post a link (because I am new), but if you search for xtrons PB7653BAP you will find it; It is a 7" HD Digital Octa-Core 64bit 32GB + 2G RAM Android 6.0 Multi Touch Screen Car DVD Player Custom Fit for BMW E53 / X5.
Click to expand...
Click to collapse
ok this is a little off-topic.. but here it goes.
99% you unit is PX5. you can go to settings-->about.. and see.. you will also find the word "MTCD" tell me what 2 or 3 letters are next to that... (GS?, MX? KSP?)
this would be you manufacturer..
you will also find the word PX5 somewhere there or PX3..
now if it is PX5 (which probably it is) go to:
https://forum.xda-developers.com/an...lopment/rom-malaysk-roms-mtcd-device-t3598908
and you will find info there on how to install Malaysks ROM.. your unit will be reset. i advise you to install v.2 of the ROM, and not v.3/v.3.5/v4. v2 is the most stable for now.

Hi f1x,
Like everyone I renewed my donation too, you really deserve it.
I am among those who have the new Dasaita unit that uses a new Bluetooth module (SD-968 module) (see attached image)
I launched the two commands: `ps | Grep gocsdk` e `ps | Grep sdsdk`
With the first command (`ps | grep gocsdk`) Terminal Emulator does not return any result (see attached image)
With the second command (`ps | grep sdsdk`) Terminal Emulator returns this result (see attached image):
root 1643 1 35768 10552 do_wait 0000000000 S /system/bin/sdsdk968
root 17880 1643 45060 2900 futex_wait 0000000000 S /system/bin/sdsdk968
[email protected]:/ $
Hope this information can help extend the fix to this new Bluetooth module.
Thank you

Nomader0 said:
ok this is a little off-topic.. but here it goes.
99% you unit is PX5. you can go to settings-->about.. and see.. you will also find the word "MTCD" tell me what 2 or 3 letters are next to that... (GS?, MX? KSP?)
this would be you manufacturer..
you will also find the word PX5 somewhere there or PX3..
now if it is PX5 (which probably it is) go to:
https://forum.xda-developers.com/an...lopment/rom-malaysk-roms-mtcd-device-t3598908
and you will find info there on how to install Malaysks ROM.. your unit will be reset. i advise you to install v.2 of the ROM, and not v.3/v.3.5/v4. v2 is the most stable for now.
Click to expand...
Click to collapse
+ Please check in factory settings what bluetooth module is installed. For now solutions works only for MD725.

apollo1976 said:
Hi f1x,
Like everyone I renewed my donation too, you really deserve it.
I am among those who have the new Dasaita unit that uses a new Bluetooth module (SD-968 module) (see attached image)
I launched the two commands: `ps | Grep gocsdk` e `ps | Grep sdsdk`
With the first command (`ps | grep gocsdk`) Terminal Emulator does not return any result (see attached image)
With the second command (`ps | grep sdsdk`) Terminal Emulator returns this result (see attached image):
root 1643 1 35768 10552 do_wait 0000000000 S /system/bin/sdsdk968
root 17880 1643 45060 2900 futex_wait 0000000000 S /system/bin/sdsdk968
[email protected]:/ $
Hope this information can help extend the fix to this new Bluetooth module.
Thank you
Click to expand...
Click to collapse
my 2nd unit also has sd968. i will try tonight and post my results.. hope f1x can make it work for that too

apollo1976 said:
Hi f1x,
Like everyone I renewed my donation too, you really deserve it.
I am among those who have the new Dasaita unit that uses a new Bluetooth module (SD-968 module) (see attached image)
I launched the two commands: `ps | Grep gocsdk` e `ps | Grep sdsdk`
With the first command (`ps | grep gocsdk`) Terminal Emulator does not return any result (see attached image)
With the second command (`ps | grep sdsdk`) Terminal Emulator returns this result (see attached image):
root 1643 1 35768 10552 do_wait 0000000000 S /system/bin/sdsdk968
root 17880 1643 45060 2900 futex_wait 0000000000 S /system/bin/sdsdk968
[email protected]:/ $
Hope this information can help extend the fix to this new Bluetooth module.
Thank you
Click to expand...
Click to collapse
Yes, now I have all needed info to start work on solution for new bluetooth module. But I will not have possibilty to test it.
I hope I release it still today.

f1x said:
Yes, now I have all needed info to start work on solution for new bluetooth module. But I will not have possibilty to test it.
I hope I release it still today.
Click to expand...
Click to collapse
i can help you any way i can

Related

[APP] FLAC/APE Player [March 11 Update]

I am not an application programmer but sound is very important for me.
I didn't find any flac players for Android, so I wrote a simple program myself.
The interface is rather ascetic because I'm not a java programmer.
The program plays any FLAC, APE or uncompressed WAV file, or all such files in a directory.
Hope somebody will contact me and write a really good flac player for Android.
---------------------------
[Updated on November 24]
Here's the completely rewritten version.
It's much more stable and smooth, and has a better interface.
No need to use command line to set the required permissions, it'll call for the root access if it fails to open the sound device in read-write mode.
---------------------------
[Updated on December 31]
(1) At last, found a way how to make the interface indeed responsive!
(2) Added WavPack (*.wv) and MusePack (*.mpc) support.
(3) Added a simple Settings menu to change font size and overall appearance.
---------------------------
[Updated on January 30]
(1) CUE files support
(2) Playlists support
See post http://forum.xda-developers.com/showthread.php?p=5499903#post5499903 for details.
---------------------------
[Updated on February 12]
(1) ROOT ACCESS IS NOT REQUIRED ANYMORE
(2) On request, playback of lossy files supported in Android
See post http://forum.xda-developers.com/showthread.php?p=5603599#post5603599 for details.
---------------------------
[Updated on February 25]
(1) Added support of non-rooted Android 2.0 & 2.1 devices
(2) Improved interface (now shows track time/progress)
---------------------------
[Updated on March 11]
(1) Added support of Apple Lossless Audio Codec (aka ALAC)
(2) Added auto-bookmarks so that you can exit and then restart exactly where you were playing before
(3) New icon and buttons (thanks to the people from 4pda.ru!)
(Minor update on March 12) Fixed a bug not flushing the buffer at the start of each track; auto-bookmarks as a user option.
(Minor update on March 14) Fixed sdcard write permissions in manifest
Please backup and uninstall the previous version before installing this one, it uses different SDK/NDK setup!!!
The sources are now available via SVN at http://code.google.com/p/andless.
It plays either FLAC or APE, both lossless and lossy.
Unless you're deaf, you'll hear the difference if you get proper headphones.
Awesome
awesome stuff ive been looking all over the place for something like this. now i have to figure out how to root my hero . these commands give me the chills. you should have this on the marketplace
before we get into flac/lossy wars. what's important is that you don't have to convert any flacs to mp3 in order to put em on your phone. just drop and go. very helpful. that being said i dont think you can hear a diff. id have to own some grado headphones to test it out. i imagine the people who are getting headphone jack problems will cringe when they see this . good work ! thanks !
Fantastic! Thank you so much for this!
Can this made indefinitely part of the rom?
naTTan said:
Can this made indefinitely part of the rom?
Click to expand...
Click to collapse
Kruton has written some patches which are currently included in cyanogen ROMs for G1. I tried to compile them for Hero, no success so far: the library he uses (libFLAC) seems to have certain bugs and won't reconstruct original encoded sound. On the other hand, this program uses the decoder from Rockbox project which I'd recognise as the greatest code ever written for mobile devices (including their ROMs for ipod etc). It's halfway in assembly language, and decodes flac/ape files EXACTLY as they were encoded.
Ok sorry is there a possibility that we should ask modaco to implement this into his roms from now on? There won't be much loss is speed right? And it's a good gain to play some other format of sounds.
Personnaly I'd be delighted if Modaco inserts the flac code in his ROMs! However given that the hero sources just appeared on the scene, he might have more important things right now (e.g. to port 2.6.29 kernel, etc).
Thank you very much for this!!
I would also love to see this make it in to modaco ROMS
avs333 said:
Kruton has written some patches which are currently included in cyanogen ROMs for G1. I tried to compile them for Hero, no success so far: the library he uses (libFLAC) seems to have certain bugs and won't reconstruct original encoded sound. On the other hand, this program uses the decoder from Rockbox project which I'd recognise as the greatest code ever written for mobile devices (including their ROMs for ipod etc). It's halfway in assembly language, and decodes flac/ape files EXACTLY as they were encoded.
Click to expand...
Click to collapse
I think the only reason I used libFLAC is because of the licensing. There's not much chance of getting the LGPL-licensed ffmpeg library included in Android. However, they are already using the Xiph License which is what libFLAC uses.
Who knows. Maybe they're actually going to include ffmpeg in the future and we'll have FLAC at that point!
avs333 said:
I am not an application programmer but sound is very important to me. I didn't find any flac players for android, so I wrote a simple program myself.
IT NEEDS THE ROOT ACCESS, to be precise, you must have read-write access for /dev/msm_pcm_out. It means that before installing you MUST do that:
adb shell chmod o+rw /dev/msm_pcm_out
Should you fail to set such read/write ("crw-rw-rw") permissions for this file (it must be done after each reboot, and you HAVE to be root to do this), the program will exit without ANY notice.
The interface is rather ascetic because I'm not a java programmer. The program plays any single FLAC, APE or uncompressed WAV file, or all files in a directory. Hope somebody will contact me and write a really good flac player for android.
Click to expand...
Click to collapse
Once installed the following are the commands I had to type so I could get this program to work on my Sprint CDMA HTC Hero. Do not copy the parenthesis.
1. "cd C:\android-sdk-windows\tools"
2. "adb shell"
3. $ "su"
4. # "mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system"
# "chmod 7777 /dev/msm_pcm_out"
komteks said:
Once installed the following are the commands I had to type so I could get this program to work on my Sprint CDMA HTC Hero. Do not copy the parenthesis.
1. "cd C:\android-sdk-windows\tools"
2. "adb shell"
3. $ "su"
4. # "mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system"
# "chmod 7777 /dev/msm_pcm_out"
Click to expand...
Click to collapse
there is no need to remount /system rw. also you should not do a "chmod 7777" unless you know what you are doing. the correct command here is "chmod o+rw /dev/msm_pcm_out". last but not least, if you remount /system rw you should remount it ro after you are done...
kendong2 said:
there is no need to remount /system rw. also you should not do a "chmod 7777" unless you know what you are doing. the correct command here is "chmod o+rw /dev/msm_pcm_out". last but not least, if you remount /system rw you should remount it ro after you are done...
Click to expand...
Click to collapse
C:\android-sdk-windows\tools>adb shell chmod o+rw /dev/msm_pcm_out
Bad mode
C:\android-sdk-windows\tools>adb shell
$ su
su
# chmod o+rw /dev/msm_pcm_out
chmod o+rw /dev/msm_pcm_out
Bad mode
#
What am I missing?
komteks said:
C:\android-sdk-windows\tools>adb shell chmod o+rw /dev/msm_pcm_out
Bad mode
C:\android-sdk-windows\tools>adb shell
$ su
su
# chmod o+rw /dev/msm_pcm_out
chmod o+rw /dev/msm_pcm_out
Bad mode
#
What am I missing?
Click to expand...
Click to collapse
sorry, can't help you there:
[email protected]:~$ adb shell chmod o+rw /dev/msm_pcm_out
[email protected]:~$ adb shell ls -l /dev/msm_pcm_out
crw-rw-rw- 1 1000 1005 10, 59 Mar 2 1980 /dev/msm_pcm_out
Click to expand...
Click to collapse
kRutOn said:
I think the only reason I used libFLAC is because of the licensing. There's not much chance of getting the LGPL-licensed ffmpeg library included in Android. However, they are already using the Xiph License which is what libFLAC uses.
Who knows. Maybe they're actually going to include ffmpeg in the future and we'll have FLAC at that point!
Click to expand...
Click to collapse
This is the point I truly don't understand.
The best people like you have done quite a work to improve Android, but NOBODY seems to care because of the licenses of some obscure kind!
The code you wrote isn't even included in the latest sources. I wish I knew why the developers are so blatantly ignored...
Anyway I thank you for your greatest efforts, and hope that one day we'll have a working platform which plays all formats imaginable.
komteks said:
# chmod o+rw /dev/msm_pcm_out
chmod o+rw /dev/msm_pcm_out
Bad mode
#
Click to expand...
Click to collapse
Kinda strange. Bad mode, hmmm. Sounds like you have chmod that doesn't understand normal linux language, try "chmod 0666 /dev/msm_pcm_out" then.
As the matter of fact, what ROM do you use? Is it really routed?
avs333 this is brilliant i am interested in making more features for this program like playlist, genre sorting etc, i would help you in developing it
secretfile said:
avs333 this is brilliant i am interested in making more features for this program like playlist, genre sorting etc, i would help you in developing it
Click to expand...
Click to collapse
Thank you, secretfile!
Alas, right now I have little time to develop it, but it'd be very nice if you make such improvements! Also it'd be great to have a support of CUE files, because many flac/ape files in the Internet are encoded as a single large file with the tracks defined in CUEs.
Please PM me your e-mail, I'll send you the sources if you decide to use them!
avs333 said:
Kinda strange. Bad mode, hmmm. Sounds like you have chmod that doesn't understand normal linux language, try "chmod 0666 /dev/msm_pcm_out" then.
As the matter of fact, what ROM do you use? Is it really routed?
Click to expand...
Click to collapse
I am using the stock Sprint CDMA HTC Hero ROM build number 1.56.651.2 CL85027 release-keys.
It is rooted as I can successfully use the wireless tether for root users app.
After trying the new chmod command I get the following:
Unable to chmod /dev/msm_pcm_out: Operation not permitted
komteks said:
I am using the stock Sprint CDMA HTC Hero ROM build number 1.56.651.2 CL85027 release-keys.
It is rooted as I can successfully use the wireless tether for root users app.
After trying the new chmod command I get the following:
Unable to chmod /dev/msm_pcm_out: Operation not permitted
Click to expand...
Click to collapse
Please check that you're indeed root by running "id" before doing "chmod". It should say something like "uid=0 gid=0".
Anyway, have you tried the last version I uploaded a week ago? It doesn't need any commands to be entered manually, and executes them itself if it cannot open the device.

Bluetooth HID for MIUI

This guide is based heavily on the one found here: http://i-miss-erin.blogspot.com/2009/09/connect-bluetooth-keyboard-in-android.html
In fact, all information was gleaned from Erin's blog (super props to Erin). This guide is just slightly simplified, with a flashable zip instead of a few ADB steps/
Step 1.) Download the MIUI_Bluetooth_HID.zip from the Download page
Step 2.) Turn Bluetooth ON from Setting UI and click 'Scan for devices'
Step 3.) Select your bluetooth keyboard and pair it.
Step 4.) Under your keyboard android will state "Paired but not connected"
Step 5.) Open up a command prompt/terminal. I am working on a script to automate this part, but for now, you need to use ADB).
Note: Some of the following commands will output text.
adb shell
hcitool scan
(All bluetooth devices in range will be listed here. Look for your bluetooth keyboard, and copy down it's MAC Address)
hidd --connect xx:xx:xx:xx:xx:xx
(Replace xx:xx:xx:xx:xx:xx with your bluetooth keyboard's MAC Address)
hcitool con
(This command shows all connected HID devices, and should list the MAC Address of your bluetooth keyboard)
And that should be it - try typing and see if it works.
If anyone knows how to do the following in a bash script, I'd be grateful if you could tell me.
- Search for a text string in a text file, and replace it with a different text string.
The idea here:
- Script1 runs the scan
- The user copies down the keyboard's MAC Address
- The user enters the MAC Address and it is stored as a variable (is it possible for this to happen automatically?)
- The Script1 then duplicates a second script file called Script2
- The Script1 replaces a preset string (eg xx:xx:xx:xx:xx:xx) inside Script2 with the correct MAC Address of the bluetooth keyboard.
- Script1 runs Script2
- Script2 completes the HID control command
anyway, Thank Erin if it works for you - it worked for me.
Josh
Sense Integration
Can someone PLEASE integrate this into a Sense ROM? IE: Currently using PAYS 2.2...
I tried forcing the files in to /system/xbin but I get the following:
# hcitool scan
Device is not available: No such device
I just got an Rii mini BT Keyboard because it said it was Android compatible, but the drivers won't validate... apparently there's a licensing issue with the OEM or something (found this info on a Google search).
Can someone help?
bdusmc said:
Can someone PLEASE integrate this into a Sense ROM? IE: Currently using PAYS 2.2...
I tried forcing the files in to /system/xbin but I get the following:
# hcitool scan
Device is not available: No such device
I just got an Rii mini BT Keyboard because it said it was Android compatible, but the drivers won't validate... apparently there's a licensing issue with the OEM or something (found this info on a Google search).
Can someone help?
Click to expand...
Click to collapse
Not possible.
Sent from my HTC Desire using XDA App
hi
hi
can u please help me to connect desire hd to rii mini blue tooth keyboard
it is detected but not pairing. Please help me
Hate to bump an old thread like this, but I've been trying to get this type of support on my phone and keep getting pointed to the Desire thread.
On that note, on the Download page the file we are told to download (MIUI_Bluetooth_HID.zip) isn't there. Any idea where it went?
Thanks!
any progress on this dude? i mean automating the connections?
I know this is a thread about HTC Desire, and I beg your apologies in advance for the intrusion, but...this solution is expected to work also in a Motorola Defy, or it will not work?
(just wondering if can be applies in other phones too...)

[FAQ][DEV] BT, WiFi and MAC Address on HD2

I hope all this is just a little bit interesting for some developers because I can't do any further investigations on ANDROID because my device is broken. At the moment it's on the way and I hope I will get a change of my broken HD2. I have summarized some more or less insteresting facts and I hope someone of you will think about all this informations and can work with them.
First at all: I'm not a developer but I have done some search on ANDROID and logged and logged and logged it again. All this is just a collection of facts and results of compare log files.
When you disassemble some Files within Android, you will see that something will not work because it can't. Let me start with the init.rc what is missing or might be wrong:
1. MISSING FOR BLUETOOTH:
Code:
# create mountpoints
mkdir /mnt_data/download 0777 root system
2. WRONG?
Code:
chmod 0666 /dev/ttyHS1
chown root radio /proc/cmdline
chmod 666 /proc/cmdline
There is no ttyHS1 device within the ANDROID. Can't find it.
3. NOT SURE
rfkill is seems not working. Recommendation on the website:
http://www.gitorious.org/openaos-te...5f360fec4c21c1e06d145a5fe?diffmode=sidebyside
Code:
chmod 0666 /sys/devices/platform/wifi_bt/bt_enable 0
write /sys/devices/platform/wifi_bt/bt_enable 1
but based on ANDROID Developer FAQ it should be:
Code:
chmod 0666 /sys/modules/board_[platform]/parameters/bluetooth_power_on
write /sys/modules/board_[platform]/parameters/bluetooth_power_on 1
and this MUST also done after the change:
Code:
on property:persist.service.bluetoothd.enable=0
write /sys/modules/board_htcleo/parameters/bluetooth_power_on 0
...depend of the settings it also could be:
Code:
write /sys/devices/platform/wifi_bt/bt_enable 0
on property:persist.service.bluetoothd.enable=1
write /sys/modules/board_htcleo/parameters/bluetooth_power_on 1
...depend of the settings it also could be:
Code:
write /sys/devices/platform/wifi_bt/bt_enable 1
Also interesting is the command write which is used a lot of times by the init.rc. I don't know where this command is located. But if you open a SHELL on Android and try to "write" something you will see that this command is not available. Can someone explain how this will work when this command is not available????
4. WRONG!
Code:
chmod 666 /dev/uinput
chmod 666 /etc/bluez/audio.conf
chmod 666 /etc/bluez/hcid.conf
chmod 666 /etc/bluez/input.conf
On the one hand this path is not existing and on the second hand the hcid.conf is also not existing. If you take a look only within /etc you will see that /etc/bluetooth is only existing.
5. BT INITIALIZATION
Code:
service hciattach /system/bin/brcm_patchram_plus --enable_hci –enable_lpm --baudrate 3000000 --patchram /etc/firmware/bcm4329.hcd /dev/ttyHS0
user bluetooth
group bluetooth net_bt_admin
disabled
This is also not working at all. If you try to run this command via the shell nothing will happens. And if you need to load the firmware into the device you need also setup this device by nvram.txt which you can see within the bluetooth.c file. The nvram.txt is important to get a valid MAC Address from the hardware. If you take a look into the source code of the BCM4329 you will see additional informations about this.
The second problem is the value of 3000000. This is to small. If you want to work with head set than a value of 4000000 is minimum required. From my point of view this initialization should be:
Code:
service hciattach /system/bin/logwrapper /system/bin/hciattach -s 57600 /dev/ttyHS0 any 4000000 flow
The value 57600 is the minimum value for initialize bluetooth and it could be that this value will downsize the standby drain. Not sure, just an idea.
Why? Lets take a look into the main.conf or hcid.conf:
Code:
# What value should be assumed for the adapter Powered property when
# SetProperty(Powered, ...) hasn't been called yet. Defaults to true
InitiallyPowered = true
# Remember the previously stored Powered state when initializing adapters
RememberPowered = true
This was the reason why I think the initialization speed "...-s 57000 /dev..." should be lowerd down which might also solve the battery drain issue. Again, not sure - just an idea.
Btw, if you open the ADB shell and try hciconfig, hciattach or hcitools non of this are working because there is no Bluetooth Adapter even if you have BT enabled. This tools are requried for BT analyse, test and command options. You can call each of the files within the Shell but whatever you try to do you it will fail because BT is not enabled. Try to run rfkill which could initiate a reset on the BT device. If you try to rfkill ttyHS0 which is the BT adapter on HD2 device this will not work. From my point of view all this problems are not only related to the kernel.
6. TAKE A LOOK INTO THE init.htcleo.rc
Code:
# Make sure we startup btld before hcid
# Set target address to emulator host loopback IF
# Limit baudrate to 460800 to ensure reliable uart operation
service btld /system/bin/logwrapper /system/bin/btld -hwtun 10.0.2.2 -hb 460800 3000000 -lpm 1
# service btld /system/bin/logwrapper /system/bin/btld -lpm 1 -hb 3000000
Not sure what will run first. The init.rc or the init.htcleo.rc. If the init.rc will run first this could be also a problem. Btw, the first value is 460800. From my point of view this is too much for initialization.
7. WiFi INITIALIZATION
Just an example but if you do a Google search for "BCM4329 nvram.txt" you will get more than 3 links. Let me show here an example:
http://android-wifi-tether.googlecode.com/svn-history/r465/trunk/res/raw/tether_edify
Search for Value 4329 and you will see SAMSUNG Device bla, bla – don't know from top of my head:
Code:
!file_exists("/sdcard/android.tether/bcm4329.bin") && ( module_loaded("dhd") || log(insmod("/lib/modules/dhd.ko", "firmware_path=/system/etc/wifi/bcm4329_mfg.bin nvram_path=/system/etc/wifi/nvram_mfg.txt"), "Loading dhd.ko module<br>(bcm4329_mfg.bin from /system/etc/wifi/)"); );
Hmm... That was the reason why I grabbed the SAMSUNG i9000 from a friend of me and double checked the device. If you take a look into the /etc/wifi you will see the nvram.txt. I'm not sure how this will be loaded into the device but the i9000 has the same BCM4329 Chipset.
Now let us take a look into the wifi.c for QUALCOMM devices which is also valid for the HD2:
http://gitorious.org/linux-on-qualc...f8dffe668c0448/libhardware_legacy/wifi/wifi.c
Code:
Line 61: Take a look. Nothing of this is existing on the HD2
Line 71: there is no wlan.ko on the HD2
But now, where the hell the MAC Address is stored for the WIFI Adapter? Just take a look at this location:
Code:
sys/module/board_htcleo/parameters/bdaddress
or use this:
Code:
/system/sysroot/module/board_htcleo/parameters/bdaddress
If you check this file you will see there your current MAC Address of the WIFI device. The stupid MAC for the BT device seems not stored on the device. And this is the point where I guess to need the fu***ing nvram.txt.
I have done a search for some BCM files and found something interesting which is attached as "Broadcom Files.7z." There are some (!) more or less firmware files within (?) and also the famous nvram.txt
For additional informations about WiFi and more just open the wifi_suplicant within the /system/bin directory with a simple text editor and browse down to the end. There you will see also a lot of interesting settings for the WiFi environment.
8. W.t.F. IS THIS STUPID NVRAM.TXT?
Download attached Broadcom.7z and check the txt file within. If you open the file you will see the nearly same content as within the
Code:
/etc/calibration
file.
But this file you can ignore on your HD2 device. Delete it, rename it – do whatever you want and you will see no changes on the device. The more interesting thing is within
Code:
/sys/calibration
Huhhhh...! The same file but less values. But where does it come from??? Currently I don't know.
It seems that the nvram.txt is as same as like a BIOS for the device. The BCM4329 is a BT AND WiFi Chip within one CHIP. It might be wrong but I guess this is the easy explanation for this.
And because of this the thing can't work. First it needs to load the BIOS (nvram.txt) and then it needs the OS for it (BCM4329 Firmware).
Okay here is something by reading and following your examples:
sys/module/board_htcleo/parameters/bdaddress
That lines exists in the current NAND Android roms, but this line:
/system/sysroot/module/board_htcleo/parameters/bdaddress
doesnt exist, not in Rafs rom or in imilka's 0.1 GB sense rom.
But here is my key interest: "bdaddress" is where the BLUETOOTH MAC Address is!
Another interesting thing, in imilka's 0.1 GB Sense rom, I can change this to whatever I want and it Sticks till I reboot, but in Rafs it does not.
Key Question, How do we make this file KEEP the changes we make to it??? I know its a dirty fix but none the less its a FIX!! So anyone got a clue?!??
First of all there is a WRONG that is big like an house
the init.rc "syntax" is not shell syntax.
so as example, command "write" will not work in shell... but only in init.rc
I see also a lot of confusions about stock froyo/gingerbread stuff and sense stuff.
Example: Sense uses it's own stuff for BT so a clean init.rc for sense is really different from the one for a non-sense build.
Also some stuff/commands needs to be changed/replaced to have them working with our hd2 kernel.
I have no time now but really this posts is about 30 different things that cannot be explained all togheter.
My suggestion is to google for "android init syntax" and start from there understanding all the android boot process and the android init syntax.
About the wifi mac address.
The wifi mac address is "read" from the libhardware_legacy.so
normmaly this lib reads the mac address in /etc/calibration
this file is a "kernel" file so you are not able to change it.
You can use a modified libhardware_legacy.so that reads the mac address in /system/etc/calibration so you can change it, as I did on my builds where you can change the wifi mac address.
Unfortunately the modified libs causes other issues like gps not working.
---------------------------------------------------------------------------
About the problem that you cannot write permanetly the changes on stuff inside the folders
/
/etc
/proc
/sys
and so on.. this is because those folders are the "kernel" that normally is read-only
you can make it write enabled but it's not a safe way to proceed...
so is there a chance to fix the issue with the bluetooth mac?!
would be important for me
(can't use my parrot car kit with my wifes hd2 because of the same mac adress )
rafpigna said:
First of all there is a WRONG that is big like an house
the init.rc "syntax" is not shell syntax.
so as example, command "write" will not work in shell... but only in init.rc
I see also a lot of confusions about stock froyo/gingerbread stuff and sense stuff.
Example: Sense uses it's own stuff for BT so a clean init.rc for sense is really different from the one for a non-sense build.
Also some stuff/commands needs to be changed/replaced to have them working with our hd2 kernel.
I have no time now but really this posts is about 30 different things that cannot be explained all togheter.
My suggestion is to google for "android init syntax" and start from there understanding all the android boot process and the android init syntax.
Click to expand...
Click to collapse
Thanks mate! The problem is that I have no clue how to do it but I hope someone outside who has more experience with all this knows what to do.
Btw, I have had also tried to do a simple test with this "write" command by fill a line within /etc/test and also /proc/test which fails. Usually I added some lines into the init.rc to see if this will work.
But I'm not sure if I have had something wrong.
rafpigna said:
About the wifi mac address.
The wifi mac address is "read" from the libhardware_legacy.so
normmaly this lib reads the mac address in /etc/calibration
Click to expand...
Click to collapse
Sorry, but this is not true. Check this:
http://developer.android.com/reference/android/net/wifi/WifiInfo.html
If you check this from Android SDK you will see that the wpa_supplicant is responsible for this. And this would be O.K. if you also check the BCM4329 source code.
First the CHIPSET will be initiated and prepared by the firmware and the nvram.txt and after that the wpa_supplicant do the rest.
How this exactly will work - sorry, too less coding knowledge
A good thing is it to compare the MAC & BT issue with the i9000 devices and Sony X10. The Sony X10 has the same QUALCOM chipset as the HD2.
Here are the files from the original Desire HD 1.8x.
The initrd.zip contains is the original file and the initrd~.7z is the extracted who is interested to read and compare.
see this http://gitorious.org/linux-on-wince...mmit/ce69804632e64b397758c1c9835f06efd0c8cb54
in file arch/arm/mach-msm/board-htcleo.c i see from markinus some changes to file bdaddress.but it is not in the main git tree we use for hd2 kernel
maybe someone kernel developer can see it and make a kernel for testing;
clio94 said:
see this http://gitorious.org/linux-on-wince...mmit/ce69804632e64b397758c1c9835f06efd0c8cb54
in file arch/arm/mach-msm/board-htcleo.c i see from markinus some changes to file bdaddress.but it is not in the main git tree we use for hd2 kernel
maybe someone kernel developer can see it and make a kernel for testing;
Click to expand...
Click to collapse
Looks good, but this is not valid for HD2. This is HTC Tattoo. If you check this code you will see "akm8973".
Damn!
http://nagaraj-embedded.blogspot.com/2011/02/guide-on-adding-wifi-drivers-on-android.html
and
http://www.jetdroid.org/forum/viewtopic.php?f=78&t=456&start=20#p4502
Can someone double check this???? From my point of view this looks quite good...
MrT69 said:
Sorry, but this is not true. Check this:
http://developer.android.com/reference/android/net/wifi/WifiInfo.html
If you check this from Android SDK you will see that the wpa_supplicant is responsible for this. And this would be O.K. if you also check the BCM4329 source code.
First the CHIPSET will be initiated and prepared by the firmware and the nvram.txt and after that the wpa_supplicant do the rest.
How this exactly will work - sorry, too less coding knowledge
A good thing is it to compare the MAC & BT issue with the i9000 devices and Sony X10. The Sony X10 has the same QUALCOM chipset as the HD2.
Click to expand...
Click to collapse
I'm wrong?
Sorry to say, I'm not an andorid guru but maybe I have a little bit more knoledge and trust me in our case, at least with our builds, the mac address is read from the calibration file.
So how is possible that in my builds you can change the wifi mac?
I just take yor desired wifi mac, write it in the /system/etc/calibration file and replace the libhardware_legacy.so that will read from that instead of /etc/calibration
MrT69 said:
Thanks mate! The problem is that I have no clue how to do it but I hope someone outside who has more experience with all this knows what to do.
Btw, I have had also tried to do a simple test with this "write" command by fill a line within /etc/test and also /proc/test which fails. Usually I added some lines into the init.rc to see if this will work.
But I'm not sure if I have had something wrong.
Click to expand...
Click to collapse
Already said... init.rc syntax is not shell syntax!!!
Anyway.. I still miss the purpose of this thread....
Just the first two google search links appearing with a simple "android init.rc" search
http://www.androidenea.com/2009/08/init-process-and-initrc.html
http://elinux.org/Android_Booting
Read that and something will be clearer.
rafpigna said:
I'm wrong?
Sorry to say, I'm not an andorid guru but maybe I have a little bit more knoledge and trust me in our case, at least with our builds, the mac address is read from the calibration file.
Click to expand...
Click to collapse
It might be that I have had something missunterstand but I only want to say by default (!) the MAC Address is not read from the calibration file by ANDROID. Of cause I have had tested your solution and it's working.
So how is possible that in my builds you can change the wifi mac?
I just take yor desired wifi mac, write it in the /system/etc/calibration file and replace the libhardware_legacy.so that will read from that instead of /etc/calibration
Click to expand...
Click to collapse
I know that the MAC Address could be changed within this way. I hope you don't understand it within the wrong way but from my point of view this is only a patch solution. Because of the fact that the BT & WiFi Chip is ONE (!) chip within HD2 there must be an other solution to read and get the MAC address for WiFi AND BT.
Already said... init.rc syntax is not shell syntax!!!
Click to expand...
Click to collapse
I only was asking why and where it was not working. In the mentime I know it because of your feedback. But I have add some lines into the init.rc and the files and changes was not written to the device. That was the reason why I was asking.
Anyway.. I still miss the purpose of this thread....
Click to expand...
Click to collapse
Hope to find some people who will help to fix all this issues and on the second hand I hope to find a solution for the BT and WiFi MAC to get it from the device.
It is proper time to make an open discussion about the 2.2.1 rom and more tweaks closer to HD2 reveal in the community.
MrT69 said:
I know that the MAC Address could be changed within this way. I hope you don't understand it within the wrong way but from my point of view this is only a patch solution. Because of the fact that the BT & WiFi Chip is ONE (!) chip within HD2 there must be an other solution to read and get the MAC address for WiFi AND BT.
Click to expand...
Click to collapse
maybe this is wrong but it is extremely good that in sense roms,you can change at any time wifi mac address.in my city municipality have free wifi hotspot but after sometime reads your wifi mac address and cut the connection for a time.so with dynamic wifi address i can be almost all time everywhere online and this saves me from a slow (because i live in a small greek city and 3g connection is not everywhere) data edge connection.

[Q]Kelayout files: does someone knows them very well?

I'm trying to understand exactly how the various keylayout files work... http://source.android.com/tech/input/key-layout-files.html
But I can't understand some things:
1- Why, ie in andromadus, the softouch keys aren't flagged as virtual? this should prevent users from touching them while wanting to touch the screen.
2- How can I see which keylayout file I'm using? I've seen that this should work:
Code:
logcat -d | grep vision
but when I run it it doesn't do anything
Someone had this as output:
Code:
I/EventHub( 6163): New device: id=2, fd=110, path='/dev/input/event5', name='curcial-oj', classes=0x9, configuration='/system/usr/idc/curcial-oj.idc', keyLayout='/system/usr/keylayout/Generic.kl', keyCharacterMap='/system/usr/keychars/Generic.kcm', builtinKeyboard=false
D/EventHub( 6163): No input device configuration file found for device 'lightsensor-level'.
D/EventHub( 6163): No input device configuration file found for device 'vision-keypad-sea'.
I/EventHub( 6163): New device: id=4, fd=117, path='/dev/input/event3', name='vision-keypad-sea', classes=0xc3, configuration='', keyLayout='/system/usr/keylayout/vision-keypad-sea.kl', keyCharacterMap='/system/usr/keychars/vision-keypad-sea.kcm', builtinKeyboard=true
D/EventHub( 6163): No input device configuration file found for device 'proximity'.
I can't understand why it uses generic at first and then passes to sea... And may it be enough for me to grep for I/EventHub to get these strings on mine?
3- Which is the order in which they are used? I mean if there's no x.kl y is used, if there's no y.kl, z is used. This because reading in the following link:
/system/usr/keylayout/Vendor_XXXX_Product_XXXX_Version_XXXX.kl
/system/usr/keylayout/Vendor_XXXX_Product_XXXX.kl
/system/usr/keylayout/DEVICE_NAME.kl
/data/system/devices/keylayout/Vendor_XXXX_Product_XXXX_Version_XXXX.kl
/data/system/devices/keylayout/Vendor_XXXX_Product_XXXX.kl
/data/system/devices/keylayout/DEVICE_NAME.kl
/system/usr/keylayout/Generic.kl
/data/system/devices/keylayout/Generic.kl
Click to expand...
Click to collapse
this should be the order, but I've never heard of anyone changing the first file, of many changing vision_keypad_lang.kl which isn't even mentioned there....
4- If I set a virtual key as a WAKE key will this make the whole file unreadable? so will the desire z pass over it and look for another file? If this is right, as I think and hop, I may have understand which is my problem... I've seen that this is done in andromadus, but I still can't understand how they can wake phone...
5- Which is effectively the difference between WAKE and WAKE_DROPPED, can't get a clear idea from the link
6- What is the purpose of the validatekeymaps tool? Does it verify if the sintax of the file is right?
Thank you
edit: you may have noticed that many of the things I ask can easily be verified with a phone in hands, but I don't have mine at the moment, so I can't do it and it will be like this for a week or so. I have time to develop my project now, so I ask anyway
Noone has worked on these files??
virtualflyer said:
Noone has worked on these files??
Click to expand...
Click to collapse
All your questions can be answered in the official google android documentation. Have a read
Sent from my HTC Vision using xda premium
blk_jack said:
All your questions can be answered in the official google android documentation. Have a read
Sent from my HTC Vision using xda premium
Click to expand...
Click to collapse
I assume you refer to the link I've posted... I've read it, but I still can't understand all points but 5-6 as said in the OP.
There's a VIRTUAL flag and documentation proposes it, so why don't we use it?
Why's everybody changing vision_keypad_lang instead of the one said in doc?
I can't find all these answers (1-4) in documentation... I may haven't seen it, but I read it pretty carefully...
virtualflyer said:
I'm trying to understand exactly how the various keylayout files work... http://source.android.com/tech/input/key-layout-files.html
But I can't understand some things:
1- Why, ie in andromadus, the softouch keys aren't flagged as virtual? this should prevent users from touching them while wanting to touch the screen.
2- How can I see which keylayout file I'm using? I've seen that this should work:
Code:
logcat -d | grep vision
but when I run it it doesn't do anything
Someone had this as output:
Code:
I/EventHub( 6163): New device: id=2, fd=110, path='/dev/input/event5', name='curcial-oj', classes=0x9, configuration='/system/usr/idc/curcial-oj.idc', keyLayout='/system/usr/keylayout/Generic.kl', keyCharacterMap='/system/usr/keychars/Generic.kcm', builtinKeyboard=false
D/EventHub( 6163): No input device configuration file found for device 'lightsensor-level'.
D/EventHub( 6163): No input device configuration file found for device 'vision-keypad-sea'.
I/EventHub( 6163): New device: id=4, fd=117, path='/dev/input/event3', name='vision-keypad-sea', classes=0xc3, configuration='', keyLayout='/system/usr/keylayout/vision-keypad-sea.kl', keyCharacterMap='/system/usr/keychars/vision-keypad-sea.kcm', builtinKeyboard=true
D/EventHub( 6163): No input device configuration file found for device 'proximity'.
I can't understand why it uses generic at first and then passes to sea... And may it be enough for me to grep for I/EventHub to get these strings on mine?
3- Which is the order in which they are used? I mean if there's no x.kl y is used, if there's no y.kl, z is used. This because reading in the following link:
this should be the order, but I've never heard of anyone changing the first file, of many changing vision_keypad_lang.kl which isn't even mentioned there....
4- If I set a virtual key as a WAKE key will this make the whole file unreadable? so will the desire z pass over it and look for another file? If this is right, as I think and hop, I may have understand which is my problem... I've seen that this is done in andromadus, but I still can't understand how they can wake phone...
5- Which is effectively the difference between WAKE and WAKE_DROPPED, can't get a clear idea from the link
6- What is the purpose of the validatekeymaps tool? Does it verify if the sintax of the file is right?
Thank you
edit: you may have noticed that many of the things I ask can easily be verified with a phone in hands, but I don't have mine at the moment, so I can't do it and it will be like this for a week or so. I have time to develop my project now, so I ask anyway
Click to expand...
Click to collapse
2. after a reboot filter the logcat output for "device".
D/EventHub( 6163): No input device configuration file found for device 'lightsensor-level'.
Click to expand...
Click to collapse
create the file "lightsensor-level.idc" inside /system/usr/idc
same for vision-keypad-sea.
for key layouts its the same as for idc, just insert/create the *.kl files into /system/usr/kl if they are missing
curcial-oj uses generic layout because there is no specific layout. just create "curcial-oj.kl" inside /system/usr/kl
4. I guess it's useless to set wake-flag for virtual keys
5. If I understand it correctly keys with WAKE-flag will wake up the phone and execute their function while WAKE_DROPPED will only wake up the phone and drop its function in case that phone's sleeping.
6. at least yes

PX5 MTCD/E Head Unit Discussion Thread [Rockchip PX5 A53 | Android 8.0 | 2/4GB RAM]

This thread is intended on collect the information about Android 8 (Oreo) over the Android units that features:
PX5 Platform Core Board
MTCD/MTCE MCU Type
The information below is a copy of the same thread for Android 6 by @aarick
Post 2: Firmware
Post 3: Tips, Tricks and Fixes - Rooting instruction here
Post 4: Bugs/Issues
Post 5: Useful apps
Post 6: Useful links
For those not familiar with the PX5 Head unit, the specs are below:
OS: Android 8.0 Oreo
CPU: Rockchip PX5 A53 Octa-Core
RAM: 2GB or 4GB DDR3
ROM: 32GB
Audio output: 4*45W
Features:
Built-in Radio Tuner (RDS Enabled) (18 FM and 12 AM stations Preset)
Built-in USB & SD Slot
Region Free DVD Player
Screen Mirroring
Steering wheel controls (SWC) and Canbus interface
Optional compatible accessories:
DAB+ USB Tuner
TPMS
4G/3G Dongle
OBD02 Module
Camera
DVR
External Mic
The head unit comprises of two parts:
a MicroController Unit(MCU) board, which controls physical buttons and A/V inputs/outputs to/from the headunit. This board interacts with Android OS.
ANDROID part. The main Operating System.
Both MCU and Android ROM interact together to achieve the functionality of the head unit.
MCU
MCU type discussed here is MTCD or MTCE (if your unit has not MTCD/MTCE type MCU this thread is not for your unit)
MTCE is a software upgrade for MTCD, so they are identical in terms of hardware
Manufacturers.
The Manufacturer is identified by the XXX when consulting the MCU information under "device information" [MTCE_XXX_Version]. Take into accout that you should always refer the MANUFACTURER name (not the seller) on the forums for help/assistance. Giving the name for the Seller does not give any information but confusion.
e.g: MTCD_HA_1.93_1 (MTCD Unit with MCU for HotAudio under 1.93_1 version)
e.g: MTCE_GS_2.75 (MTCE Unit with MCU for GESHI manufacturer under 2.75 version)
Known manufacturers for MTCD/E PX5 are:
______________ _____________
GS = GE_SHI (ShenZhen GESHI Electronics And Technology CO.,LTD. Brands: KA JUN DA. Website: http://www.szgeshi.com )
KD = KU_DUO (Shenzhen Kuduo Electronic Technology Co. Ltd.)
HA = (Guangzhou Huge Circle Electronic Technology Co., Ltd. Brands: HOTAUDIO/DASAITA. webSite: http://www.hot-audio.com)
JY = JIE_YOU (Shenzhen Jieyou Electronic. Brands: JIE YOU J)
LM = LEI_MA (Lei Electronics Inc)
MX = MAI_XIN (Shenzhen Mai Xin Da Technology Co. Ltd)
ZH = ZHI_HANG (Guangzhou Zhihang Electronics Technology CO., LTD. Brands: WINCA/ROADNAV/STQ) http://www.roadnav.com.cn)
HZC = HANG_ZHI_CHEN (Same as ZH??)
HXD = HE_XIN_DA
KGL = KAI_GE_LE (Shenzhen Kaigele Electronics Co., Ltd Brands: HUIFEI. Website: http://www.kaigele.com/enus/)
KLD = KE_LAI_DE
KSP = KA_SI_PU (Kasi Pu Technology Co., Ltd. Shenzhen)
XRC = XIN_RUI_CHANG (Xinrui Electronic Technology Co. Ltd)
HLA = (Shenzhen Hualingan Electronic Co. Ltd. Brands:HUALINGAN. Website: http://www.dvdplayer.com.cn/)
(this list will be updated according to users report new manufacturers)
Some information I found on the CPU:
Rockchip PX5 Press Release
Firmware Post
MCU Upgrades Repository:
https://forum.xda-developers.com/showpost.php?p=72622240&postcount=2
ANDROID 8 (Oreo) stock Update List:
All the stock and custom PX5 MTCD/MTCE firmwares are valid for all PX5 MTCD/E units independently of manufacturer/seller/amount of RAM/amount of ROM
December 19th 2017. Source Dasaita. Thanks @hotaudio --> https://www.sendspace.com/pro/dl/kc1azp
January 8th 2018. Source HCT. Thanks @hotaudio --> https://www.sendspace.com/pro/dl/empate
January 18th 2018. Source GS. Thanks @kumarai --> https://yadi.sk/d/umCvHqCDzHccr/RockChip PX5 Android 8.0/GS
February 28th 2018. Source HCT. --> https://yadi.sk/d/umCvHqCDzHccr/RockChip PX5 Android 8.0/HCT
March 5th 2018. Source Dasaita. Thanks @hotaudio --> https://www.sendspace.com/pro/dl/v7cuby
March 13th 2018. Source Xtrons (GS). Thanks @catelusii --> https://1drv.ms/u/s!AjrY0uqbW_kBhCr0zB8pj-rIig_U
April 13th 2018. Source Dasaita (HA). Thanks @hotaudio https://www.sendspace.com/pro/dl/7smety
May 16th 2018. Source Dasaita (HA). Thanks @hotaudio
https://www.sendspace.com/pro/dl/q9mr31
June 11th 2018. Source Dasaita (HA). Thanks @hotaudio
https://www.sendspace.com/pro/dl/np2t2w
June 27th 2018. Source HCT. Thanks @fastebp
https://www.sendspace.com/pro/dl/nkez0x
July 5th 2018. Source Dasaita (HA). Thanks @hotaudio
https://www.sendspace.com/pro/dl/2l056f
July 17th 2018. Source Dasaita (HA). Thanks @hotaudio
https://www.sendspace.com/pro/lo8ztf
ANDROID 6.0 -> ANDROID 8 UPGRADE WARNING
Due to change in partition system and upgrade in recovery system, update can't be performed using the OTA Android 8 files over Android 6.0 as usual method (direct or Recovery) as it will result in an error (or could get a bricked device...)
The only available methods are:
1) Upgrade by using SDCARD slot:
Thanks to @marchnz for the Oreo ROM Dumping, to @kumarai for the recovery change procedure, to @SkyBeam2048 for the compiled solutions for Upgrading/Downgrading (and the comprehensive instructions)
The following Procedure can be used :
https://forum.xda-developers.com/showthread.php?t=3736950
Note1. Your unit MUST have a SDCARD slot with direct access to recovery (Not all SDCARD slots on all units can - some sdcard slots have been reported to be another usb port extension [USB3] and they will not work for upgrading)
Note2. USB port is not able to upgrade the recovery as required.
Click to expand...
Click to collapse
2) Upgrade by extracting the SOM and connecting a homemade OTG USB cable:
Instructions for making the OTG cable:
https://forum.xda-developers.com/an...px3-5-headunit-mod-recover-flash-som-t3766892
For upgrading via OTG cable it is recommended to use Rockchip Tools for the Android 6 to 8 upgrade from a PC (to put the unit into "loader Mode" and then flash the supplied firmware)
Custom Oreo Firmwares:
@Malaysk has been released a prerooted Android 8 image with several improvements and modifications:
https://forum.xda-developers.com/an...-malaysk-roms-px5-2-4-gb-8-0-android-t3762724
Tips, Tricks and Fixes
Root for stock ROMs.
[*] Method 1: SDCard & Flashing Update File
Android 8 ROM Root requires to boot.img to be modified and loaded during the Flasing process. @kumarai has been released a first Oreo Root files based on GS ROM from January.
This information is extracted from:
https://forum.xda-developers.com/showpost.php?p=75741195&postcount=519
ROOT rights for Oreo based on GS firmware from 20180118
Receiving the root only through the loading card. The load map contains a modified recovery, and the update.zip update is modified by the boot.
Download archive
Yandex - https://yadi.sk/d/pFSNkK4_3SwNx5
Google - https://drive.google.com/file/d/1xpz...GmaEPfsjd/view
The archive contains the following folders:
Androud-8-sdupdateROOT
CreateCD
SD Formatter
UpdateZIP-patch-root
- In the CreateCD folder, create a bootable card using SD_Firmware_Tool (the program is configured, no checkboxes are set)
- Image to create a map from the folder Androud-8-sdupdateROOT
- After creating the boot card, delete sdupdate.img from the card
- Copy from the UpdateZIP-patch-root folder to the root of the card's SD update.zip
We insert the card into the recorder, reboot, install the update from the SD Card
Remove the card and reboot the radio.
Map formatted with the program from the folder SD Formatter
The root system / app script writes to MagiskManager-v5.6.1.apk
Click to expand...
Click to collapse
[*] Method 2: Injecting supersu via ADB
Originally Posted by Copycat228
Hello!
Use the following instruction to receive permanent root on Android 8 using adb without flashing device:
On Head Unit, install terminal emulator on device and run two following commands and reboot device. This will open ADB witj root permissions on the port 5555
Code:
setprop persist.adb.tcp.port 5555
setprop sys.rkadb.root 1
On your PC, download latest "SuperSu" zip archive from official site, extract su binary from arm64 directory inside the archive
On your PC, create new file called "rooting.rc" with following content:
Code:
service rooting /system/bin/su --daemon
class main
priority 10
user root
oneshot
seclabel u:object_r:system_file:s0
From your PC run:
Code:
# adb connect "device_ip"
# adb root
# adb connect "device_ip"
# adb remount
# adb shell setenforce 0
# adb push su /system/xbin/su
# adb push su /system/bin/su
# adb shell chmod 06755 /system/bin/su
# adb shell chmod 06755 /system/xbin/su
# adb shell /system/bin/su --install
# adb shell /system/bin/su --daemon&
# adb push rooting.rc /system/etc/init/rooting.rc
On Head Unit, install SuperSu from PlayMarket and ask "NO" when application ask to update the module
Click to expand...
Click to collapse
Reboot and enjoy!
https://youtu.be/4v9s89fYIZ4
Bugs/Issues
Q&A
1. I have a MTCD RK3188 unit. Can I use the firmware updates here published?
No. All the stuff here published is for RK3368 (PX5) MTCD/E units. Only the MCU files could be used for your unit (if it is really a MTCD/E)
2. How do I know if my unit is a MTCD/E?
Go to Settings> Device Information and check the MCU version. it MUST be:
MTCD_XXXXX_yyyyy.
MTCE_XXXXX_yyyyy.
Where XXXXX is the acronym for the manufacturer and yyyy is the version for the MCU file
3. I cant find MTCDs MCU updates, but MTCE. Can I update a MTCE over a MTCD?
HCT developers, starting from MCU version 2.65, has been renamed the MCTD as MTCE. It is reported to be a major software update and it is fully compatible with MTCD MCU. Therefore, you can upgrade to MTCE from MTCD safely.
4. My MCU is XXX and i can't find new updates from manufacturer for a long time. Can I update from other Brand MCU?
Not all the MTCD MCUs are the same, but quite similar between them. There is a thread that is collecting all the MCU cross compatibility based on user experiences.
https://forum.xda-developers.com/an.../mtcd-verified-cross-compatible-mcus-t3624724
5. How Do I enter into recovery menu?
Depending on the HeadUnit, the entering into recovery process could vary.
Reset Button Procedure (You need a needle to access that button inside the Reset hole)
Applicable to:
[*] HeadUnits with no physical buttons on Headunit (just capacitive buttons) [Brands: Dasaita]
1. Press Reset and hold until button light blinks (15-20secs)
2. Release Reset and press again. Hold it until you see the Marshmallow logo
3. Release Reset and wait for the Recovery menu to appear
[*] Power Button Procedure [Brands: Dasaita]
Applicable to:
[*] HeadUnits with physical power button on Headunit [Brands: Dasaita]
[*]When none of the above procedures worked:
1. Disconnected all power from the unit... ACC & BAT disconnected
2. Prepared 12V power supply with on negative and two positive connectors
3. Connected negative to GND & one positive to BAT
4. Connected USB keyboard
5. Press right ALT (ALT GR on some keyboards) and PrintScreen
6. Connected the other positive lead to ACC (unit does not work if both BAT and ACC are not connected)
6a. Start pressing repeatedly on E (not holding E pressed, but press...release... press... release..... rapidly)
7. The boot logo shows (MarshMallow...etc) and after a few seconds the unit reboots itself
8. Release right CTRL & PrintScreen and continue to repeatedly press on E.
9. The Recovery shows on screen.
6. I have a complete Bricked Unit with a continuous loop. What can I do?
First of all, you have to try to reload the firmware into the unit. As you are not loaded into Android system, you must reload the firmware by using the recovery menu. To enter into recovery menu read the FAQ#5.
Most of the times, reloading the Android firmware solve the issue. Try with different firmwares if you can't succeed at first time. When, even having tried to update your firmware from recovery, but it did not succeed, you probably have corrupted your NAND. In that case a more complex solution is available (desoldering/soldering is required) to come the unit back to life. Thanks @marchnz for the detailed description on the following thread:
https://forum.xda-developers.com/an...tions-development/px5-stuck-bootloop-t3635412
7. My HeaadUnit never shuts off and, even several days, after switching engine on the Headunit starts in a few secons....Can I kill my car battery?
These units are designed to enter into deep sleep state detecting ACC off, in order to avoid each time you connect the car, you had to wait a full cold boot (20secs) and they just wake up in 2seconds. During This sleep state, the Headunit consumes a small current (just 100-150mA). Such current can't drain your battery.
Some manufacturers (like Dasaita (HA)) have implemented a menu in which, apart of Auto-Sleep you select at which time you want to HeadUnit shuts off completely, useful for long car unused periods.
8. My apps are killed during Sleep and they don't start again after waking up
These HeadUnits kills background processes (except specific ones) during deep sleep state (see Q&A#6). The killing process is managed by MTCManager.apk file. A developer (@graser) has been released a tool that is based on adding apps/services to a whitelist to pevent the unit killed them during sleep. You need root & Xposed Framework. Currently only working on Android 6. wait for a Android 8 upgrade
9.How can I root my unit?
PX5 devices under MM can be rooted easily by means of using kingoroot app (not kingroot), but Android 8 is more complicated (see Post#2)
10.My Bluetooth is not Working. What can I do?
Some specific implementations for MD725 bluetooth device are lack of necessary Blueooth SDK file into Android image. Currently no solution has been found apart from waiting HCT (software developers) to release an Android 8 upgrade with the required SDK included.
Useful apps
Tool Unpack Repack system.new.dat system.img For Windows v3
Current Oreo update file is based on a "update.zip" file (not classic .img file). When decompressing a file system.new.dat contains all the system information and apks. This tool can unpack and repack these kind of files:
https://forum.xda-developers.com/an...tool-tool-unpack-repack-dat-img-v2-0-t3284806
Useful links
Reserved
---------------
Interesting... Hoping for someone to release an upgrade method....
emre33 said:
ANDROID 6.0 -> ANDROID 8 UPGRADE WARNING
Bootable SDCard to GPS slot??? boot.img, uboot.img
Click to expand...
Click to collapse
What's that mean then?
Sent from my [device_name] using XDA-Developers Legacy app
Reverse camera interrupts head unit sound, is this a software limitation or hardware?
Reverse volume in settings
Sent from my [device_name] using XDA-Developers Legacy app
Hi,what is rar password?
jtheg said:
Reverse volume in settings
Sent from my [device_name] using XDA-Developers Legacy app
Click to expand...
Click to collapse
Will take a look tonight. Thanks
zeyret said:
Hi,what is rar password?
Click to expand...
Click to collapse
No password
Hi,
I have GS px5 HU how can I install it? Please help Thanks!
kispako89 said:
Hi,
I have GS px5 HU how can I install it? Please help Thanks!
Click to expand...
Click to collapse
YES!
Why don't we all jump in and ask that question without reading at least the first page
Hi, just bought my unit recently. Was very happy with the RK3188 version, just a little slow. This one is much faster, only the display is a big disappointment in my eyes. The colores are not really rich in contrast. Grey font on white background is not really readable. Is this the same issue for you too?
dboff said:
Hi, just bought my unit recently. Was very happy with the RK3188 version, just a little slow. This one is much faster, only the display is a big disappointment in my eyes. The colores are not really rich in contrast. Grey font on white background is not really readable. Is this the same issue for you too?
Click to expand...
Click to collapse
I don't know which specific model you have, but I have experienced some of the same. Grey on white is hard to see. I think it helps to view the screen from a more direct angle. I am also experimenting with a sun blocker for when the sunlight angle is very shallow. I may possibly try substituting a 10" screen from a 4gb Marshmallow model. And finally I've ordered a model with a 9" display which is not for my car but I believe it will fit, to see if the screen is any better. I think the 10" Intel Joyings had the best screen, incident light reflects off the pixels instead of the faceplate. Having said all that, the Oreo model I have seems useable, although I haven't taken it on what I would call a road trip yet.
As I still have not opened my Unit, looks like OTG USB is possible only on board modify at least according to https://forum.xda-developers.com/showpost.php?p=73057218&postcount=3 and based on provided schematics in https://forum.xda-developers.com/an...id-head-units-general/mtcd-schematic-t3637816 wonder if there is a way to simplify the process.
I'll have my new GS 8.0 PX5 4.0GB ram unit next week, I'll do a small comparison between my current GS 6.0 PX5 2.0GB unit.
Cheers
Mat

Categories

Resources