Post Reply

[MOD] AppRadio Unchained - Full mirorring for Pioneer AppRadio 2 and 3

20th September 2013, 05:10 PM   |  #1  
Area51's Avatar
OP Senior Member
Flag Breda
Thanks Meter: 549
1,149 posts
Join Date:Joined: Aug 2013
Donate to Me
The Pioneer AppRadio is a radio with a 7" touch screen. Android devices can be connected via HDMI and shown on the screen.
Touches and keypresses are sent back to the Android device via Bluetooth. The radio has a GPS receiver and data is sent
over Bluetooth as well. In essence a very nice concept.

To connect to an AppRadio there's a Pioneer AppRadio app available in the Play store. The Pioneer AppRadio app
is however quite restrictive. It allows only to run a small number of apps that are approved by Pioneer. These approved
apps can interact with the AppRadio app because they have a built in Pioneer SDK. The number of useful apps is small.
For details look here: Pioneer Appradio Knows website.

The goal of this project is to modify the Pioneer AppRadio app in such a way that it allows full mirroring.
This means that any app can be used and controlled using the touch screen and keys on the headunit.
Also any application can receive GPS data from the AppRadio.

CNET article that gives a nice overview
Video from Steven Solazzo
Video from SinisterC6
Video from Neil Fontamillas
Video from M Sylvester showing AVH-4000NEX working
Video from M Sylvester showing AVH-8000NEX working
Video from M Sylvester showing Samsung Note 3 hardware setup
Video from Pascal H showing ARU in action in a Porsche 997 Turbo (in French)

Current status
Beta release 6 is available for testing.
You can download it from here: arunchained0.16.apk

For HDMI sticks there's a special version available.
You can download it from here: arunchained0.15stick.apk

GPS injection on system level using mock locations is available in the playstore here: ARUnchained GPS Injector
For GPS Injector details go to the FAQ here: ARU FAQ
Please fill out the survey here: ARUnchained GPS Injector survey
Navigation apps that already have AppRadio support like Waze and Navfree still work using the HU GPS. If you only use those apps then you don't need ARUnchained GPS Injector.
Head unit models that have built in navigation like AVIC-Z150BH, AVIC-F50BT and similar are not supported as Pioneer does not support sending of GPS data to the android device. If you are unsure, a test that can be done is to install Waze, if Waze can use the GPS of the head unit, ARUnchained GPS Injector works as well.

Release notes beta release 6
Rotation locker only active when HDMI connected.
ARU menu also available when not connected from Settings / Help menu.
Rotation locker and Start GPS Injector are now separate options.

Release notes beta release 5
Right part of the screen not reachable on Nexus 5 issue fixed.
Touch made more accurate for all phones.

Release notes beta release 4
Start / stop GPS Injector service when bt connected / disconnected.
SWC extended with ff & rw (to be tested by M.a.s.e-> doesn't work)
Play/Pause of HU quick menu bar now working.

Release notes pre-beta release 3
Steering wheel controls are working now.
For details go here: ARU FAQ

Release notes pre-beta release 2
Multitouch implemented.
Hardware keyboard issue fixed.
Options menu available.
Rotation locker.
Invert XY-coordinates. -> Does not work 100% yet.

Release notes pre-beta release 1
Radio buttons are working now.
Alternate method for setting uinput access rights fixed.

Release notes pre-beta release 0
Root access is required so your phone must be rooted.
For now it only allows using the touch screen.
Only single touch is supported.
Keys from the radio don't work yet.
GPS from the radio doesn't work yet.
Steering wheel controls don't work yet.

Users have reported it working on AppRadio 2, AppRadio 3, AVIC-F950, AVH-X8500BHS and AVH-X8550BT.

Disclaimer: Use at your own risk. Basically if it damages anything (you / your phone / your radio / your car or whatever),
don't blame me.

If you like my work and want to donate something, click on the "DONATE TO ME" button. However the first page will show in Dutch ( I guess because I am registered there).
Two solutions:
1) In another browser window logon to Paypal first. Then press the "DONATE TO ME" button here.
2) At "Donatiebedrag" enter the amount in US$ you want to donate, at "LOG IN OP PAYPAL" enter your logon details. After logon the language will change to your local language.

