yashsingh1/xdaforums huggingface dataset:
[Android General] Appradiomodder:
I have also done some research and wanted to share my findings with the dev com.

I used Inrix-traffic app as a reference.

The directory jp.pioneer.mbg.pioneerkit contains all the class-files to comunicate with the appradio

com\inrix\pioneer\PioneerExtListener.java contains 3 const-strings to define ExtCertifiedInfo (included in pioneerkit)

pioneer.permission.appradio.ADVANCED_APPMODE must be present in the manifest.

My method for investigating:

1) install any approved app

2) use astro filemanager => tools to backup the app (this also works on non rooted phones :good:)

3) use astro to upload the .apk to google drive(or send it via mail) ==> because the "backup" folder doesn't appear when u connect using usb

4) on the pc, download from drive.google.com an decompile the apk (I use apk_Manager_ICS)

5) use Eclipse to view/edit

Last but not least: I think it is going to be a real challenge developping an app/mod for this.

Most files in the jp.pioneer.mbg.pioneerkit are the same for all apk's I've checked, but there are diffs in others.

ExtLocation.smali, Ljp/pioneer/mbg/pioneerkit/b/a.smali for instance were completely different in the apk's I've seen.

Perhaps Pioneer makes the jp.pioneer.mbg.pioneerkit custom for each approved app, depending on the permissions/functions the app uses.

Oh and btw, I think Samsung Galaxy S3 will be supported in the future because its allready defined in the new appradio apk (v1.0.7)

And you can add $50 to the bounty for me if the whole phone GUI is controlled from the appradio.

Cheers!
[Android General] Lolento:
There is no way there is a custom control layer for every compatible application.. it will be inconceivable for pioneer to support every upgrade of every application that it support.

There must be some general call functions that each compatible application uses.
[Android General] kagronick:
One step closer

Ok. I'm new here. I just got the AppRadio and I know how bad we need this. My plan of attack is to decompile and recompile.

I have decompiled the apk into .smali and .java. The java code will not run but is more helpful and shows us where to edit the .smali which is basicly operation codes for the JavaVM.

So first I looked in the strings.xml and found

<string name="STR_01_01_00_ID_01">The current operation is unavailable from AppRadio</string>

This is found in a view called touch_alert. In R.java we can see the hexadecimal numbers assigned to this

public static final int touch_alert=0x7f030132;
public static final int touch_alert_1280x720=0x7f030133;
public static final int touch_alert_960x540=0x7f030134;

So from hex to binary that is 2130903346

Which is referenced here in the .java class and nowhere else

package jp.pioneer.mbg.appradio.AppRadioService.app;

import android.content.Context;
import android.content.res.Resources;
import android.util.DisplayMetrics;
import android.view.View;
import android.view.WindowManager.LayoutParams;
import android.widget.LinearLayout;
import android.widget.RelativeLayout.LayoutParams;

public class a extends LinearLayout
{
private View a;

public a(Context paramContext)
{
super(paramContext);
int i;
while (true)
{
try
{
new DisplayMetrics();
DisplayMetrics localDisplayMetrics = paramContext.getResources().getDisplayMetrics();
if (localDisplayMetrics.widthPixels <= localDisplayMetrics.heightPixels)
continue;
i = localDisplayMetrics.widthPixels;
if (800 != i)
continue;
this.a = View.inflate(paramContext, 2130903346, null);
setLayoutParams(new WindowManager.LayoutParams(-1, -1));
addView(this.a, new RelativeLayout.LayoutParams(-1, -1));
invalidate();
break;
i = localDisplayMetrics.heightPixels;
continue;
if (854 == i)
{
this.a = View.inflate(paramContext, 2130903346, null);
continue;
}
}
catch (Exception localException)
{
localException.printStackTrace();
}
if (960 != i)
break label193;
this.a = View.inflate(paramContext, 2130903348, null);
}
while (true)
{
label164: this.a = View.inflate(paramContext, 2130903347, null);
break;
label193:
do
{
this.a = View.inflate(paramContext, 2130903346, null);
break;
return;
if ((1280 == i) || (1184 == i))
break label164;
}
while (1196 != i);
}
}
}

Edit:

I have also found that there is an interface (class) called input manager. It seems like HandleAccept is how it would handle an incoming touch event.

Here is the interface

package jp.pioneer.mbg.appradio.AppRadioService.b;

