Porsche PCM Upgrade/Hack for Android Auto? Is this real?
#331
I extracted the ifs_stage2_root_orig with the command:
./dumpifs_helper.sh ifs_root_stage2_orig.ifs
and I noticed that it generates, in addition to the ifs_extracted folder, the ifscont.txt and ifslinks.txt files.
In particular, this last file contains all the links contained in the mkifs_attributes.txt file plus the following line:
bytes-> -> bytes
Looking at the ifscont.txt file I noticed that it contains a line written like this:
bytes->
do you think I should add the line "bytes-> -> bytes" to the mkifs_attributes.txt file? has anyone made this fix? does it make sense?Thanks
./dumpifs_helper.sh ifs_root_stage2_orig.ifs
and I noticed that it generates, in addition to the ifs_extracted folder, the ifscont.txt and ifslinks.txt files.
In particular, this last file contains all the links contained in the mkifs_attributes.txt file plus the following line:
bytes-> -> bytes
Looking at the ifscont.txt file I noticed that it contains a line written like this:
bytes->
do you think I should add the line "bytes-> -> bytes" to the mkifs_attributes.txt file? has anyone made this fix? does it make sense?Thanks
#332
The two files, the original ifs_root_stage2 and the one that I unpacked with dump_ifs_helper and repacked with mkxfs, should be identical and have the same size, right?
#333
RL Community Team
Rennlist Member
Rennlist Member
I'm sure brew has the tools available needed for this work. If not, compiling isn't that hard.
#334
Ok, to verify that everything works correctly I will try to repack the ifs_root_stage2 without having made any changes to MIBRoot.
The two files, the original ifsrootstage2 and the one that I unpacked with dump_ifs_helper and repacked with mkxfs, should be identical and have the same size, right?
The two files, the original ifsrootstage2 and the one that I unpacked with dump_ifs_helper and repacked with mkxfs, should be identical and have the same size, right?
#335
Oh wait ...
(FWIW, I built it on a Fedora Linux VM hosted on an intel mac, and used an M1 mac to do the wifi telnet story)
#337
You can also individually check the MIBRoot file and it's checksum - asellus and I have both posted the cksum for our mods and MIB software versions somewhere above - so as long as you've got something that's the same there, given it's the only modified file in the filesystem, you should be OK. Also, as others have noted, it's a secondary filesystem, so even if you screw it up, as long as you still have your original filesystem image it's pretty trivial to flash it back. Make sure that you copy flashlock, flashunlock and "flash.it" (without the period - rennlist censorship) and dd to your SD card beforehand. When the filesystem is flashed sometimes things become unmounted or invisible, so it's useful to have those utilities on the SD card so that you can still execute them. Also note the reboot command I posted in some post earlier; I needed this in order for things to properly take effect.
#338
You can also individually check the MIBRoot file and it's checksum - asellus and I have both posted the cksum for our mods and MIB software versions somewhere above - so as long as you've got something that's the same there, given it's the only modified file in the filesystem, you should be OK. Also, as others have noted, it's a secondary filesystem, so even if you screw it up, as long as you still have your original filesystem image it's pretty trivial to flash it back. Make sure that you copy flashlock, flashunlock and "flash.it" (without the period - rennlist censorship) and dd to your SD card beforehand. When the filesystem is flashed sometimes things become unmounted or invisible, so it's useful to have those utilities on the SD card so that you can still execute them. Also note the reboot command I posted in some post earlier; I needed this in order for things to properly take effect.
I started with file: myIfsRootStage2Original.ifs (15.992.112 Byte)
I unpacked it with dumpIfs_helper generating ./original/ifs_extracted dir;
I repacked ifs_extracted dir with mkxfs using mkifs_attributes.txt generating myIfsRootStage2Original.repack.ifs (15.991.416 Byte), wich is different but i expected it for attribute list;
I unpacked again myIfsRootStage2Original.repack.ifs generating ./repack/ifs_extracted;
The structure of both ifs_extracted dire are identical but doing a "diff -r ./original/ifs_extracted dir/ ./repack/ifs_extracted" files are all different.
Looking ./original/ifslinks.txt an ./repack/ifslinks.txt i notice this difference:
First file contains:
bytes-> -> bytes
usr/bin/flashunlock -> /usr/bin/flashlock
lib/librdshbfpga.so.1.0.0 -> /lib/librdshbfpga.so
lib/SPC_configuration.so -> libSPC_configuration.so
lib/AudioConfig_ARM.so -> libAudioConfig_ARM.so
lib/AudioConfig_DSP.so -> libAudioConfig_DSP.so
opt/sys/lib/liba2itodspipc.so -> liba2itodspipc.so.1
lib/libi2c-inic-master.so -> libi2c-inic-master.so.1.0
lib/libSysMoCCAFrameworkSharedSo.so -> libSysMoCCAFrameworkSharedSo.so.6
instead the second contains:
bytes-> -> bytes
lib/liba2itodspipc.so -> /lib/liba2itodspipc.so.1
lib/AudioConfig_DSP.so -> /lib/libAudioConfig_DSP.so
lib/libSysMoCCAFrameworkSharedSo.so -> /lib/libSysMoCCAFrameworkSharedSo.so.6
lib/librdshbfpga.so.1.0.0 -> /lib/librdshbfpga.so
usr/bin/libi2c-inic-master.so -> /lib/libi2c-inic-master.so.1.0
usr/bin/flashunlock -> /usr/bin/flashlock
lib/AudioConfig_DSP.so -> /lib/libAudioConfig_DSP.so
lib/AudioConfig_ARM.so -> /lib/libAudioConfig_ARM.so
lib/SPC_configuration.so -> /lib/libSPC_configuration.so
That are so very different...
mkifs_attribute.txt contains this symlinks:
[type=link] /lib/SPC_configuration.so=/lib/libSPC_configuration.so
[type=link] /lib/AudioConfig_ARM.so=/lib/libAudioConfig_ARM.so
[type=link] /lib/AudioConfig_DSP.so=/lib/libAudioConfig_DSP.so
[type=link] /usr/bin/flashunlock=/usr/bin/flashlock
[type=link] /usr/bin/libi2c-inic-master.so=/lib/libi2c-inic-master.so.1.0
[type=link] /lib/librdshbfpga.so.1.0.0=/lib/librdshbfpga.so
[type=link] /lib/libSysMoCCAFrameworkSharedSo.so=/lib/libSysMoCCAFrameworkSharedSo.so.6
[type=link] /lib/AudioConfig_DSP.so=/lib/libAudioConfig_DSP.so
[type=link] /lib/liba2itodspipc.so=/lib/liba2itodspipc.so.1
Could these differences be attributable to mkifs_attribute.txt?
I don't explain however the difference of all the files inside ifs_extracted...
I specify that I have not changed even a file, all the files are like the originals. I don't think that by flashing this image on mmi it can work, even if the content is identical to the original one.
Does anyone have any idea what i did wrong? i try to change attribute list?
Ps. i'have already copied all necessary file
Very Thanks
EDIT
I have edit mkifs_attribute by changing mkifs_attribute.txt and now symlinks are the same. However file in /original/ifs_extracted dir/ and ./repack/ifs_extracted are all different.
However there must still be some attributes to change that impact all files.
Ps. i am preparing special custom firmware for Audi TT.
Last edited by DeSmO ManU; 03-16-2021 at 09:20 PM.
#339
Maybe I’m missing something here, but I don’t see that there’s any substantive difference between the 1st and the 2nd other than the ordering of the file links. Those are just directory entries that are symbolic links from a file in one location to another location; most often to simplify paths and things. Very common in *nix (Linux, QNX, Unix, BSD-based systems, etc.).
As to doing it for an Audi TT - I have zero experience there; this is about the Porsche MIB2. Granted, the Audi MIB is the same (as we even see when we log into the MIB on the Porsche), but there may be some subtle differences, so be aware of that. Now that all said, what you describe above doesn’t sound like it is actually different. If, however, you are not familiar with symlinks and directory structures, and don’t understand exactly what it is you’re doing, I’d be cautious if I were you.
As to doing it for an Audi TT - I have zero experience there; this is about the Porsche MIB2. Granted, the Audi MIB is the same (as we even see when we log into the MIB on the Porsche), but there may be some subtle differences, so be aware of that. Now that all said, what you describe above doesn’t sound like it is actually different. If, however, you are not familiar with symlinks and directory structures, and don’t understand exactly what it is you’re doing, I’d be cautious if I were you.
#340
Intermediate
UPDATE.. ANDROID AUTO INSTALLED. THANK YOU TO THE USERS HERE!.
So I'm happy to say that I have Android auto installed thanks to help from this forum and a couple of very helpful users here. No, I didn't program it myself and just watching it happen right in front of my eyes was even confusing. lol. Android Auto is in the Pcm 4 Radio that you'd get in a Porsche Carrera 991.2 which is what I have and It just needs to be (carefully) switched on. Doing that myself was never going to happen and If you've seen any of the above "code speak" you can see it's no easy task. I was just about to employ Unichip who comes highly recommended on this thread and I fully believe Gary would have gotten it done no problem but I would have had to wait for the DHL and my cost would have been between $300 and $400. A friendly user on here. I wont name names but you know who you are directed me to simaservis1108 Facebook messenger (answers pretty quick) @serviskoya . This person was able to do mine in 20 minutes the next day after a $15 overnight purchase from Amazon. It works perfectly. The best part other then simaservis1108 appears to know exactly what he's doing is that he's charging far less to do it than the other guys. A HUGE thank you to simaservis1108 and If anyone needs a full start to finish SOLUTION for this, I'd recommend simaservis1108 all the way.
Yup. Android Auto in a 2017 Carrera GTS
So I'm happy to say that I have Android auto installed thanks to help from this forum and a couple of very helpful users here. No, I didn't program it myself and just watching it happen right in front of my eyes was even confusing. lol. Android Auto is in the Pcm 4 Radio that you'd get in a Porsche Carrera 991.2 which is what I have and It just needs to be (carefully) switched on. Doing that myself was never going to happen and If you've seen any of the above "code speak" you can see it's no easy task. I was just about to employ Unichip who comes highly recommended on this thread and I fully believe Gary would have gotten it done no problem but I would have had to wait for the DHL and my cost would have been between $300 and $400. A friendly user on here. I wont name names but you know who you are directed me to simaservis1108 Facebook messenger (answers pretty quick) @serviskoya . This person was able to do mine in 20 minutes the next day after a $15 overnight purchase from Amazon. It works perfectly. The best part other then simaservis1108 appears to know exactly what he's doing is that he's charging far less to do it than the other guys. A HUGE thank you to simaservis1108 and If anyone needs a full start to finish SOLUTION for this, I'd recommend simaservis1108 all the way.
Yup. Android Auto in a 2017 Carrera GTS
The following users liked this post:
HB PCH 911 (07-12-2024)
#341
RL Community Team
Rennlist Member
Rennlist Member
UPDATE.. ANDROID AUTO INSTALLED. THANK YOU TO THE USERS HERE!.
So I'm happy to say that I have Android auto installed thanks to help from this forum and a couple of very helpful users here. No, I didn't program it myself and just watching it happen right in front of my eyes was even confusing. lol. Android Auto is in the Pcm 4 Radio that you'd get in a Porsche Carrera 991.2 which is what I have and It just needs to be (carefully) switched on. Doing that myself was never going to happen and If you've seen any of the above "code speak" you can see it's no easy task. I was just about to employ Unichip who comes highly recommended on this thread and I fully believe Gary would have gotten it done no problem but I would have had to wait for the DHL and my cost would have been between $300 and $400. A friendly user on here. I wont name names but you know who you are directed me to simaservis1108 Facebook messenger (answers pretty quick) @serviskoya . This person was able to do mine in 20 minutes the next day after a $15 overnight purchase from Amazon. It works perfectly. The best part other then simaservis1108 appears to know exactly what he's doing is that he's charging far less to do it than the other guys. A HUGE thank you to simaservis1108 and If anyone needs a full start to finish SOLUTION for this, I'd recommend simaservis1108 all the way.
Yup. Android Auto in a 2017 Carrera GTS
So I'm happy to say that I have Android auto installed thanks to help from this forum and a couple of very helpful users here. No, I didn't program it myself and just watching it happen right in front of my eyes was even confusing. lol. Android Auto is in the Pcm 4 Radio that you'd get in a Porsche Carrera 991.2 which is what I have and It just needs to be (carefully) switched on. Doing that myself was never going to happen and If you've seen any of the above "code speak" you can see it's no easy task. I was just about to employ Unichip who comes highly recommended on this thread and I fully believe Gary would have gotten it done no problem but I would have had to wait for the DHL and my cost would have been between $300 and $400. A friendly user on here. I wont name names but you know who you are directed me to simaservis1108 Facebook messenger (answers pretty quick) @serviskoya . This person was able to do mine in 20 minutes the next day after a $15 overnight purchase from Amazon. It works perfectly. The best part other then simaservis1108 appears to know exactly what he's doing is that he's charging far less to do it than the other guys. A HUGE thank you to simaservis1108 and If anyone needs a full start to finish SOLUTION for this, I'd recommend simaservis1108 all the way.
Yup. Android Auto in a 2017 Carrera GTS
I assume the purchase on Amazon was for a Ethernet/USB dongle, can you provide the exact link?
Cheers!
#342
Intermediate
#343
Maybe I’m missing something here, but I don’t see that there’s any substantive difference between the 1st and the 2nd other than the ordering of the file links. Those are just directory entries that are symbolic links from a file in one location to another location; most often to simplify paths and things. Very common in *nix (Linux, QNX, Unix, BSD-based systems, etc.).
As to doing it for an Audi TT - I have zero experience there; this is about the Porsche MIB2. Granted, the Audi MIB is the same (as we even see when we log into the MIB on the Porsche), but there may be some subtle differences, so be aware of that. Now that all said, what you describe above doesn’t sound like it is actually different. If, however, you are not familiar with symlinks and directory structures, and don’t understand exactly what it is you’re doing, I’d be cautious if I were you.
As to doing it for an Audi TT - I have zero experience there; this is about the Porsche MIB2. Granted, the Audi MIB is the same (as we even see when we log into the MIB on the Porsche), but there may be some subtle differences, so be aware of that. Now that all said, what you describe above doesn’t sound like it is actually different. If, however, you are not familiar with symlinks and directory structures, and don’t understand exactly what it is you’re doing, I’d be cautious if I were you.
Look, I order them so it is more evident. Those with 1) refer to originalIfs, those with 2 refer to the repackaged IFs:
1)bytes-> -> bytes
2)bytes-> -> bytes
1)usr/bin/flashunlock -> /usr/bin/flashlock
2)usr/bin/flashunlock -> /usr/bin/flashlock
1)lib/librdshbfpga.so.1.0.0 -> /lib/librdshbfpga.so
2)lib/librdshbfpga.so.1.0.0 -> /lib/librdshbfpga.so
1)lib/SPC_configuration.so -> libSPC_configuration.so
2)lib/SPC_configuration.so -> /lib/libSPC_configuration.so
1)lib/AudioConfig_ARM.so -> libAudioConfig_ARM.so
2)lib/AudioConfig_ARM.so -> /lib/libAudioConfig_ARM.so
1)lib/AudioConfig_DSP.so -> libAudioConfig_DSP.so
2)lib/AudioConfig_DSP.so -> /lib/libAudioConfig_DSP.so
1)opt/sys/lib/liba2itodspipc.so -> liba2itodspipc.so.1
2)lib/liba2itodspipc.so -> /lib/liba2itodspipc.so.1
1)lib/libi2c-inic-master.so -> libi2c-inic-master.so.1.0
2)usr/bin/libi2c-inic-master.so -> /lib/libi2c-inic-master.so.1.0
1)lib/libSysMoCCAFrameworkSharedSo.so -> libSysMoCCAFrameworkSharedSo.so.6
2)lib/libSysMoCCAFrameworkSharedSo.so -> /lib/libSysMoCCAFrameworkSharedSo.so.6cI also know that the mib2 is very similar to the porsche system so i'm following this thread.
Except that at the moment I'm stuck and I don't know with which attributes to recompact my ifs_extracted, the links I solved them, but all the files from repacked ifs are different to me even if I have not practically touched them.
If someone else would be able to help me I would be very grateful.
Last edited by DeSmO ManU; 03-17-2021 at 09:26 PM.
#344
RL Community Team
Rennlist Member
Rennlist Member
I am waiting for some other bits to arrive so I can proceed and have simaservis1108 do his thing!
The following users liked this post:
Seth K (03-19-2021)
#345
Sorry friend, but the symbolyc lync from unpacked orginal version and my repacked original version are different.
Look, I order them so it is more evident. Those with 1) refer to originalIfs, those with 2 refer to the repackaged IFs:
1)bytes-> -> bytes
2)bytes-> -> bytes
1)usr/bin/flashunlock -> /usr/bin/flashlock
2)usr/bin/flashunlock -> /usr/bin/flashlock
1)lib/librdshbfpga.so.1.0.0 -> /lib/librdshbfpga.so
2)lib/librdshbfpga.so.1.0.0 -> /lib/librdshbfpga.so
1)lib/SPC_configuration.so -> libSPC_configuration.so
2)lib/SPC_configuration.so -> /lib/libSPC_configuration.so
1)lib/AudioConfig_ARM.so -> libAudioConfig_ARM.so
2)lib/AudioConfig_ARM.so -> /lib/libAudioConfig_ARM.so
1)lib/AudioConfig_DSP.so -> libAudioConfig_DSP.so
2)lib/AudioConfig_DSP.so -> /lib/libAudioConfig_DSP.so
1)opt/sys/lib/liba2itodspipc.so -> liba2itodspipc.so.1
2)lib/liba2itodspipc.so -> /lib/liba2itodspipc.so.1
1)lib/libi2c-inic-master.so -> libi2c-inic-master.so.1.0
2)usr/bin/libi2c-inic-master.so -> /lib/libi2c-inic-master.so.1.0
1)lib/libSysMoCCAFrameworkSharedSo.so -> libSysMoCCAFrameworkSharedSo.so.6
2)lib/libSysMoCCAFrameworkSharedSo.so -> /lib/libSysMoCCAFrameworkSharedSo.so.6cI also know that the mib2 is very similar to the porsche system so i'm following this thread.
Except that at the moment I'm stuck and I don't know with which attributes to recompact my ifs_extracted, the links I solved them, but all the files from repacked ifs are different to me even if I have not practically touched them.
If someone else would be able to help me I would be very grateful.
Look, I order them so it is more evident. Those with 1) refer to originalIfs, those with 2 refer to the repackaged IFs:
1)bytes-> -> bytes
2)bytes-> -> bytes
1)usr/bin/flashunlock -> /usr/bin/flashlock
2)usr/bin/flashunlock -> /usr/bin/flashlock
1)lib/librdshbfpga.so.1.0.0 -> /lib/librdshbfpga.so
2)lib/librdshbfpga.so.1.0.0 -> /lib/librdshbfpga.so
1)lib/SPC_configuration.so -> libSPC_configuration.so
2)lib/SPC_configuration.so -> /lib/libSPC_configuration.so
1)lib/AudioConfig_ARM.so -> libAudioConfig_ARM.so
2)lib/AudioConfig_ARM.so -> /lib/libAudioConfig_ARM.so
1)lib/AudioConfig_DSP.so -> libAudioConfig_DSP.so
2)lib/AudioConfig_DSP.so -> /lib/libAudioConfig_DSP.so
1)opt/sys/lib/liba2itodspipc.so -> liba2itodspipc.so.1
2)lib/liba2itodspipc.so -> /lib/liba2itodspipc.so.1
1)lib/libi2c-inic-master.so -> libi2c-inic-master.so.1.0
2)usr/bin/libi2c-inic-master.so -> /lib/libi2c-inic-master.so.1.0
1)lib/libSysMoCCAFrameworkSharedSo.so -> libSysMoCCAFrameworkSharedSo.so.6
2)lib/libSysMoCCAFrameworkSharedSo.so -> /lib/libSysMoCCAFrameworkSharedSo.so.6cI also know that the mib2 is very similar to the porsche system so i'm following this thread.
Except that at the moment I'm stuck and I don't know with which attributes to recompact my ifs_extracted, the links I solved them, but all the files from repacked ifs are different to me even if I have not practically touched them.
If someone else would be able to help me I would be very grateful.
The command I used for creating the patched IFS is
./mkxfs -t ifs -nn -o ./ ./mkifs_attributes.txt ./ifs_extracted ./patched_ifs.ifs
So what you should be comparing is the *contents* of ifs_extracted against an extracted patched_ifs.ifs and *not* the contents of the ifslinks.txt file. You can achieve this with a shell script. Something like the following:find ifs_extracted -type f | while read a; do b=`echo $a | sed -e 's/ifs_extracted/patched_ifs/'`; cksuma=`cksum $a | awk '{print $1}'`; cksumb=`cksum $b | awk '{print $1}'`; if [ $cksuma != $cksumb ]; then echo $a \($cksuma)\) \<--\> $b \($cksumb\)': NOT OK'; fi; done
If you run this against your ifs_extracted and patched_ifs, you should only see a single file difference this reports as "NOT OK", which is the MIBRoot file. Something like this:ifs_extracted/usr/apps/MIBRoot (1352948790) <--> ifs_extracted_orig/usr/apps/MIBRoot (1702713611): NOT OK
If that is the case, you have a perfectly valid patched IFS image.My mkifs_attributes.txt file was the same as yours and as you can see, all it is is a specification of what symbolic links to create:
#Porsche PCM4/MIB2 ifs-root (stage 2) attributes file
#Before packing FS: EXPORT QNX_TARGET="/"
#Command to pack: mkxfs -t ifs -nn -o ./ -r / attributes.txt /unpacked_fs /packed_fs.ifs
[-followlink] #Do not resolve links
[compress=2] #LZO Compression
[-bigendian] #Little Endian (ARMLE)
[-autolink] #Do not auto link shared objects
[perms=777] #chmod 777
[uid=0 gid=0] #chown root:root
#You can add a script to be executed after mount here, one line only
#[+script] .script = {
#touch /dev/shmem/AudioFadedIn; touch /dev/shmem/production_mode
#}
#Symlinks. Add lines here to match your dumpifs symlinks
#[type=link] dest_file=source_file
[type=link] /lib/SPC_configuration.so=/lib/libSPC_configuration.so
[type=link] /lib/AudioConfig_ARM.so=/lib/libAudioConfig_ARM.so
[type=link] /lib/AudioConfig_DSP.so=/lib/libAudioConfig_DSP.so
[type=link] /usr/bin/flashunlock=/usr/bin/flashlock
[type=link] /usr/bin/libi2c-inic-master.so=/lib/libi2c-inic-master.so.1.0
[type=link] /lib/librdshbfpga.so.1.0.0=/lib/librdshbfpga.so
[type=link] /lib/libSysMoCCAFrameworkSharedSo.so=/lib/libSysMoCCAFrameworkSharedSo.so.6
[type=link] /lib/AudioConfig_DSP.so=/lib/libAudioConfig_DSP.so
[type=link] /lib/liba2itodspipc.so=/lib/liba2itodspipc.so.1
#Command to pack: mkxfs -t ifs -nn -o ./ -r / attributes.txt /unpacked_fs /packed_fs.ifs
[-followlink] #Do not resolve links
[compress=2] #LZO Compression
[-bigendian] #Little Endian (ARMLE)
[-autolink] #Do not auto link shared objects
[perms=777] #chmod 777
[uid=0 gid=0] #chown root:root
#You can add a script to be executed after mount here, one line only
#[+script] .script = {
#touch /dev/shmem/AudioFadedIn; touch /dev/shmem/production_mode
#}
#Symlinks. Add lines here to match your dumpifs symlinks
#[type=link] dest_file=source_file
[type=link] /lib/SPC_configuration.so=/lib/libSPC_configuration.so
[type=link] /lib/AudioConfig_ARM.so=/lib/libAudioConfig_ARM.so
[type=link] /lib/AudioConfig_DSP.so=/lib/libAudioConfig_DSP.so
[type=link] /usr/bin/flashunlock=/usr/bin/flashlock
[type=link] /usr/bin/libi2c-inic-master.so=/lib/libi2c-inic-master.so.1.0
[type=link] /lib/librdshbfpga.so.1.0.0=/lib/librdshbfpga.so
[type=link] /lib/libSysMoCCAFrameworkSharedSo.so=/lib/libSysMoCCAFrameworkSharedSo.so.6
[type=link] /lib/AudioConfig_DSP.so=/lib/libAudioConfig_DSP.so
[type=link] /lib/liba2itodspipc.so=/lib/liba2itodspipc.so.1