For FAQ go here: ARU FAQ

Common issues and solutions
For an overview of common issues go here: Common issues and solutions compiled by stewbuntu
For help on what hardware to use you can also go here: Appradio forums It's basically the ARLiberator forum but has information about how to setup your hardware too.

Compatibility list
This app is compatible with any AppRadio that is supported by the original AppRadio app.

Details of supported Android devices:
Please fill out the survey here: ARUnchained survey
You can also report the issues that you have.

See attached file for results of the survey. It's a zipped pdf file (had to zip it because of pdf size limitation on XDA). It gives a good overview of what phones/radios are working with ARU.

Old releases
Beta release 5 is still available in case 6 doesn't make you happy: arunchained0.15.apk
Beta release 4 is still available in case 5 doesn't make you happy: arunchained0.14.apk
Pre-beta release 3 is still available in case 4 doesn't make you happy: arunchained0.13.apk
Attached Files
File Type: zip - [Click for QR Code] (640.7 KB, 2220 views)
Last edited by Area51; 7th May 2014 at 05:39 PM. Reason: Added links
The Following 67 Users Say Thank You to Area51 For This Useful Post: [ View ]
20th September 2013, 05:54 PM   |  #2  
bodieism's Avatar
Senior Member
Flag Piedmont Triad
Thanks Meter: 34
243 posts
Join Date:Joined: Dec 2010
Donate to Me
Thumbs up
Nice work! I can't wait to get home and test it out.

In the other thread I saw that someone had a S4 working with the AR3 using your app, so you have me really tempted to upgrade from the AR2 If you get GPS working on the AR3 you can definitely count on a donation from me.
Last edited by bodieism; 20th September 2013 at 06:02 PM.
20th September 2013, 05:54 PM   |  #3  
Area51's Avatar
OP Senior Member
Flag Breda
Thanks Meter: 549
1,149 posts
Join Date:Joined: Aug 2013
Donate to Me
ARUnchained GPS Injector

The ARUnchained GPS Injector app has two parts inside. One is the GPS service and one is the UI activity.
The service is the part that injects the GPS data into mock locations. ARU 0.14 and up will start this service automatically when a bluetooth connection is made to the HU (at the same moment that the rotation locker is started). The GPS service is stopped when bluetooth is disconnected.
The UI activity is started when you start the ARUnchained GPS Injector app from the launcher. It shows the status of the GPS service and also the actual GPS data. The purpose is to be able to check whether the service is working properly. With the start / stop buttons the GPS service can manually be started / stopped.

For the GPS service to work Mock locations has to be enabled. To use the phone built in GPS, Mock locations has to be disabled. It can become tedious to set this manually so ARUnchained GPS Injector has an auto on/off Mock locations feature. In order for this to work ARUnchained GPS Injector has to be converted into a system app.
This involves moving "mars.area51.arunchainedgps.apk" from "/data/app" to "/system/app". This can be done with root explorer for instance. Set permission to rw-r--r-- and reboot your phone. On Android 4.4 (KitKat) you should move the apk to "/system/priv-app" folder instead.

For pre-KitKat Android versions converting to system app can be done using Titanium backup:
Open Titanium Backup
Search for ARUnchained GPS Injector
Long press and choose convert to system app
Reboot phone.

Converting to system app using free ES File Explorer
1. Make sure in ES File Explorer, Root Explorer is enabled and Mount R/W is on RW
2. Copy pkg.apk in /mnt/asec/mars.area51.arunchainedgps-1 to SDCard and rename it 'mars.area51.arunchainedgps-1.apk'
3. Install 'mars.area51.arunchainedgps-1.apk' from SDCard
4. Move 'mars.area51.arunchainedgps-1.apk' from 'data/app' to /system/app or /system/priv-app on 4.4.x
5. In /system/app or /system/priv-app select 'mars.area51.arunchainedgps-1.apk' and in menu select Install.
6. After install reboot