public abstract interface b
{
public abstract void handleAccept();

public abstract void handleConnected();

public abstract void handleConnecting();

public abstract void handleException();

public abstract void handleReset();
}

I'M MAKING PROGRESS. IF ANY ADMINISTRATOR WOULD BE KIND ENOUGH TO UNBLOCK ME FROM THE 10 POSTS RULE I WILL POST MY UPDATES.
[Android General] naboleo:
That's another step!
[Android General] zr2ee:
i just picked up one of these units and have been playing around with it a bit, i'll throw down $100, is there a site setup for this yet?

although you can't fully touch navigate your phone i've been using a PS3 controller as a workaround so i can navigate through the menu's and apps as well as play games. also using tasker to make sure the screen, bluetooth and keyguard is set correctly when connected.
[Android General] Gelroos:
Kickstarter

I would be willing to start the Kickstarter project to collect the cash for this. Any objections?
[Android General] zr2ee:
none here
[Android General] beestee:
Sorry Gelroos, but I don't know you from Adam and therefore would be reluctant to put my money into a KS project that I do not know whether or not could be accomplished even if the funding goal were met.

Plus KS incurrs a 5% fee on the funds, I think direct contribution to the dev responsible for making this happen is much better.
[Android General] Gelroos:
and that is why I asked BEFORE doing it, Fair point. I'll just chip my 150 in whenever someone achieves this...
[Android General] skatin707:
Fwiw, Appradio 2 is $220 on cowboom. Maybe that will draw devs to it a bit more!
[Android General] kagronick:
I'm going to set up a site to hopefully get developers together. The limitations on this device are driving me crazy. Way to cripple a device with so much potential, Pioneer.
[Android General] wbales:
Dude, that would be great....I Really want to control TuneInRadio on a 7 inch HUD on my dash!
[Android General] kagronick:
Like I said in the post above if anyone else is interested in hacking away at this I set up forums at AppRadioForums.com. I will be posting my findings as I come across them. I'm much more interested in uncrippling this device than getting the reward.
[Android General] zr2ee:
i'd be all about it if i had the knowledge to do it, but from all of us who don't, you certainly have our support.
[Android General] outcastrc:
Agreed!
[Android General] kagronick:
Making progress

Hi everyone.

I'm making a lot of progress. I've been working almost non stop on this. I'm learning more than I ever wanted to know about the structure of Bluetooth packets and reading the decompiled source code. I have started hacking together an app that starts a bluetooth server. Last night I had a breakthrough of getting packets back after sending them to the AppRadio. I will just need to get the AppRadio into a "trusted" state so it will send back packets showing touch events. The rest should be cake. Then I'll do the same thing for the buttons.

I also found out why it can take so long to connect and how to make it connect within seconds. I posted it on (Shameless plug) appRadioForums.com.

Anyways get your bounties together. (Start that kickstarter) Hopefully I'll have something working which I'll post on Youtube within the next week.
[Android General] Gelroos:
Thanks for the contacts tip, it has really reduced the connect time (I have a LOT of contacts). I have my money ready!
[Android General] outcastrc:
Awesome!!!! I have started to forget what its like to have advanced mode even on the deck (Nexus on 4.1 so it stopped connecting)
[Android General] kagronick:
Cool. Glad you guys are excited.

outcastrc, are you sure its just not the kernel you are using. One of the last kernels I tried on my galaxy S2 had no support for HDMI just because the developers had not implemented it.
[Android General] outcastrc:
Using stock 4.1.1. Appradio does the setup process and gets you to syncs screens. Then once the sync is complete it doesn't accept a touch command after that.
[Android General] spx_trader:
I am glad some progress is being made, i dont have an appradio yet but was going to get one once some progress was made. I do have a JVC right now that has an app mode. when I have been searching around about android in a car, i found this, I was wondering if I could hook it up to my jvc, and it would use that touch screen. there are a couple different ones now, they seem pretty cool, not sure what kinda inputs the app radio has but this maybe able to hook into that also

http://www.youtube.com/watch?v=akp2hYE1dZ0&feature=related

http://www.geek.com/articles/chips/89-dual-core-android-stick-pc-leaves-mk802-in-the-dust-20120814/

http://www.engadget.com/2012/05/18/mk802-beats-cotton-candy-to-market/
[Android General] kagronick:
Made another breakthrough tonight. I'm working in my car on my laptop in public parking lots. If anyone feels like donating a radio so I don't need to do this it would help a lot.

