yashsingh1/xdaforums huggingface dataset:
[Android Head-Units] jakejm79:
Android (since 3.0 I believe) only allows one active input source/device at a time for keyboards, so if you have a physical (be it a BT or USB) connected the on screen keyboard wont display. There was talk by the dev of External Keyboard Helper that he would include a on screen keyboard in a future release so you could have both. You can go in to the settings and toggle the input device or use tasker to do the same, but you can't have both at the same time, one of the draw backs of using the JoyCon EXR for steering wheel controls on recent Android versions.
[Android Head-Units] nikko82:
That's correct, however I used another decompiler and got java-code instead of smali.

The steps I did after rooting was to first make a complete "CMW-style" backup of the file system using "Online Nandroid Backup * ROOT".

I then extracted the com.android.settings_2c11.apk from system.ext4.tar/system/app.

I changed the extension to .zip and extracted the contents.

Then I used dex2jar to convert the classes.dex-file to a jar file.

Finally I opened the jar-file in Java Decompiler.

In com/android/settings/DevelopmentSettings.java I found this line:

this.wH = H("enable_adb");

indicating that the button was called wH.

I then found this related code:

public boolean onPreferenceTreeClick(PreferenceScreen paramPreferenceScreen, Preference paramPreference)
{
if (ce.hS()) {}
do
{
return false;
if (paramPreference == this.wH)
{
if ([B]this.wH[/B].isChecked())
{
this.xj = false;
if (this.xl != null) {
gg();
}
EditText localEditText = new EditText(getActivity());
localEditText.setInputType(129);
this.xl = new AlertDialog.Builder(getActivity()).setMessage(getActivity().getResources().getString(2131428468)).setTitle(2131428467).setIcon(17301543).setView(localEditText).setPositiveButton(17039379, [B]new aH[/B](this, localEditText)).setNegativeButton(17039369, this).show();
this.xl.setOnDismissListener(this);
return false;

The "Positive button" in the dialog box creates a new "aH" object to verify the password.

I then looked in the aH.java-file and found the password there:

class aH
implements DialogInterface.OnClickListener
{
aH(DevelopmentSettings paramDevelopmentSettings, EditText paramEditText) {}

public void onClick(DialogInterface paramDialogInterface, int paramInt)
{
if ("[B]john@tw-desktop[/B]".equals(this.qM.getText().toString()))
{
DevelopmentSettings.a(this.qN, true);
Settings.Secure.putInt(this.qN.getActivity().getContentResolver(), "adb_enabled", 1);
return;
}
DevelopmentSettings.a(this.qN).setChecked(false);
}
}
[Android Head-Units] donaldta:
Can you do me a favor and try installing Hacker's Keyboard on your AN 21-U, set it as your default input method, then go into the Settings for Hacker's Keyboard under the Input Mode settings and place a check on "Show soft keyboard" so the text below it indicates, "Always", instead of, "When no hardware keyboard is available" and test it if allows both without turning off the "Physical Keyboard" toggle in the Languages & keyboard control panel.

There's also a setting "User permanent notification" which allows the keyboard to show by tapping the notification from the status bar.

That is a bullpoop feature if that is the case. Frankly, it is illogical since by sciallo admission, he can use BOTH the USB and soft keyboards at the same time if the "Physical Keyboard" toggle is off. I wonder if that toggle simply attempts to hide the soft keyboard when the physical keyboard is connected, so that you don't need to use other programs like, Null Keyboard which have been known to lock users out of their own device.

Unfortunately, I do not currently have access to an Android device that can I can test or play with that feature. My Nexus 4 is still using the stock ROM which does not support USB that way. My other Android devices are first generation Google TVs, so they do not use soft keyboards. I do have an Motorola Droid 2 which has a physical keyboard. If I use the default soft keyboard then I am not able to see it when the keyboard is out. In fact, if it is being displayed while sliding the keyboard out then the soft keyboard will disappear. However, when I use the Hacker's Keyboard and set the appropriate setting, I am able to use both at the same time but this running Gingerbread (2.3.4 - API level 10).
[Android Head-Units] jakejm79:
Yes I think it is a Honeycomb or later 'feature' there are many posts about using tasker to disable the on screen keyboard when using a physical one on Gingerbread and earlier. I don't know if the fact that the physical keyboard still works after you toggle it off is specific to this device or not, but I have read many posts that show the on screen keyboard is disabled when you connect a physical one.
[Android Head-Units] sciallo:
Hacker's keyboard does the trick, I was planning on using a different keyboard. while I like this one, it doesn't seem to have much swype functionality... proves there is a way :)

Ideally I would just like to see the hardware keyboard option off as a default, most of the times I'll be using an onscreen one... Might have to try tasker...
[Android Head-Units] nikko82:
I bought one for my -05 Touran on AliExpress. This one has a larger screen (the first image is wrong, the one I bought has the volume and tuning knobs at the top). The seller also has devices with the same faceplate as the one you are looking at.

This one is currently $395 + shipping.

aliexpress.com/item/Pure-Android-4-1-Capacitive-Screen-8-inch-Car-DVD-For-VW-Passat-Golf-Jetta-Polo/1507288839.html
[Android Head-Units] jakejm79:
What is the correct structure (or maybe the expected structure) that most media players expect to be able to read media from the external mSD card? And does this vary from one Android version to the next?
[Android Head-Units] donaldta:
Good, thanks for confirming it. I had a feeling that was the case. I indubitably understand that you'd rather use another keyboard. But, unless the individual developer actually programs that method into their soft keyboard then it'll get hidden automatically when a USB keyboard is in use.

As for Tasker, it won't be able make any changes alone. The most it can do by itself is stat particular settings from the Settings control panel. You'd also need to use Secure Settings as a plug-in to Tasker to allow the settings to be switched. Although, I am not sure if that particular toggle is available.
[Android Head-Units] sciallo:
I remember the issue coming up early on, but I don't think there is much of a definite answer.... Is there a fix for some fonts showing up reeeaaally washed up in some apps (play store for one, I can barely read anything in there)... Are we missing some fonts?
[Android Head-Units] jakejm79:
The secure settings plug-in for tasker allows you to set the input method, you could pair that with a on boot profile so you didn't have to do it manually every time you booted.

Sorry donald, didn't mean to repeat what you said, you must have typed that while I was playing with tasker.
[Android Head-Units] donaldta:
There really are no standards. It actually depends on the developer of the media player on how they program their app to search for music. Some might search for all the possible files under the "/mnt" or "/" directory while others may only use the "/sdcard" (which is a soft link to /mnt/sdcard directory on these devices). Some developers may choose to follow symlinks while others don't descend directories on other file systems. Some of the nicer apps allow you to pick and choose exactly which directories to look though. While others will ignore directories if there are a ".media" file in the directory.

That's why I would give multiple possibilities in order to address it for different apps. Probably the most universal way is to mount the physical sdcard on /mnt/sdcard but you'll lose the speed from the internal memory which is why I think they set it up that way.
[Android Head-Units] typos1:
Maybe there is already some code for this in the Linux kernel already that could be utilised instead of using Dalvik donaldta ? There are Linux carpcs out there and a google of "linux steering wheel controls" brings up a few results.

Totally agree that this is a low priority, OBD to USB better in every way. Some of Pumpkin_Cool's ebay listings talk of Bluetooth OBD functionality but he says its only compatible with their app,
[Android Head-Units] patrickoneal:
I'm posting from my phone at a bar, so I don't really want to put the effort into searching the thread atm. If you search for my posts, I have one detailing use of the xposed framework, along with the app setting(I think) plugin. You can individually enlarge any app you want, and they're a whole lot more usable. Blowing up the playstore to 200 or 300 works well, but truncates a lot of the text. Its not ideal, but better than being unreadable.
[Android Head-Units] donaldta:
Hmm... I tried using Google to look up "linux steering wheel controls" but didn't find anything that referred to kernel code. Maybe, I'm misinterpreting your response or what I'm supposed to be keeping an eye out for.

Besides, I was using trying to interpret Dalvik smali code because that's how the Android Multitool decompiled APKs. The idea was to figure out how the SWC controls were being relayed. However, nikko82 pointed out another way to translate the dalvik executable code into java source code, so I might give that go when I get some extra free time.
[Android Head-Units] typos1:
No, youre not misinterpreting me, it was just a thought so I did a search and saw some results, didnt start to read them or anything, thought I d suggest it to you to see if you thought it was a solution, if indeed any code does exist, as you seem the most expert in this thread.
[Android Head-Units] sorin129:
I got and installed the Axxess adapter and now everything is working correctly. I program my buttons and everything is fine. I guess with my car and this Unit you can not get the SWC to work without an adapter. Thanks again for all your help.

---------- Post added at 09:04 PM ---------- Previous post was at 08:54 PM ----------

Yes it's a great unit. Performance and sound quality is real good.
[Android Head-Units] KID52:
Okay so this isn't as promising as I had hoped.

I modified the APK so instead of the function using paramInt, it has a static code of 4, which relates to KEYCODE_BACK.

Now, it sort of works, but it only replaces the function of "Menu", all other functions set in the SWC menu remain unaffected.

So, in the KeyTest app, pressing a button assigned to either "Back" or "Menu" shows a KeyCode of 4, however a button assigned to anything else, such as "Next", shows nothing just like before.

Likewise, the "Home" function assigned to a button still performs the "Home" action instead of the "Back" action it is supposed to.

I'm guessing from this experiment that it isn't just that function acting upon button inputs...
[Android Head-Units] donaldta:
Well, yes and no. We already know that the SWC functions under the "Reserve" option are called up programmatically. For example, I suspect "e(82)" is being called up when the respective programmed SWC button for "Home" is pressed. However, the controls for the "native" music apps might be using another method. The trick in this case is to find the class that calls the "e(int paramInt)" method to see what else it might use for the music apps.

Try plugging in the ODB2 connector into your PC to determine if it is using a FTDI or Prolific adapter. If you have a laptop then you might want to test the various ODB2 software for your computer to see if you actually have a functional unit. There are two possible points of failure in a USB ODB2 cable; the serial adapter and the microprocessor that translates the ODB2 protocols. It's a Chinese clone, so the Quality Assurance is probably not reliable as name brand.
[Android Head-Units] sorin129:
I just got the same USB adapter. Mine works with Torque Pro and is connected to the USB in the back of the unit however I had to disconnected because my car does not like that adapter plugged in at all. My car is acting weird when this USB adapter is plugged in even if the adapter is not connected to the radio. My car won't start most of the time and even if I start the car and then plug it in, it show me unknown driver and other weird things happen.

Could it be that I got a bad adpater or my car does not like an usb adapter plugged in? I tried plugging in my bluetooth adapter and it does not do any of those weird things with that one. Anybody else had a problem with plugging in those usb adapters in their car?

---------- Post added at 10:44 PM ---------- Previous post was at 10:36 PM ----------

I have a different problem with mine. Mine works with Torque Pro just fine but it makes my car do weird things like not starting the car. I had to unplug it. Do you think is a bad adapter?
[Android Head-Units] KID52:
Unfortunately some of the smali was not successfully converted to Java, and from what I have, I cannot seem to find anything of much relevance.

I may be getting confused here, but doesn't the method being "private" mean it can only be called from within "TWService" class?
[Android Head-Units] fcortes626:
those chinese obd2 adapters suck. i bought a bluetooth one and only got it to connect to my phone once. after than i could never get it to connect even though my phone saw the device. i have a better usb adapter that cost me around $50 a couple years back and that one works great on my laptop. so i think its the adapters that dont work for you guys having problems. i will test mine after u get my unit. just shipped from china today so idk how long it will take.
[Android Head-Units] donaldta:
I would guess you have a bad adapter. By the way, the car does't know that you have a USB adapter plug into it. This is how it works.

ODB2 ---> Microprocessor (ELM327) ---> Wire (UART Signal) ----> Serial to USB adapter -----> USB Port of head unit.

If your problem occurs with the ODB2 end of the cable is connected to your car but the USB end is not connected to the head unit. Then that means the Microprocessor is doing something it is not supposed to do. However, if it happens when you have both ends of the cable connected then it could be the way Torque is using the processor to scan for the compatible protocols. I've read in the Torque forums that scanning for the correct protocol has been known to cause various problems in certain vehicles. Maybe try setting your manually setting the ODB2 protocol manually to the one that Torque uses after it goes through the the scan.
[Android Head-Units] sorin129:
Mine problems occur when ODB2 end of cable is connected to my car but the USB end is NOT connected to the unit. So I guess this cheap adapter is doing something to my car that is not supposed to do :( I guess I need another adapter. Maybe I should pay more but get one that works the way it should. Funny because this adapter does work fine with this Unit and Torque but does not play nice with my car lol
[Android Head-Units] omarko:
seller sent me few new files including 2.6.68 firmware which has few tweaks but nothing major from what I saw.

Still same issue for me with not shutting down completely. A very painful return/replacement process now begins.
[Android Head-Units] bmj67:
[MENTION=5560428]djblaze852002[/MENTION]

in torque settings you must go to obd adapter settings and select usb instead of bluetooth. After that it will tell you to restart torque. you can then restart and it should find it . if it doesnt then adjust the adapter baud rate til it does.

It is not the adapter that isnt working. It is just that torque by default is set to look for a bluetooth adapter once it is changed to look for usb in the settings you will be fine.
[Android Head-Units] omarko:
if I had to buy another unit, would this be the right one to get?

http://www.ebay.com.au/itm/Capaciti..._Parts_Accessories&hash=item4d167b5e9e&_uhb=1

I dont want to buy from Aliexpress anymore.

cheers
[Android Head-Units] blaaaah:
Can I ask why not? I was just about to order this one because it's the cheapest one I have found: http://www.aliexpress.com/item/100-Pure-Android-4-1-Car-DVD-Stereo-For-VW-Passat-Golf-Polo-Jetta-TIGUAN-Bora/1507326526.html

The same unit costs about 70 bucks more on eBay...
[Android Head-Units] gpmg762:
Hooked up a mono mic to the 2 pins in the picture but it did not work for me. Anyone else has any luck with the 2 pins?

Hate to open up the unit to connect an external mic.

My aim is to get better voice recognition with utter! beta voice commands.
[Android Head-Units] sciallo:
Do you mind uploading somewhere? I wouldn't mind comparing real quick... does it have color or wake option?

Can I ask why as well? I understand you possibly got a defective unit, but they all come form the same place (in fact both of mine - I had to go through return myself - came drop-shipped from the manufacturer)

Sorry you have to go through that process too... better than staying stuck with a defective one :)
[Android Head-Units] sciallo:
Funny, I was just thinking along those lines... Kind of debating... It will take me a chunk of time to install clean rom 2.6.60, root, install terminal copy system, change model to sleep, copy system again, flash 2.6.62, do all of it again but with "color"...

I couldn't help but to start messing with the MCUs... I found 3 files in /system/etc/mcu... they are zip files of three versions of mcu, unzipped to the extsd they apply as a replacement MCU. I think they are the three modes "normal" "sleep" and "color" though using system 2.6.60 I can only get sleep to work that way, so I can't confirm yet...

---------- Post added at 12:15 PM ---------- Previous post was at 12:07 PM ----------

What's also interesting is that I have those three files along MY MCU version... 4.0.6-1-10-0101 | 4.0.6-1-10-0301 (sleep) and 4.0.6-6-30-4501

I've seen others with base versions much higher than these... Would be interesting to know what they have in /system/etc/mcu/
[Android Head-Units] KID52:
I have the following files.

4.1.0-1-10-0101.zip
4.1.0-1-10-2101.zip
4.1.0-6-10-4501.zip
4.1.0-6-20-4501.zip
4.1.0-6-30-4501.zip
4.1.0-7-10-2501.zip
4.1.0-7-10-6501.zip
4.1.0-7-20-2501.zip
4.1.0-7-20-6501.zip
4.1.0-7-30-2501.zip
4.1.0-7-30-6501.zip
[Android Head-Units] sciallo:
wow, quite a few more than I have...

When you have time, would you take a note of your MCU version as it is and then after you change model? How many "model" choices do you have?
[Android Head-Units] donaldta:
A little while back I had ask to run some find commands which execute ls so that I can figure out what was available for the system. Unfortunately, they provided a sort of flat basename instead of showing the full path or their contents as I expected. I must have been drinking at the time. So, I was wondering if you could provide the output to the following.

$ [COLOR="RoyalBlue"][B]su[/B][/COLOR]
# [COLOR="RoyalBlue"][B]for i in `find /dev -not -type d`; do ls -l ${i} | awk -v i=${i} '{if ($7=="->") sub($6,i); else sub(" "$NF," "i); print $0}'; done > [COLOR="Gray"]{path/to/usb}[/COLOR]/dev.txt[/B][/COLOR]
# [COLOR="RoyalBlue"][B]find /sys -not -type d -not -type l -exec awk '{print FILENAME,"=",$0}' {} \; > [COLOR="Gray"]{path/to/usb}[/COLOR]/sys.txt[/B][/COLOR]
[Android Head-Units] KID52:
I would also be interested in this version, then I can add it to the main post also.

"cpufreq" does not exist inside the mentioned directories.

Whilst fairly competent in Java (never programmed for Android devices though, just desktop applications), I have 0 idea about smali so not really sure what I am looking for in terms of a link, I did try to find something, but failed.

+1 to this.
[Android Head-Units] KID52:
I get "sh: awk: not found" repeated many times over when I run "for i in `find /dev -not -type d`; do ls -l ${i} | awk -v i=${i} '{if ($7=="->") sub($6,i); else sub(" "$NF," "i); print $0}'; done > /extsd/dev.txt"
[Android Head-Units] sciallo:
You need to install busybox for that... I can get that output in a few... Almost done creating the last system image...
[Android Head-Units] KID52:
Ah, I did wonder if I needed busybox.
[Android Head-Units] donaldta:
For the life of me, I will never understand why someone would include busybox in their ROM images but not take the time to link the various commands.

$ [COLOR="RoyalBlue"][B]su[/B][/COLOR]
# [COLOR="RoyalBlue"][B]for i in `find /dev -not -type d`; do ls -l ${i} | busybox awk -v i=${i} '{if ($7=="->") sub($6,i); else sub(" "$NF," "i); print $0}'; done > [COLOR="Gray"]{path/to/usb}[/COLOR]/dev.txt[/B][/COLOR]
# [COLOR="RoyalBlue"][B]find /sys -not -type d -not -type l -exec busybox awk '{print FILENAME,"=",$0}' {} \; > [COLOR="Gray"]{path/to/usb}[/COLOR]/sys.txt[/B][/COLOR]

Try the above commands instead, I basically preceded awk with busybox, so that it is calling the command through it.

---------- Post added at 12:34 PM ---------- Previous post was at 12:32 PM ----------

Busybox was included in his system file image in /bin directory. But, I guess the creator of the ROM did not bother to link the commands.
[Android Head-Units] KID52:
"sh: busybox: not found" :D

I think actually I installed busybox when I installed the Root Browser application as it requires it...

Edit: well, whether or not it is installed, I do have "busybox" in /system/bin as you say...
[Android Head-Units] donaldta:
The directory might not be in the $PATH variable, try changing "busybox" to "/system/bin/busybox" so it will call the command directly.
[Android Head-Units] KID52:
Apparently "/system/bin/busybox" is not found either... What is going on :confused: I can see it is there!
[Android Head-Units] donaldta:
Maybe it is not executable? Try typing busybox by itself, you should get a list of valid commands that are contained within the binary. Might have to change the permissions aka "chmod 744 busybox" with the system partition mounted as read-write.
[Android Head-Units] sciallo:
I just reinstalled busybox with "busybox free"...

The second command is spitting out a bunch of "permissions denied" and looks like it's hung...

I'll take a look at both outputs and post them.

[MENTION=1915855]KID52[/MENTION] was that diff between same system with and without color?
[Android Head-Units] KID52:
If I type "busybox" then yes, a list of commands comes up.
[Android Head-Units] omarko:
The last sentence hit the nail on the head. You get a lot more protection from Ebay and Paypal and you have up to 45 days to open a dispute or ask for a refund.

Understand the item comes from same factory, but its about the after sales support and options.

With Aliexpress, I am now totally at mercy of the seller. If he does not want to replace the unit, he really does not have to. Even if he does, it will take him weeks.

Now I have a hole in my car and its painful to replace the stock unit and all the wiring back in. I need a solution fast.

I can have a new unit from ebay here mid next week and whilst possibly the same might be the case with Aliexpress, I would prefer to just deal through Ebay and PP. I might return the current unit but it will cost me $120 in postage which is a fair bit and one questions whether its worthwhile doing this exercise.

so back to my question, is this the right unit to get based on the description :

http://www.ebay.com.au/itm/Capaciti...cessories&hash=item4d167b5e9e&_uhb=1#shpCntId

Do I need to ask the seller anything before I buy ?

cheers
[Android Head-Units] KID52:
It was a diff between the two different model choices I had.

So I selected the first model, copied all system files to MicroSD, selected second model, copied all system files to MicroSD, then ran diff on the two folders.
[Android Head-Units] sciallo:
Wow, more differences than I expected... I upgraded to 2.6.62 and have all the mcu files as well. sure enough changing model upgraded my mcu...

I though it was just updating MCU according to choice, but it looks like it's doing much more than that. (also of course makes the color app disappear :)