How to make a logcat using an app called Catlog
Start Catlog logcat through app menu and select record.
Select home button so you leave Catlog app running.
Go through process to start ARU and connect to AR.
Once you know the bug was created, open the Catlog app from notification bar (this stops recording).
Select the recording, which is named by date-timestamp...from action selection pick share by email...this zips the logcat and system info txt files into one zip.
Email to self and share the zip with dev by email or any other method you want.

On my Samsung phone not the whole screen is shown but a part is cut off
A) The default Samsung launcher doesn't handle landscape well. The solution is to install an alternative like Nova launcher.

On my Samsung phone touch stops working after calibration
A) Verify your phone is rooted properly.
B) On Android version 4.3 and higher Samsung has Knox security and SELinux is in enforcing mode.
This somehow prohibits accessing the /dev/uinput device which is required to be able to input touch/key events on system level.
In order for ARU to work Knox has to be disbled and SELinux has to be in permissive mode.

Possible fix 1:
First install an app called Android Terminal Emulator then open a terminal and type
the following lines pressing enter after each line:
pm disable com.sec.knox.seandroid

Now wait a bit till knox is killed and finally type:
setenforce 0

If this works, you have to do it every time you reboot your phone. It can be automated with Tasker for instance

Possible Fix 2:
Install the Xposed framework and the Wanam module.
At Security hacks tick " Disable Knox notifications" and "Disable SEandroid".

Possible Fix 3:
If the other fixes don't work and your bootloader isn't locked you can try to install a custom kernel that has Knox disabled and SELinux in permissive mode by default.

Keyboard use
It's not necessary to install Car Keyboard. Only the original Pioneer AppRadio app needs that.
Note that the virtual keyboard created by ARU is sometimes incorrectly detected as a hardware keyboard.
This prevents the software keyboard to be shown and makes it impossible to enter anything.

To check / set the keyboard settings:
  1. Click the menu button on ARU.
  2. At the right bottom click on "Change input method"
  3. A pop-up is shown that CarKeyBoard has to be installed. Ignore it by clicking OK.
  4. The dialog for selecting the input method is shown.
  5. Make sure hardware keyboard is switched off.

Use of the hardware buttons:
The home, menu and back button now work as advertised.
To go back to the native interface you have to open the AppRadio app manually and then press the home button.
To go to the AppRadio app easily, swipe down the status bar and click the AppRadio notification.
Fast option to go back to the native interface: Double click the home button, touch the blue bar in the middle with 4 squares on the left.

Release notes pre-beta release 2
Multitouch implemented.
Multitouch works now. AppRadio 3 has a bug which makes it a bit unpredictable.

Hardware keyboard issue fixed.
Sometimes the virtual keyboard created by ARU was incorrectly detected as a
hardware keyboard preventing the software keyboard to be shown. Fixed now.

Options menu available.
The options menu can be reached from the app's main screen. There's now an additional ARU
option sub menu available with two options:
Rotation locker.
Invert XY coordinates.

When in AppRadio Mode homescreen, select menu button, select ARU, there you will see the ARU feature options...only accessible when connected to HU at this time.

Options can be set but will only become active after force stopping the app and then restarting it.
Go to Settings->Apps->AppRadio Unchained and do a Force stop. After that just start ARU again
and the options will take effect.

Rotation locker.
Forces rotation to be in landscape when enabled.
Locker becomes active when a bluetooth connection is established with the radio.
Locker is deactivated when bluetooth is disconnected.

Invert XY-coordinates.
Necessary for some tablets and HDMI sticks.
Currently this options doesn't work well. Somehow it will switch mode during calibration, giving
incorrect calibration results. After that touches are at the wrong position meaning app is useless.
Will look into it soon.