What I've been doing is going through the packet dumps looking for similarities. Everything is HEX. This isn't like XML or JSON so it is very hard to figure out what means what. That being said, I have the radio convinced that it is connected to an official client. I do this by sending out hexadecimal patterns as they appear in the packet dumps. It shows the phones screen on the radio, even with the parking break off. When I touch the screen in sends back packets. After this is stable the next step will be dissecting those packets.

If anyone else in Massachusetts wants to hack on this with me let me know.
[Android General] kagronick:
Very very close

This is really turning out to be more than I thought it would. Turns out I need to lock up some Android system files and use an exploit to edit some parts in memory.
[Android General] outcastrc:
Fantastic!!! Looks like the bounty will be yours! :good:

I sent you a portion of my bounty, I'd be happy to do any beta testing or anything if you need any help.
[Android General] spx_trader:
Kagronick great work! I hope you get everything sorted out. I don't have one of these yet but was reading over at avic411 about some issues with jellybean and some of the bluetooth code making it not work with app radio. Just wondering if you knew about this and what phone and rom you were testing on. Thanks.
[Android General] kagronick:
I'm using jellybean and a kernel called CrackedStock. It uses the regular bluetooth API so I don't see why there would be any issues. Maybe they need to update the firmware.

Right now I'm trying to figure out sendevent. Theres a good write up here

http://softteco.blogspot.com/2011/03/android-decoding-click-low-level-event.html

Its still not easy though. I would like to put out an APK and have other people help me decode the packets.
[Android General] spx_trader:
Yeah I think I was wrong. It looks like the bt bug I was reading about was in ics not jb.
[Android General] kagronick:
Progress progress progress

We have tuch events on the screen! They are just in the completly wrong places. Aspect ratios and all that fun stuff. Hoping to have something working today!
[Android General] kagronick:
Almost there. I think I'll have it working eventually.
[Android General] kagronick:
You will be amazed

I have everything working. Tap, swipe, the buttons on the device. I had to decipher the undocumented sendevent executable - which only works for super users. But I did. I will post a video later tonight if I can.
[Android General] Cuppeerr:
oh my god. I love you
[Android General] Blackfalcon921:
I can't wait, this is going to be well worth getting this head unit. I have $50 I was going to throw in for the bounty but your donate link was not working for some reason. Anyways looking forward to seeing it all worked out for the full touch control. Thanks man for all the hard work.
[Android General] kagronick:
Thanks for pointing that out. I screwed up an <a> tag.
[Android General] zr2ee:
awesome job man, good to hear it's coming together, i'd donate but you link on here still doesn't seem to be working and i can't find the one you posted on the appradio forum. i'm assuming your username is stacktrase over there and that's your thread?
[Android General] kagronick:
Today I implemented touch in low level C code. It works great. Smooth as butter. But it locks up about 15 seconds after starting it. So tomorrow I will try to fix that.

I didn't see anyone this weekend. I just worked on this non stop. First chance I get when I'm around someone with a camera I'll take a video. That is if the code works too.

And not to burst anyone's bubble, I'll probably keep it closed source and make it a paid app in the app store. Anyone who donates gets to beta test it for free and they'll get the full version for free when it comes out.
[Android General] bobkabob:
Quick question since I cannot find a solid answer elsewhere: does the appradio use the phone's CPU for GPS fixing our does the radio compute the location itself? If the radio controls location, will the mirroring hack change this behavior?
[Android General] spx_trader:
Both. From what I read on avic411 with the iPod hack only supported gps apps work when the appradio gps antenna is connected. But when u remove it unsupported gps apps work with the IPhone antenna. I assume it's the same with android but we won't really know until it's tested I guess as of now I don't think there are supported android gps apps.
[Android General] beestee:
So this is going to work as an app that is available through google play?

Exciting!

Here's your $25 from me :)
[Android General] RigWig:
If someone can put up a video of this running with a galaxy nexus i will so buy one and this app
[Android General] outcastrc:
I can't post a video but can confirm that my Galaxy Nexus ran fine when it was on 4.0.4. Updating to 4.1, I was no longer able to connect to the deck properly. Something in the Bluetooth component. It sees the touch screen when you run the start-up calibration, but then refuses to see any touches after that... Google might have changed something in 4.1's Bluetooth, or it's just bad programming on Pioneers part.
[Android General] RigWig:
Well that's a bummer, I was just about to pull the trigger on the deck, no chance I'm going back to ics from jb though just for a head unit....

