yashsingh1/xdaforums huggingface dataset:
[Connected Car] donaldta:
Thanks! I appreciate the effort, but I already have the entire the SCT's ACU_VOLVO_EU_update.plf extracted and ready to reference at any time. All these three letter acronyms might be a tad confusing. But, the .P

PK

file which johnnie_w and I were referring to earlier is the Wikango app from the Asteroid Market. (at least that's what I've gathered) Apparently, the files distributed to the SCT from the Asteroid Market are transferred as .PPK files. So, I wanted be able to take a look at one for dissemination sake. As far as I understand, after the PPK is downloaded, it is decrypted into a temporary directory or as a temporary filename before installing. That's how johnnie_w was able to intercept a copy of its APK file and later was able to inject Framaroot into it using the bash script. So, really, I was asking for a copy of those files to be able peruse.

Honestly, I am not sure what the files under the parrot directory is for in the SCT. They don't exist at all in the PAS. Here is what I do know.

{SCT}\FileSystem\system\etc\security\cacerts.bks is the Android keystore and holds all the information regarding the Certificate Authority Certifications. You can use CACertMan to see what's inside.

{SCT}\FileSystem\system\etc\security\otacerts.zip is an archive of certificates whose public keys are acceptable during an Over The Air (OTA) update or in a Recovery Image.

{SCT}\FileSystem\system\etc\security\parrot\accepted_certificates\.ignore file was 0 bytes, so I am assuming that's a file used as a flag for a script or application, like in a "if file exists then.." routine. If you have an SCT maybe check to see if it is still 0 bytes on a running system.

{SCT}\FileSystem\system\etc\security\parrot\accepted_public_keys\afm_fc6100_volvo.der file is a X509 binary that uses Distinguished Encoding Rules (DER) for its public key certificate. I am not sure what it is used to verify though.

And yes, these files are used for verification. However, it does us no good because we cannot manipulate them since root is not available on the SCT. These public keys and certificates are used to verify digital signatures or decrypt written by their private counterpart. They cannot be used to digitally sign APKs for installation. Only the

private

keys can do that. If you want an overview about how it works then take at look at this How Encryption and Digital Signatures Work article.

Although, these files won't help you guys get root on the SCT, it might help jaanusj in getting AcuHome.apk installed on his PAT.
[Connected Car] getiem:
I'm sorry that I did some useless work. :cyclops:.

I have SCT and will try soon to get into it. Car is just 6 days old now, and still figuring out some things (did'nt even have the time to log in to the asteroid market). :)
[Connected Car] jaanusj:
For the info - my parrot tablet in now rooted SCT :)

At least the launcher is similar...

Linbus interface is my own Arduino product:)

Search Youtube for xc60droid and you will see.
[Connected Car] donaldta:
Nice. Can you please explain how you were able to do it? I just realize that it would be useful to try and install the AcuHome.apk and the ParrotHome2.apk into the Android SDK Emulator and I think that I was having the same issue as you were. For example, installing AcuHome.apk was complaining about, "Package se.volvocars.acu requires unavailable shared library com.parrot.asteroid-legacy; failing"

Great. I'll take it that Lin bus is the SWC communication type in your Volvo? I'll take a look.

---------- Post added at 07:49 AM ---------- Previous post was at 07:09 AM ----------

Asking questions is never useless. I'm sure everyone learned things in the process of getting it answered. In fact, I was reminded that the SCT is still quite different than the PAS/PAT despite their similarities. Additionally, I do not have a SCT, so I have to live vicariously through you guys in order to get more familiar with it. There's a lot of interesting things that SCT can do that neither the PAT/PAS does by default, like pairing up to 10 phones, using it as a portable hotspot, and the Parrot SmartLink.
[Connected Car] getiem:
FYI:

Volvo SCT can't connect to phones with bluetooth, either for phone or for music. The Car Sensus (original Volvo system that controls FM radio, CD/DVD, Phone, Car system settings, etc) system takes that part of functionality.

It can connect to phone with WIFI (when phone as portable hotspot), and it can connect to phone with USB (as USB device carrying music files)

