Notices
991 2012-2019
Sponsored by:
Sponsored by:

Porsche PCM Upgrade/Hack for Android Auto? Is this real?

Thread Tools
 
Search this Thread
 
Old 02-14-2018, 01:00 PM
  #1  
iphilips
Racer
Thread Starter
 
iphilips's Avatar
 
Join Date: Jan 2018
Location: San Francisco, CA
Posts: 494
Received 67 Likes on 51 Posts
Default Porsche PCM Upgrade/Hack for Android Auto? Is this real?

Is this real? Is it a hack or PCM upgrade?

https://m.youtube.com/watch?v=krw_g7...ature=youtu.be

Popular Reply

08-06-2019, 05:42 PM
chris2
Instructor
 
chris2's Avatar
 
Join Date: Sep 2017
Location: San Diego
Posts: 187
Received 115 Likes on 43 Posts
Default

Enabling Android Auto on PCM4

Step 1. Required Components
  1. ⁃ UART -> USB Adapter (
    Amazon Amazon
    )
  2. ⁃ PuTTY or similar terminal app
  3. ⁃ IDA Pro ($$$$$), Ghidra (free), or similar ARM V7-A compatible disassembler
  4. ⁃ SD Card
  5. ⁃ Linux computer to unpack + repack filesystem
  6. ⁃ dumpifs and mkxfs from QNX SDP / OpenQNX. Build these from source on your linux machine to ensure proper compatibility. (available at https://github.com/ibreakifix/PorschePCMStuff pre-built for Ubuntu 19.04 x64)
  7. ⁃ mkxfs attributes file from https://github.com/ibreakifix/PorschePCMStuff

Step 2. Connect to PCM4 via UART
  1. ⁃ Connect GND to GND (PCM4 chassis works), RX on adapter to J5_TX on PCM4, TX to J5_RX on PCM4; pins B3 and B9.
  2. ⁃ To connect, you can remove the connector block from the quad-lock, then route your TX/RX/GND pigtails through the opening.
  3. ⁃ Open PuTTY, launch a serial connection to your COM port (see devmgmt.msc) - 115200, 8, N, 1
  4. ⁃ Login with root / oaIQOqkW

Step 3. Download Root-IFS
  1. ⁃ Issue the "stfu" command to stop verbose logging to the terminal.
  2. ⁃ Insert SD card into PCM4, left slot
  3. ⁃ Issue the following command to download your filesystem: "dd if=/dev/fs0 of=/net/mmx/fs/sda0/PCM4_NOR.bin".
  4. ⁃ Issue the following command to copy your existing FEC file: "cp /mnt/efs-persist/FecContainer.fec /net/mmx/fs/sda0/orig_FecContainer.fec"
  5. ⁃ Remove SD card and insert into your PC.
  6. ⁃ You can also pull this image from an update SD card at ./RCC/ifs-root/*/default/ifs-root.ifs **Note: The desired image is the second ifs contained within this update file, use ctrl+f and find the second instance of file magic "EB 7E FF", your IFS image begins at this location and ends at the end of the file. If you do this, you can skip steps 4.1 to 4.3**

Step 4. Unpack Root-IFS (if using downloaded image from PCM4)
  1. ⁃ Open downloaded RCC NOR image (PCM4_NOR.bin) in your favorite hex editor
  2. ⁃ Jump to offset 0xBA0000, ensure IFS magic of "EB 7E FF" is present. If not, issue "flashlock" on PCM4 shell to obtain correct offset, target IFS is ~15.6mb. See screenshot.
  3. ⁃ Select from 0xBA0000 to the end of the IFS, which is indicated by a block of padding "FF FF FF FF FF". In my case, this data was 15,639,040 bytes. See screenshot.
  4. ⁃ Cut and paste this block of data into a new file, name it ifsroot_stage2_orig.ifs
  5. ⁃ Move to a linux computer with dumpifs binary (available from QNX SDP)
  6. ⁃ Copy ifsroot_stage2_orig.ifs to some folder, open your terminal and CD to that folder.
  7. ⁃ Copy dumpifs_helper.sh to this same folder. Chmod it to 755
  8. ⁃ Issue "./dumpifs_helper.sh ifsroot_stage2_orig.ifs" to extract the IFS, your files will be in ./ifs_extracted. Ensure files are present as shown in the terminal output
  9. ⁃ Place a copy of /usr/apps/MIBRoot so it can be patched with IDA, Ghidra or similar

Step 5. Patch out the FEC checks.
Step 6. Rebuild IFS image
  1. ⁃ Place your patched MIBRoot into your extracted IFS location, overwriting the old MIBRoot. It should be located at ./ifs_extracted/apps/bin/
  2. ⁃ Open terminal. Issue command: EXPORT QNX_TARGET="/"
  3. - cd to whatever the parent directory is to the ifs_extracted folder we made earlier
  4. ⁃ Download mkifs_attributes.txt from github repo. Place it in your current working directory
  5. ⁃ Build the new IFS with mkxfs, issue command "mkxfs -t ifs -nn -o ./ -r / ./mkifs_attributes.txt ./ifs_extracted ./patched_ifs.ifs"
  6. ⁃ Place patched_ifs.ifs back onto your SD card

Step 7. Create your new FEC file
  1. ⁃ Open the FEC container (orig_FecContainer.fec) from earlier in your favorite hex editor
  2. ⁃ Copy VIN from file. This should match your car's VIN, unless component protection is enabled, then it would be the VIN from the donor car
  3. ⁃ Copy down VCRN (hex values of bytes 16-20 in file). Write it down as shown in the blue highlighted text in the screenshot. The VCRN may be obtained through measurement channels on PIWIS if you only have a 4 byte empty FEC file.
  4. ⁃ Make a comma separated list of your existing FECs, from offset 0x43 until the checksum begins. Use hex values, add commas at every 4 bytes (8 digits), for example, from screenshot it would be 00030000,00030001,(...),06310099
  5. ⁃ Add one last FEC to the end of that list, which will enable Android Auto: 00060900
  6. ⁃ You can also add other FECs to your PCM4 at this time, see below. Additional coding / adaptations may be required.
  7. ⁃ Download MIB2_FEC_Generator.sh from Github, chmod it to 755
  8. ⁃ Issue command to generate FEC Container "MIB2_FEC_Generator.sh -f {YOUR_FEC_LIST_CSV} -n {YOUR_VCRN} -v {YOUR_VIN} -d {Output_Directory}"
  9. ⁃ Output file is FecContainer.fec, copy this new file to your SD card

Step 8. Load new files to head unit
  1. ⁃ Insert SD card into PCM4, left slot
  2. ⁃ Login with root / oaIQOqkW
  3. ⁃ Issue the "stfu" command to stop verbose logging to the terminal.
  4. ⁃ Remount efs-persist as r/w with command "mount -uw /mnt/efs-persist/"
  5. ⁃ Copy your new FECs with command "mv /mnt/efs-persist/FEC/FecContainer.fec /mnt/efs-persist/FEC/FecContainer.fec.orig; cp /net/mmx/fs/sda0/FecContainer.fec /mnt/efs-persist/FEC/FecContainer.fec"
  6. ⁃ Issue commands to flash your stage2 ifs-root... THIS CAN BRICK YOUR HEAD UNIT, SO BE CAREFUL! Important note: "flash.it" is actually one word, but RL censors it, so remove the period otherwise the command won't work.
  7. ⁃ flashunlock
  8. ⁃ /usr/bin/flash.it -v -x -d -a0x00BA0000 -f/net/mmx/fs/sda0/patched_ifs.ifs
  9. ⁃ flashlock
  10. ⁃ Reboot unit by holding down power button for 30s.
  11. ⁃ Cross fingers and hope your patch worked

Step 9. Adaptations
  1. With PIWIS II / PIWIS III, or VCDS
  2. ⁃ If using PIWIS II, place it into engineering mode via Settings -> Diagnostics Configuration -> 911, 918s, etc... -> Mode -> Select "E". Save + Exit
  3. ⁃ In PIWIS, Open Diagnostics -> 911 -> 991, scan car (F12) to obtain installed modules, select head unit (Named MIB2...). In VCDS open module 5F
  4. ⁃ Select "Manuelle Codierung ohne MCR-Regeln" -> Vehicle_configuration
  5. ⁃ Set Bitfield (3) Google_GAL -> "on"
  6. ⁃ Save coding, wait for system to reboot
  7. Alternate method coding through PCM4 shell:
  8. export LD_LIBRARY_PATH=/mnt/app/root/lib-target:/eso/lib:/mnt/app/usr/lib:/mnt/app/armle/lib:/mnt/app/armle/lib/dll:/mnt/app/armle/usr/lib
  9. export IPL_CONFIG_DIR=/etc/eso/production
  10. on -f mmx /eso/bin/apps/pc b:0:3221356628:7.7 1

Step 10. Done!
  1. ⁃ Plug in your phone. You should now have Android Auto

It is important to note that this hack will be overwritten if you ever decide to perform a software update on your PCM4. You'll then have to re-complete these steps with your new version of software. Given that there are no PCM4 updates available, this will probably be a non-issue.

What if I flash a bad ifs image to my head unit?
⁃ If this happens, MIBRoot will fail to start and you will not be able to interface with PCM4. it will appear to boot from the LCD panel, but touch and audio will not work. However, it will still boot into QNX for recovery since we are only flashing the stage2 image.
⁃ To recover, log into QNX with root / oaIQOqkW
⁃ Copy your original IFS root file (ifsroot_stage2_orig.ifs) to your SD card and install to left slot of PCM4.
⁃ Issue commands:
⁃ flashunlock
⁃ flash.it -v -x -d -a0x00BA0000 -f/net/mmx/fs/sda0/ifsroot_stage2_orig.ifs
⁃ flashlock
⁃ Note: If stage2 ifs flashing fails, flash.it, flashlock and flashunlock may no longer be present on your system. Copy them to your SD card from your extracted ifs directory and run them from the SD card, for example /net/mmx/fs/sda0/flashunlock.

What if my firmware flash works but I still don't have Android Auto?
⁃ Your VIN, VCRN, or FECs may need to be corrected, review step 7. Cars without CarPlay may need to add FECs 00030000, or 00060700 and 00060800
⁃ If your FECs are being removed from FecContainer.fec and being placed into IllegalFecContainer.fec, then your FECs are failing the signature check. Your patch is wrong and you need to review step 5 again.
⁃ If you did not have CarPlay or Android Auto previously, you may also need to code USB media player functionality within PIWIS II.

What if I want to return to stock?
⁃ Connect to PCM4 via UART
⁃ Log into QNX with root / oaIQOqkW
⁃ Copy your original IFS root file (ifsroot_stage2_orig.ifs) to your SD card and install to left slot of PCM4.
⁃ Issue commands:
⁃ flashunlock
⁃ flash.it -v -x -d -a0x00BA0000 -f/net/mmx/fs/sda0/ifsroot_stage2_orig.ifs
⁃ flashlock
⁃ mount -uw /mnt/efs-persist
⁃ rm /mnt/efs-persist/FEC/FecContainer.fec
⁃ mv /mnt/efs-persist/FEC/FecContainer.fec.orig /mnt/efs-persist/FEC/FecContainer.fec
⁃ Done. Reboot by holding power button for 30s


Code:
#dumpifs_helper.sh
IMAGE=$1
TMPDIR=./
EXTRDIR=./ifs_extracted
mkdir $EXTRDIR
echo "Dumping content of $IMAGE... to $EXTRDIR"
dumpifs -z $IMAGE |awk '{print $3}' >$TMPDIR/ifscont.txt
dumpifs -z $IMAGE |grep "\->" |awk '{print $3" -> "$5}' >$TMPDIR/ifslinks.txt
for i in `cat $TMPDIR/ifscont.txt`; do dirname $i; done |sort -u >$TMPDIR/dirlist.txt
for i in `cat $TMPDIR/dirlist.txt`; do mkdir -p $EXTRDIR/$i; done
cd $EXTRDIR
dumpifs -zx $IMAGE
cd ../
echo "done !"

Code:
#Feature Enablement Codes
#00030000 # AMI (Enables USB)
#00030001 # Gracenote
#00040100 # Navigation
#00050000 # Bluetooth
#00060100 # Vehicle Data Interface
#00060200 # Infotainment Control?
#00060300 # MirrorLink
#00060400 # Performance Monitor (Sport HMI)
#00060500 # Sport Chrono
#00060600 # Logbook
#00060700 # Mobile Online Dienste (Online Services)
#00060800 # CarPlay
#00060900 # Android Auto
#00070100 # SDS
#00070200 # SDS for Nav
#06310099 #PCM4 Navi
Old 02-14-2018, 03:33 PM
  #2  
LavaGTS
Banned
 
LavaGTS's Avatar
 
Join Date: Aug 2017
Posts: 642
Likes: 0
Received 10 Likes on 10 Posts
Default

That is actually incredible. It looks real to me. Only question is how do we do it?
Old 02-14-2018, 05:27 PM
  #3  
tstafford
Race Car
 
tstafford's Avatar
 
Join Date: May 2006
Location: Nashville
Posts: 4,483
Received 1,084 Likes on 621 Posts
Default

Seeing that Waze icon kills me. God I wish Apple would include Waze in CarPlay.
Old 02-14-2018, 07:19 PM
  #4  
Gordon Shumway
Pro
 
Gordon Shumway's Avatar
 
Join Date: Dec 2015
Location: Ocala, FL
Posts: 519
Likes: 0
Received 36 Likes on 21 Posts
Default

Originally Posted by tstafford
Seeing that Waze icon kills me. God I wish Apple would include Waze in CarPlay.

People can get Waze on Android Auto. Oh wait, I forgot Porsche decided it wasn't necessary to accommodate the people who use Android phones. Why in the world would they think that was useful when only 86% of the smartphones in the world run on android?

Last edited by Gordon Shumway; 02-15-2018 at 01:31 PM.
The following 2 users liked this post by Gordon Shumway:
Argote (02-04-2020), Epeeist (02-15-2021)
Old 02-15-2018, 01:01 PM
  #5  
Bud Taylor
Drifting
 
Bud Taylor's Avatar
 
Join Date: Jul 2003
Posts: 2,196
Received 404 Likes on 289 Posts
Default Comment on his video

He mentioned if enough people are interested he will publish a DIY...comment on his video...man that looks slick.

[QUOTE=Gordon Shumway;14802467]
Originally Posted by tstafford
Seeing that Waze icon kills me. God I wish Apple would include Waze in CarPlay.


People can get Waze on Android Auto. Oh wait, I forgot Porsche decided it wasn't necessary to accommodate the people who use Android phones. Why in the world would they think that was useful when only 86% of the smartphones in the world run on android?
Old 02-15-2018, 01:21 PM
  #6  
koala
Rennlist Member
 
koala's Avatar
 
Join Date: Aug 2017
Location: Calgary, AB
Posts: 1,862
Received 535 Likes on 314 Posts
Default

[QUOTE=Gordon Shumway;14802467]
Originally Posted by tstafford
Seeing that Waze icon kills me. God I wish Apple would include Waze in CarPlay.


People can get Waze on Android Auto. Oh wait, I forgot Porsche decided it wasn't necessary to accommodate the people who use Android phones. Why in the world would they think that was useful when only 86% of the smartphones in the world run on android?
Porsche stated that Google wanted too much user information. I think it's a cop-out.

I love Android Auto. I have a Google Pixel and my wife has an iPhone and there is a laughable difference between Android Auto and CarPlay.
Old 02-15-2018, 01:31 PM
  #7  
Gonzalo38
Instructor
 
Gonzalo38's Avatar
 
Join Date: Aug 2016
Posts: 235
Received 44 Likes on 35 Posts
Default

Looks interesting.....

There seem to be other aftermarket solutions for unblocking the PCM 4.0 capabilities. Here you have an example in Brazil (done in a 718).

Old 02-15-2018, 01:51 PM
  #8  
phx991
Rennlist Member
 
phx991's Avatar
 
Join Date: May 2017
Location: Phoenix, Arizona
Posts: 380
Received 5 Likes on 5 Posts
Default

[QUOTE=Gordon Shumway;14802467]
Originally Posted by tstafford
Seeing that Waze icon kills me. God I wish Apple would include Waze in CarPlay.

People can get Waze on Android Auto. Oh wait, I forgot Porsche decided it wasn't necessary to accommodate the people who use Android phones. Why in the world would they think that was useful when only 86% of the smartphones in the world run on android?
The worldwide market share closer to 75% as of January 2018, and has generally been trending downward. Also, this market share number does mean that most Porsche owners have an Android phone that can run Android Auto.
  • It is a worldwide market share. In countries such as India and China iOS penetration is very low, but only a microscopic percentage of the population can afford a Porsche.
  • Android Auto is only available in Android 5.0 and up
  • Android is also used in refrigerators, TVs, and other appliances, and even some PCs
  • iPhone owners tend to be more affluent, and closer to the demographics of the average Porsche owner
I have not seen any surveys of Porsche owners, but I suspect the majority own an iPhone.

In addition, there have been reports that Porsche was concerned about privacy in deciding to bypass Android Auto: https://www.theverge.com/2015/10/6/9...e-android-auto
Old 02-15-2018, 03:13 PM
  #9  
Papa Fittig
Burning Brakes
 
Papa Fittig's Avatar
 
Join Date: Nov 2012
Location: SF Bay Area
Posts: 1,246
Received 88 Likes on 65 Posts
Default

[QUOTE=phx991;14803984]
Originally Posted by Gordon Shumway

The worldwide market share closer to 75% as of January 2018, and has generally been trending downward. Also, this market share number does mean that most Porsche owners have an Android phone that can run Android Auto.
  • It is a worldwide market share. In countries such as India and China iOS penetration is very low, but only a microscopic percentage of the population can afford a Porsche.
  • Android Auto is only available in Android 5.0 and up
  • Android is also used in refrigerators, TVs, and other appliances, and even some PCs
  • iPhone owners tend to be more affluent, and closer to the demographics of the average Porsche owner
I have not seen any surveys of Porsche owners, but I suspect the majority own an iPhone.

In addition, there have been reports that Porsche was concerned about privacy in deciding to bypass Android Auto: https://www.theverge.com/2015/10/6/9...e-android-auto
nice attempt defending Porsche I am in minority then.
On a side note, Android platform is more configurable, open and comes with more capabilities. Always have a smile when my wife comes with an issue or a request regarding her iPhone.
In general, never see a good outcome of a company's position supporting a "closed" platform.
Some may have remembered Apple fiasco with laser printers, which they developed before anyone else to only lose high value market to HP and others due to Apple refusing to have their printers work with Pcs.
The following users liked this post:
Bassman37 (02-05-2020)
Old 02-15-2018, 03:38 PM
  #10  
Crester
Pro
 
Crester's Avatar
 
Join Date: Oct 2014
Posts: 585
Received 67 Likes on 40 Posts
Default

Originally Posted by Gordon Shumway
People can get Waze on Android Auto. Oh wait, I forgot Porsche decided it wasn't necessary to accommodate the people who use Android phones. Why in the world would they think that was useful when only 86% of the smartphones in the world run on android?
I don't think it was quite like that. I believe the reason Porsche said they didn't put Android Auto in their cars was because Google was asking to receive so much information from the cars. Apple on the other hand just wanted to know if the car was in motion or not.
Old 02-15-2018, 03:41 PM
  #11  
Crester
Pro
 
Crester's Avatar
 
Join Date: Oct 2014
Posts: 585
Received 67 Likes on 40 Posts
Default

Originally Posted by phx991

The worldwide market share closer to 75% as of January 2018, and has generally been trending downward. Also, this market share number does mean that most Porsche owners have an Android phone that can run Android Auto.
  • It is a worldwide market share. In countries such as India and China iOS penetration is very low, but only a microscopic percentage of the population can afford a Porsche.
  • Android Auto is only available in Android 5.0 and up
  • Android is also used in refrigerators, TVs, and other appliances, and even some PCs
  • iPhone owners tend to be more affluent, and closer to the demographics of the average Porsche owner
I have not seen any surveys of Porsche owners, but I suspect the majority own an iPhone.

In addition, there have been reports that Porsche was concerned about privacy in deciding to bypass Android Auto: https://www.theverge.com/2015/10/6/9...e-android-auto
You could have just said your last sentence and been factual... but then you had to go and act like an offended Apple fanboy with all the stuff you said before that. lol
Old 02-15-2018, 10:26 PM
  #12  
Soapman72
Advanced
 
Soapman72's Avatar
 
Join Date: Aug 2017
Posts: 90
Likes: 0
Received 1 Like on 1 Post
Default

Android user here.
The following users liked this post:
Bassman37 (02-05-2020)
Old 02-15-2018, 11:15 PM
  #13  
Papa Fittig
Burning Brakes
 
Papa Fittig's Avatar
 
Join Date: Nov 2012
Location: SF Bay Area
Posts: 1,246
Received 88 Likes on 65 Posts
Default

Originally Posted by Crester
I don't think it was quite like that. I believe the reason Porsche said they didn't put Android Auto in their cars was because Google was asking to receive so much information from the cars. Apple on the other hand just wanted to know if the car was in motion or not.
Really? I can't understand if true that Google would want to get more car info, what is so much of a secret? Car location? Car speed? Car anything? Are they concerned that car privacy would be violated?
All above only if what you said was true
The following users liked this post:
SpeedCircuit (09-01-2022)
Old 04-04-2018, 04:28 PM
  #14  
sirtom
Rennlist Member
 
sirtom's Avatar
 
Join Date: Jan 2012
Location: Santa Monica (and sometimes Germany)
Posts: 217
Received 26 Likes on 10 Posts
Default

Subscribed to see what else he publishes!
Old 04-04-2018, 05:00 PM
  #15  
Dennis C
Rocky Mountain High
Rennlist Member
 
Dennis C's Avatar
 
Join Date: Aug 2007
Location: Colorado
Posts: 17,145
Received 1,260 Likes on 791 Posts
Default

I’m an Apple guy, but I think it makes sense for a car manufacturer to support both platforms. I’d be pissed if I owned an Android device and I couldn’t get full functionality from my car’s infotainment system.
The following 2 users liked this post by Dennis C:
Bassman37 (02-05-2020), timothymoffat (06-26-2023)


Quick Reply: Porsche PCM Upgrade/Hack for Android Auto? Is this real?



All times are GMT -3. The time now is 09:55 AM.