Anyone able to work around this or hear of any possible fixes being worked on?
[Android General] zr2ee:
i had the same issue with my galaxy nexus, for now ICS is fine, i'm assuming they'll update after all the carriers have....waitin on you verizon.
[Android General] sac430:
Any clue when a beta would be available? I'll pitch in $25...
[Android General] -FuRBz-:
when you have full control ill throw in $25
[Android General] kagronick:
Heres a video proving it works.

http://appradioforums.com/Thread-Video-Proof-of-KillNanny

Give me this weekend and once I tie up the loose ends I'll send a beta to all the donaters.
[Android General] -FuRBz-:
That's wassup so glad you are able to do this

question is there a way that we can have the screen on the phone off but yet maintain usability thru the app radio?
[Android General] sterod:
Excellent, this is what I was waiting to see before pulling the trigger and buying the deck.

I'll definately be sending a donation your way soon.
[Android General] outcastrc:
AWESOME!!!! Nice to see it working, A big thank you for doing this!!!! :good:
[Android General] RigWig:
Just take my money now :p

Great job dude, I will definitely donate

Edit: where is the donate link?

Also, does anyone know is the portrait dock for the nexus would work with this? just wondering cause integrating the dock into the car and using the hdmi out on that would be cooler than an mhl adapter.
[Android General] kagronick:
@-FuRBz- Yeah you need to have the screen on. Works that way in the stock app too.

@RigWig Its on the top right corner of http://appRadioForums.com They don't allow plus signs in the donate link emails here.
[Android General] -FuRBz-:
oh man, my phone gets crazy hot when the screen is on a long time, but eh it will do!

---------- Post added at 09:01 PM ---------- Previous post was at 08:02 PM ----------

donation has been sent

Transaction ID 8SB06698GG049802J
[Android General] subzerold:
What if you gets text from a girl you're cheating on your gg with while your girlfriend is in the car
[Android General] uribees:
Definitely plan on donating, can't wait to get my hands on it. Where do I donate?
[Android General] -FuRBz-:
look at post #148

http://xdaforums.com/showpost.php?p=31567749&postcount=148
[Android General] v1tus:
love it !!

could you get the home button on the radio working like the one on the smartphone?

and btw - i have a galaxy note - and also the problem that my phone gets too hot when using for a long time- so hot that it stops charging to prevent damage and then runs out of power after a while... would be a charm to switch it off somehow !
[Android General] outcastrc:
I don't think that's currently possible under android. The deck is only mirroring what the display is showing. You can use tasker (or other options) to dim or turn off the back-light of the screen. You do have to make sure you also include a way to turn the screen back-light back on. Otherwise you can make it near impossible to see the screen to put it back to normal. It's not perfect but I would imagine the back-lighting is most of the drain.
[Android General] v1tus:
ah ok i will try that

but exactly that could do the new app when connected to the radio !
[Android General] kagronick:
Yes the home, menu, and back buttons are on the radio.
[Android General] nickgrill:
Is there anyway you can make so you can close the phone screen while on a call so you can use apps like navigation while on a phone call? I still use my garmin gps cause I am on the phone a lot and still need to se where to go.
[Android General] v1tus:
thats a good idea !

i've searched for hours to find an app which turns of the backlight of the screen. nothing really found.

but this is maybe the right direction :

http://stackoverflow.com/questions/1875669/calling-hidden-api-in-android-to-turn-screen-off
[Android General] idobref:
Ima pitch in too once a stable version is out.
[Android General] uribees:
I just sent my $25 donation per my XDA pledge. Can't wait to get the beta!
[Android General] eroracing:
Ohhh dam... Im getting one if these now and will definitely donate! Anyone know where the best place to order one of these?
[Android General] sac430:
I just sent in my $25. Great job. let us know when it will be available. Thanks
[Android General] RigWig:
I just ordered one off amazon for about 350
[Android General] texbuck:
Same here. I wish I ordered last week before amazon kicked in the sales tax.
[Android General] Stickboy46:
Would this fix the issue with Jelly Bean? Since it doesnt go through the app radio app?
[Android General] RigWig:
Once mine arrives I will test just that, should be here in about 2 days
[Android General] MrEnirO:
Nice work :highfive:
[Android General] aguila88psi:
The latest appradio update now supports jelly bean and allows custom background s.
[Android General] nettech_gt:
If I were to connect a "Android on a sitck" device like a UG802 (which does not have GPS) Can I use the included GPS antenna in conjunction with Google maps or another NAV app loaded on the UG802 to have full turn by turn directions? (also UG802 will be tethered to my phone for WIFI connection)
[Android General] outcastrc:
Not sure on that. I tried an Ak802 but it doesn't have blue tooth on it and I wasn't able to get a USB dangle to work. So no touch events...
[Android General] nettech_gt:
The UG802 doesn't have BT yet... There is an option int he settings to turn BT on/off its just disabled right now. Hopefully in future updates it will be enabled.
[Android General] isantop:
What? Where do I download this awesomeness? The latest version available on Pioneer's website is 8.17.
[Android General] MrEnirO:
according to the specs there is no bluetooth chip, so i doubt they will "enable" it. it will be a new device