Using USB for internet sharing is not possible (at least, I did'nt try, but other users did).

Volvo SCT can act as portable hotspot, but only if you add a compatible USB-dongle with sim-card. Compatible dongles are hard to find....

Volvo SCT does not have Smartlink/Mirrorlink etc... this functionality is skipped by Volvo in the last days of implementing ( I ordered SCT because of this functionality, but in the end, it isnt there at all..) (I have a promotional flyer of SCT, dated april 2013, with Mirrorlink as one of the features, thats what I ordered).

In my SCT there are 2 LINbus software versions. I guess, seeing the names, it refers to the controls/buttons on my steeringwheel and the controls/buttons in my dashboard.
[Connected Car] jaanusj:
Would be interesting to see the wiring diagram of SCT. I have used only one Linbus on my device but may be there is more info to catch:) As I see the center console uses can bus but maybe it is translated to one of the lin buses..who knows, the car is full of buses and computers.
[Connected Car] getiem:
Part of it can be viewed in the installation manuals. See OP.

(http://accessories.volvocars.com/Ac...nt/ShowIiDocument/VCC-465303-5/V40_(13-)_2014)
[Connected Car] johnnie_w:
I'm currently at conference with a really crappy internet connection, so I can't upload the files yet... Will do it tomorrow!
[Connected Car] getiem:
I downloaded a .ppk file from my SCT system. I found it in \sdcard.

It's a 19MB file, unreadable and I have no reference to which APK or app this one belongs.

Due to size restrictions for attachments here, I uploaded it to dropbox:

https://dl.dropboxusercontent.com/u/21900120/69.1380131622228.ppk

For people who do not want commandline for ADB, there is a very easy app for your (rooted) phone: Craze.

It will open the connection to SCT over ADB and show you the results like a file browser/explorer. Attached a screenshot. I was able to connect to SCT within seconds.

-Connect your phone and SCT to same Wifi network

-Beware, your phone cannot act as wifi hotspot at the same time!

-Lookup the IP adress of SCT (go to settings->wifi->wifi connection name _ see details.

- Fill in Craze via button Connect.

https://play.google.com/store/apps/details?id=evo.dev.craze

(also project on XDA: http://xdaforums.com/showthread.php?t=2260828 )
[Connected Car] fmpin:
Quote !!

This is also why I'm so happy that you are working on it :fingers-crossed:

THANK YOU VERY MUCH !
[Connected Car] donaldta:
Are you sure that it isn't there?

It seems to me that it could be embedded in the launcher like the weather app with additional components in other system directories. At least some of the framework is there to support the "Parror SmartLink" aka MirrorLink, even though it may not be accessible to you at the moment.

Thanks for that This clears up a few misconceptions that I had from watching the promotional material.

I couldn't identify the file type by its signature in the header. But in case someone else can recognize it, here is the first 16 bytes, "B6 8B 69 6D FB B1 3C 3F 0C 43 8A 49 37 34 76 45". It would be nice to have a copy of the unencrypted APK equivalent. That would make reversing identifying it much easier. Hopefully, when johnnie_w gets back he'll be able to upload those files.

:good:
[Connected Car] donaldta:
Probably, the audio focus is probably being stolen when it plays the pre-recorded audio file.

Edit: Found a way to do it through ES File Explorer. Within ES File Explorer; go into Fast Access (icon of a smartphone eclipsing a globe in the upper-left corner), select Tools > App Manager from the left pane, search for the app then long press it and select More > Properties and you'll see the version number in the upper-left hand corner of the next screen.

The best place to check is the Application Manager or Storage Manager in the Android Settings app. I'm not sure if they show up after you root the device but I think you can bring it up using Activity Manger over adb via activity manager

adb shell am start -n com.android.settings/.applications.StorageUse

otherwise you can use Dumpsys if you know the package name

adb shell dumpsys {package.name}

And the app's version will be listed in the line that begins with "versionName="

You don't have to use built-in media player for your audio files. There are plenty of 3rd party apps which can play various music files, so you are not limited to using the SCT's default music player. The standard audio focus in the Android ecosystem should work appropriately between 3rd party apps.
[Connected Car] Gray1:
Right, but don't forget about this: I can't even listen to other sources like radio, cd, usb, bluetooth etc from volvo sensus, cause SCT will shut it down as soon as I load Navi. But I have another example: I can listen to the radio and load Coyote application, it plays welcome sound, in that second radio gets silent, after welcome sound - radio is back. So it's possible to continue playback from other source after playing sound in SCT. Hope it will be possible somehow to listen to the radio (for example) and listen Navi without any silent moments at all.

p.s. sorry if my English is not good enough :cowboy:
[Connected Car] donaldta:
It looks like "libwaze.so" isn't loading. If it installed properly it should be present in the "/data/data/com.waze/lib" directory.

An easy way to do this is through ES File Explorer's App Manager. Just long press the app's icon and then select uninstall. Otherwise, "adb uninstall {package.name}" works well too. (aka "adb uninstall com.waze")

Personally, I don't recommend "installing" apps that way. It can get messy and it doesn't always operate correctly. For third-party apps, I would recommend in either using "adb install {filename.apk}" or installing the file from within ES File Explorer.

Yes, copying files directly into the app directory is a dirty way of "installing" and doesn't always work. I would only recommend it for the core Google Apps, like Google Play (com.android.vending) and Google Services Framework (com.google.android.gsf). Not really for third-party developers because you can inadvertently grant more permissions than what they require by placing them in /system/app directory.

---------- Post added at 01:17 PM ---------- Previous post was at 01:04 PM ----------

Did you sort this one out? The best I can tell you is that not all event states are recognized, for example setting a profile to trigger off of the "Display Off" event has no effect on the Asteroid Smart. You just have to find other triggers or a different way to approach it.
[Connected Car] donaldta:
Manually copying APKs into the "/system/app" directory is a "dirty installation". I don't recommend it for anything other than Google's core Android services, like the Android Market/Google Play, Google Framework Services, Google Contact and/or Calendar Sync Adapter, etc. However, for third-party apps, it gets messy and can inadvertently give problematic results like this.

I wish that [MENTION=941448]getiem[/MENTION] would remove it as a recommend method of installing APKs. It is much better to use "adb install {filename.apk}" or using ES File Explorer to get the third-party apps installed. However, this does involve making sure that the "/system/build.prop" file is properly edited to remove the package install limitations.

I think the best way to fix it is to delete the copy that you have in the "/system/app" directory then uninstall the app with ES File Explorer. Next step is to install the copy that you have in "/data/local" using ES File Explorer. Actually, you should probably move that file into "/mnt/sdcard" or one of its sub-directories since the "/data/local" is a part of the internal storage and really isn't a proper place to archive files.

For user installed apps, you can use ES File Explorer's App Manager to uninstall APKs or "adb uninstall {package.name}". However, for system apps, I would recommend using Titanium Backup. Since it is always a good idea to keep a backup copy of the app in case you want to reinstall it at a later time and not having to do a brutal factory reset to restore the app (which I'm not sure is even possible for the SCT).
[Connected Car] twcoolen:
Yes, the profile was not active yet. Now, most of the times, the 3 apps are started after a boot up. In 1 of 4 occasions, it won't start Flitsmeister or Flitsnav. Perhaps I should increase the 'Wait 15 seconds' a bit more in order to make sure the SCT unit is properly booted up.
[Connected Car] xadax:
I have created a small shell script called mkwhite that generates a new /system/etc/whitelist.xml from the actual installed packages on the SCT.

Push the script to the SCT, chmod 700 and change owner to root. You can execute the script from a shell or start it from Tasker for example. It will remount /system for read/write access.

Just generate a new whitelist.xml with this script as

root

and reboot (remove the # before reboot at the end of the script to auto reboot), but don't use a Windows editor for that, it may insert invalid crlf signs at the end of the line and the script won't work.

Make a backup of your current whitelist.xml beforehand and (like any other thing here on xda): use at your own risk.

I have tested the script and it seems to be working. If you want to check the generated file beforehand, change the file name at the beginning of the script and inspect the file before replacing whitelist.xml manually (again: not with a Windows editor).
[Connected Car] donaldta:
I think this is a wonderful idea but I decided to improve upon it a little bit. So, I added a few lines to do a few extra things...

Sanity checks before doing anything,

Added a lockfile to prevent the script from clobbering over multiple instances of itself when automated

Automatically create backups that only retains five of the most recent versions.

Added time stamps for the backup names and as record separators

Used a method of inserting the installed packages not already in the list instead of generating a brand new copy

rewhitelist.sh:

#!/system/bin/sh

userid=`id`
whitefile='/system/etc/whitelist.xml'

if [[ "${userid}" == "uid=0(root) gid=0(root)" ]]
then if [[ ! -f ${whitefile}.lock ]]
then remount=`mount | awk '/ \/system / {print "mount -o rw,remount -t "$3,$1,$2}'`
${remount}
touch ${whitefile}.lock

if [[ -f ${whitefile}.lock ]]
then epoch=`date "+%s"`
packages=`pm list packages | cut -d: -f2`
whiteseparate=`grep -n '</user>' ${whitefile} | cut -d ":" -f1`
whitecutoff=`expr ${whiteseparate} - 1`

if [[ -f ${whitefile} ]]
then mv ${whitefile} ${whitefile}.${epoch}
head -n ${whitecutoff} ${whitefile}.${epoch} > ${whitefile}
fi

echo ' <!-- Added on '${epoch}' -->' >> ${whitefile}

for i in ${packages}
do test=`grep \"${i}\" ${whitefile}.${epoch}`
if [[ -z "${test}" ]]
then echo ' <package name="'${i}'"/>' >> ${whitefile}
fi
done

tail -n +${whiteseparate} ${whitefile}.${epoch} >> ${whitefile}
whitelist=`ls ${whitefile}.[0-9]*`
whitecount=`echo ${whitelist} | wc -w`

if [[ "${whitecount}" -gt 4 ]]
then whitesub=`expr ${whitecount} - 4`
whiteout=`echo ${whitelist} | sort | cut -d " " -f 1-${whitesub}`
rm ${whiteout}
fi

rm ${whitefile}.lock

else echo Cannot create lockfile.

fi

else echo Lockfile exists.

fi

else echo Must be root.

fi
[Connected Car] Gray1:
guys i'm newbie in Android so sorry if i'm speaking about common things

I found out, why STC sometimes muting other source (radio for example) totaly and sometimes mutes while playing sounds than radio backs.

Android has different sound channels (how i call it), here we can see all of them:

So it depends on what is sound channel program is using to play sounds. There are programs where You can choose sound channel (Igo for example)! I found out, when You set to "ring" channel - program mutes radio sound for the time it plays, than radio backs. If program use music channel - than radio will be completely muted.

Knowing this - i have only one question - is there any trick or application which can redirect chanels?
[Connected Car] perlu:
Brilliant!

It seems you are right, the database is synchronised each boot (decompiled from se.volvocars.acu.model.ApplicationModel, the "paramList" is from factorySettings.json):

private void syncDatabase(List<AppInfo> paramList)
{
List localList;
synchronized (this.mAppInfoLock)
{
localList = this.mDatabase.getAllApps();
Iterator localIterator1 = localList.iterator();
while (localIterator1.hasNext())
{
StoredAppInfo localStoredAppInfo = (StoredAppInfo)localIterator1.next();
if (getAppInfoFromIdentifier(paramList, localStoredAppInfo.getPackage()) == null)
this.mDatabase.removeApplication(localStoredAppInfo.getId());
}
}
...

This is called when ApplicationModel is instantiated with parameter "justBooted" = true.

The best solution would of course to modify this behaviour, but as I understand that would involve editing smali files which is not fun. The java decompiler is not good enough to produce compilable code...

Adding a few dummies is not a bad idea.

I'll do some more tests next weekend. It's just so freezing cold in this god forsaken country I'm living in, so it is no fun spending time in the car outside...
[Connected Car] alexey.vasilyev:
/cache directory ignore by Google Play update

That's strange, but today I was able to update one app from Google Play without getting 498 error.

1. I originally installed the app (40 Mb) via adb install since was getting 498 error by Google Play.

2. Today I got an update notification by Google Play and pressed Update button. I was able to install the update (40 Mb) from Google Play without any issues. Looks like Google Play was not using /cache directory in this case.

There seems to be a better way to bypass 498 Google Play error without remounting cache directory.
[Connected Car] donaldta:
Not really surprising. That just means updates are downloading to an alternate directory path as opposed to downloading a new app which goes to the /cache directory. Not sure if I would consider that "better" seems to be it is just different.
[Connected Car] getiem:
Have had a read on this stuff. Seems that using an other Market (Appbrain, Amazon etc) will resolve for large applications this problem. Otherwise, a download on PC with Play Apk Downloader and using ADB install also works.
[Connected Car] donaldta:
There are plenty of methods of getting large APKs onto the your unit. I don't think one way is better than the other but maybe more convenient based on one's personal skill level and tools available. I really don't see remounting /cache as a big deal and it can be made to be more convenient by programming tasker to do it for you.

As I mentioned earlier, ES File Explorer (ESFE) has a lot of convenient features for a ROOTed Android device. So, you don't even need to use a PC if you also have an Android smartphone. You can use ESFE on both units; set one with "Remote Manager" enabled which is its FTP server and the other to connect via FTP client and you can transfer files over WiFi between the two units. And of course, once you have an APK in the SCT you can just select it from within ESFE to install it.
[Connected Car] getiem:
I have updated the OP with restructured instructions. I ask everyone who is involved to review the new structure, so no errors are given to unknown users.

Review it here!

Thanks!
[Connected Car] xadax:
I was able to pair my phone with https://play.google.com/store/apps/details?id=org.logpedia.bluetooth. I did not try Auto-Pair yet. So the conclusion is that Bluetooth is possible on the SCT. Pairing your phone will make it loose connection with Sensus, making hands-free operation via Sensus impossible. You could try to move that function to SCT, which I have not tried (but mike and speaker are accessible). I tried to pair to a OBD dongle to get the car data in an OBD app. I could see the OBD dongle over Bluetooth, but could not yet pair it. It seems Auto-Pair could do a better job with pairing.

Perhaps the can-bus is available directly in the SCT through a Parrot Asteroid API, I have seen a non-BT/USB can-bus app for the Asteroid: http://www.drive2.ru/cars/lancia/delta/delta_iii/gokr/journal/2355887/ (it's in Russian, use Google Chrome or translate for this). This could open up two-way communication with the other systems of the car.
[Connected Car] donaldta:
Probably. One of the hurdles that we had for pairing non-smartphones was that Parrot's original method only allowed it to pair devices with pin# 0000. Whereas, Bluetooth Auto-Pair allows manual settings and allowed to overcome that limitation.

I'm not sure if I understand. Is the Sensus different from the Sensus Connected Touch in the same vehicle? In any case, according to the SCT vs Smart PLF comparison that the contacts.apk isn't present.

So, you probably be able to install it for handsfree / sync operations through the SCT. Not sure if you would have to replace ContactsProvider.apk on the SCT with the Smart version though.

Something not commonly known is that Torque Pro can work with USB ODB2 connectors. And there are serial to usb drivers in "system\lib\modules\2.6.35.13-02961-ge12298f\kernel\drivers\usb\serial" for the SCT. so that could be another route to explore.
[Connected Car] getiem:
Volvo audio/car-settings/phone system is called Sensus. It has several possible inputs, like FM radio, USB, Phone calls (via BT), Phone music (via BT), ipod, etc..

In addition to that, the Sensus Connected Touch is one of the extra input devices that we as owners of the SCT have. Other Volvo drivers without SCT, have only the Sensus interface.

We have now 2 bluetooth interfaces in the car:

-Sensus (for phonecalls and audio)

-Sensus Connected Touch (not used, normally)
[Connected Car] donaldta:
Ah, okay. I think that I get it... sort of, anyways... They're not gutting out the old Sensus entirely but replace its display with Parrot's IR-LCD screen and add the FC6100 Ironbox as sort of a "bolt-on accessory" to the original "Sensus" if you will. So, this part of the original Sensus is still there.

So, when Gray1 is referring to the "radio, cd, usb, bluetooth etc" that its a part of original Sensus not the newer Sensus Connected Touch (SCT) add-on.

I guess that I'm a bit confused on how the SCT is muting the sources from the original Sensus, Or perhaps, I just don't understand the level of integration is between the two systems. Does any part of the original Sensus display on the SCT screen? For example, the hands-free Bluetooth service for your smartphone or perhaps the original Sensus' USB music player?
[Connected Car] gekkekoe123:
Okay I finally got some time to make the auto detect version. Please try and report back. If it works then I'll make a on-click solution.

the old arguments still work, but can now also be invoked with without the exploit.

adb push libframalib.so /data/local/.
adb push sploit.jar /data/local/.
adb shell mkdir /data/local/tmp/dalvik-cache
adb shell ANDROID_DATA=/data/local/tmp LD_LIBRARY_PATH=/data/local dalvikvm -cp /data/local/sploit.jar com.alephzain.framaroot.FramaAdbActivity
[or]
adb shell ANDROID_DATA=/data/local/tmp LD_LIBRARY_PATH=/data/local dalvikvm -cp /data/local/sploit.jar com.alephzain.framaroot.FramaActivity

I also made an experimental onclick pack. Please test it. It has adb inside. You need to know your ip address.

Obtaining the ip address:

Go into the SCT>Settings>Wifi and click on your connection details.

usage:

1. Unzip the package
2. Edit connect.bat and replace "YOUR_IP_HERE" with your ip address.
3. run the connect.bat script
4. run the root.bat script
5. optionally install market with the install_market.bat script

After step 4, it should print some success, If it didn't something went wrong and you need to use the manual way.

Oh and thanks to that person that bought me a couple of beers :P