Release notes pre-beta release 3
Steering wheel controls
Steering wheel controls are working now.
Currently supported are: previous track and next track.
There might be more but I couldn't get it out of my radio.
Of course there's volume, mute etc. but that is handled directly by the radio
and never sent to the phone.
In case there are commands sent by the radio to the phone besides the ones already implemented the logcat will contain this:
Don't know how to translate RemoteCtrlInfo = <number>. Let me know the number and what remote control command you were
issuing and I can add it.
Last edited by Area51; 6th June 2014 at 08:42 PM. Reason: ARUnchained GPS Injector alpha testing added
The Following 7 Users Say Thank You to Area51 For This Useful Post: [ View ]
20th September 2013, 06:20 PM   |  #4  
Thanks Meter: 4
43 posts
Join Date:Joined: Dec 2011
Hell yeah man! Thank you! will test soon on my AR3. If you have that bitcoin address set up I'll send you like $20 worth of btc for this mod.
20th September 2013, 06:29 PM   |  #5  
Junior Member
Thanks Meter: 0
6 posts
Join Date:Joined: Nov 2011
great... waiting so long for getting AR3 support...

will test it today and donate as well...

Gesendet von meinem Nexus 7 mit Tapatalk 4
20th September 2013, 06:38 PM   |  #6  
lpasq's Avatar
Senior Member
Flag SoCal
Thanks Meter: 182
1,282 posts
Join Date:Joined: Feb 2006
Original Hack Bounty Crew:
$200 lpasq (xda) Confirmation number: 7D019513V95549722
$100 drawblood (appradioforum & xda) Donation made per post on AppradioForum
$50 ofarrell.g1 (xda)
$50 evillela2001 (xda) Confirmation number: 3NF91232VR227492L
$50 Meldoon (xda)
$25 rs2k (xda) Confirmation number: 8R358541KC016842T
$25 jj69chev (xda)
$25 leobg (xda) Confirmation number: 8TE693651C300254U
$25 tnuts22 (xda) Paid
$550 Committed - U.S. Dollars
($425) Confirmed Donated
$125 Due
Last edited by lpasq; 16th November 2013 at 01:21 AM.
20th September 2013, 07:14 PM   |  #7  
Thanks Meter: 2
41 posts
Join Date:Joined: Mar 2010
hey Area51. i have a bugreport for u. appradio app from market work ok on lg p999 with stock 2.3.4 fw, but modified app crash twice at startup. then it work seems fine(cant test it with pioneer now). on same phone with cm7(2.3.7) and cm10 all ok. i have a log dump for u:
20th September 2013, 07:32 PM   |  #8  
Thanks Meter: 4
43 posts
Join Date:Joined: Dec 2011
Alright just got done testing with my note 1 I717 running stock 4.1.2. Couldn't get it to work at all. Bluetooth is connected as I can stream google play and make phone calls through the unit. However, when I connect the MHL adapter to the deck, I get an icon that I can only describe as a map with a speech bubble with a bluetooth symbol in it with an x by it. I'm assuming it means no bluetooth connection. However streaming music via bluetooth is currently going on. Now on the phone side, normally in the non modified version of ar before the mhl adapter is plugged in and bluetooth is connected, it gives a picture of a usb cable on the phone with an arrow saying plug in. On the arunchained, it just gives the Bluetooth symbol with 6 dots like it's not connected. I'm terrible at bug reports so if you have any questions I'll try to answer it.
20th September 2013, 07:34 PM   |  #9  
Junior Member
Thanks Meter: 6
9 posts
Join Date:Joined: Jul 2013
Your phone has to be rooted for this app to work
20th September 2013, 07:34 PM   |  #10  
Area51's Avatar
OP Senior Member
Flag Breda
Thanks Meter: 549
1,149 posts
Join Date:Joined: Aug 2013
Donate to Me
Originally Posted by tmp_do

hey Area51. i have a bugreport for u. appradio app from market work ok on lg p999 with stock 2.3.4 fw, but modified app crash twice at startup. then it work seems fine(cant test it with pioneer now). on same phone with cm7(2.3.7) and cm10 all ok. i have a log dump for u:

I think it may be due to code obfuscation stripping a bit too much code. Thanks for the report.

The Following 2 Users Say Thank You to Area51 For This Useful Post: [ View ]
Post Reply Subscribe to Thread
Previous Thread Next Thread
Thread Tools
Display Modes

Top Threads in Android General by ThreadRank