maybe there is a way to plug a bluetooth adapter in the usb ???
[Android General] beestee:
It is the app radio app itself, not a firmware update. CarKeyboard and CarMediaPlayer updated as well.

I successfully ran KillNanny last night on my unit (until the battery went dead in my car *facepalm*) and I am using a Samsung Galaxy Note N7000. I was able to get through the Auto Configure sending touch commands for the calibration...but after that I couldn't get touch to work again until I ran through the calibration on the Note itself...but the calibration was off, understandably.

Mirroring of picture and sound was flawless, though. Great work! Cannot wait for the experience to become more streamlined.

My Note was Event2 FWIW. The Note is also a bit of an oddball resolution at 1280x800 if that is of any consequence.

I also used an app that i got for my N7 called 'ultimate rotation control' to lock rotation into landscape while fiddling with KillNanny.
[Android General] RigWig:
Do you have plans already to make the modified app available on the play store?
[Android General] kagronick:
Yeah it will be in the app store eventually Thats the end game after it works well on everyones phone and has a decent UI.
[Android General] knives of ice:
I have the sprint gs3 running cm10. Can anyone recommend me the mhl cable or other accessories I may need to work with appradio2 correctly?

Congrats on getting appradio truly working how it should I must get one now just a bit confused on all parts needed
[Android General] kagronick:
I actually just wrote a post on what you would need:

http://appradioforums.com/Thread-Don-t-spend-100-on-the-Android-connectivity-kit
[Android General] EvanVanVan:
I know you said on Avic411 that the raspberry pi doesn't have the power the other sticks do, but it does have Bluetooth...might be a worth a shot just to see how well it works
[Android General] spx_trader:
everything in his post should work but for the siii you need a special mhl adapter made by Samsung

http://www.androidcentral.com/samsung-offer-mhl-cable-adapter-galaxy-s-iii

You can find them cheaper i think, this is the 1st one that came up for me now

http://www.theaccessoryking.com/sam...2beg/galaxy-s-iii-mhl-cable-wadapter-tip.html
[XPERIA X8 Q&A, Help & Troubleshooting] too_cool_4_all:
I am using gingerzaraki rom and had created 512 mb ext4 partition using clock work but when i view internal memory it shows 212 mb. also i had set in cynongenmode settings to use a2sd and store applications in external memory but they are not stored in external memory and i have to use application manager and shift applications to sd card manually. please help out configure this
[XPERIA X8 Q&A, Help & Troubleshooting] Bolussimo:
Using ext partition doesn't affect internal memory. So in settings there will be always 212mb (miniCm7 ROMs for sure, other - don't know).
[XPERIA X8 Q&A, Help & Troubleshooting] too_cool_4_all:
than what is the use of ext partition???
[XPERIA X8 Q&A, Help & Troubleshooting] AndroidSoftmods:
ext partition cant improve your internal memory but if you put your movable apps in ext partition you will get free space in your internal memory for new apps to install!
[XPERIA X8 Q&A, Help & Troubleshooting] too_cool_4_all:
thks for the info but how to move movable apps to ext???
[XPERIA X8 Q&A, Help & Troubleshooting] too_cool_4_all:
I meant move apse to ext
[XPERIA X8 Q&A, Help & Troubleshooting] nazz.rule:
If you have created the partition on your SDcard..then when you install app,it will automatically moved to your SDcard..and your Internal memory will not be reduced..
[XPERIA X8 Q&A, Help & Troubleshooting] too_cool_4_all:
I have created the partition but still when I install applications internal memory keeps decreasing
[XPERIA X8 Q&A, Help & Troubleshooting] obynio:
You can use Link2sd, which is more simple...