Attend XDA's Second Annual Developer Conference, XDA:DevCon 2014!
5,808,356 Members 39,139 Now Online
XDA Developers Android and Mobile Development Forum

[VOLVO SCT] Volvo Sensus Connected Touch (car - navi - audio)

Tip us?
 
RichieB
Old
(Last edited by getiem; 16th June 2014 at 02:36 PM.)
#1  
Senior Member - OP
Thanks Meter 64
Posts: 244
Join Date: Jan 2008
Default [VOLVO SCT] Volvo Sensus Connected Touch (car - navi - audio)

Volvo Sensus Connected Touch (SCT) is a new car audio-navi system based on systems of Parrot. SCT has hardware and software from the Parrot, but is not exactly equal. In general it has some more restrictions build in by Volvo.
The system is based on the Parrot FC6100 (not the Parrot Asteroid Smart as was first believed). Looking at the Installation manual for Sensus Connected Touch (ACU) Accessory, Part Number: 31399165 the form factor is closest to the Parrot Asteroid Tablet (PAT). The only similarity that the SCT has with the PAS is Parrot's custom base of the Android 2.3 branch which is also shared by the PAT. So, if anything is more analogous to the Parrot Asteroid Tablet (PAT) than the Parrot Asteroid Smart. (thanks to Donaldta, see post) (Link to the Volvo V40 (MY14) SCT installation manual, also attached to this post as pdf)

This is how the hardware of the SCT looks if outside of the car (thanks to @AAT):





This thread is research and development on several topics and has already some nice answers:
The starting questions:
  1. How to get ADB working y
  2. How to install .apk files y
  3. How to root y

WARNING!:
The below mentioned method is an experimental way of rooting. Rooting your SCT involves some android knowledge. Me, the developers and anyone in this topic are not responsible for typo's or any damage that may occur when you follow these instructions.
ROOTING means you have complete control over the android system. This also means you can do damage to it.

Security warning:
The SCT has ADB over WIFI enabled by default. Never ever connect your Volvo SCT to an unknown and/or untrusted network! Anyone connected to that same network can harm your Volvo SCT. The same applies for connecting unknown people to a known/trusted network of yours.
Security warning 2:
If your ROOTED your SCT, you are extra vulnerable to above. Anyone with ADB on the same network has complete control over your SCT!


WARNING!

Do NOT attempt to replace the SCT's BUSYBOX executable or the command symlinks to it. Another user in this forum just sent me a private message stating that they tried this on their SCT and can no longer mount USB drives or connect to ADB over WiFi. Apparently, they also do not have a File Explorer or a Terminal Emulator installed so it seems this is going to be nearly impossible to fix and will most likely be required to swap it at the dealer.
See message from @donaldta : Message




The below answers are not yet completely reviewed and tested. The answers will be reviewed in the next days. In any case the instructions below are delivered "as is" and have no guaranty. If you follow the instructions below, you are responsible for your own actions. So, before you do so, understand, or at least try to, what you are doing. If you have questions or have recommendations, post them in the topic.

The answers and instructions below are constructed from the work of @gekkekoe123 and @donaldta and the trial and error experiments of the first users of the SCT (see first pages of the topic)
This means everone using these instructions must give BIG THANKS TO @gekkekoe123 and @donaldta


Instructions to root en install apps:

Note: Instructions are tested on specific versions of the Volvo SCT
It is possible that these instructions below are not (yet) working on other versions: Other continents, newer versions etc.
If you tested it on a different continent + version, let me know, so I can put it here.

Available versions:
EU
-1.47.88 - Tested
-1.47.96 - Tested
-1.49.34 Tested
  • One click script version 4 in attachments cmd-frama-menu-4.zip (4.62 MB)
    One-click script with menu provided by @gekkekoe123 and @donaldta
    Oneclick , latest version, script is discussed from here


    It is rather simple as long as You have the SENSUS CONNECTED TOUCH and a PC (prefer a laptop) which You need to connect to the same network.

    How to:
    1. Preparing
    *Download the: cmd-frama-menu-4.zip from the page 1, first post attachments. LINK: http://forum.xda-developers.com/atta...1&d=1395149723

    2. Follow the instructions
    The instructions are rather simple.
    -Connect your SCT to the same Wifi network as your PC. This wifi network can be your home network or your local hotspot from your phone.
    -Unzip the (cmd-frama-menu-4.zip) and start menu.bat found in the folder "menu"
    - After starting menu.bat on your pc it will ask:
    Code:
    Input {IP Address of Android Device} or USB:
    Type in the IP address of the SCT, can be found when You go to the settings on SCT -> WIFI -> and click on the connected network (starts with 192.-).
    After that the menu look list this: (Now just type in: 1 and wait a bit so it will say complete, then type in 2 and wait a bit until complete and so on, until step 6 when the SCT will restart itself)
    Code:
    1 - Copy Framaroot files and execute.
    2 - Install remount.sh into /system/xbin and remount as writeable.
    3 - Alter /system/build.prop to ro.parrot.install-all=true
    4 - Install Google Framework & Android Market
    5 - Install rewhitelist.sh/setpropex/patch init.parrot.capabilities.sh
    6 - Reboot Android Device
    7 - Install Android Packages from APKs folder.
    8 - Android Debug Bridge Shell
    9 - Save ADB Bugreport to Disk
    R - Input connection information & retry ADB connect.
    Q - Quit
    Run steps 1 through 6 in order to root the SCT.
    Step 7 is optional and will install all APKs you have placed inside the APKs folder in your unzipped menu.zip folder on your pc PC.
    Step 8 is for manual commands or troubleshooting.
    Step 9 is for troubleshooting.
    Step R is only needed when the connection to the SCT seems lost.

    3. You should have now a rooted SCT.

    4. Installing applications
    I noticed that lots of Apps from Google Play Store can not be downloaded directly to the SCT(because the SCT is not in the available list of the apps) so a easy way is to download the Applications as ".apk" files from the PC (You can find the desired app from: http://www.appsapk.com/ or http://www.androiddrawer.com/ for example).
    Then copy-paste these .apk files(make sure they do not have any spaces in the filenames) to the folder "APKs" found in the downloaded unzipped folder "cmd-frama-menu-4". To install them, run the menu.bat again and once connected with the SCT again run the step 7 to install the applications You copied to the APK folder.

    5. Enable displaying applications while driving (disable safety feature)
    1. Download Android Terminal Emulator from Google Play Store on Your rooted SCT.
    2. Once installed, run Android Terminal Emulator under Applications
    3. touch the screen - the keyboard pops up
    4. Type in "su" press ENTER
    5. It should ask wether You allow Superuser or not, choose the "Allow" option.
    6. Type in "rewhitelist.sh" press ENTER
    7. Type in "reboot" press ENTER

    Now You should be done. Happy downloading and drive safely.

    Older instructions, just for reference here, do not follow anymore.

  • One-click script with menu provided by @gekkekoe123 and @donaldta
    This one-click script with menu options is here
  • One click script for version 1.49.34: http://forum.xda-developers.com/show...php?p=50846498
    Quote:
    Originally Posted by gekkekoe123 View Post
    Actually it was fine (since we are in the root folder), but since I was too lazy, I used your file. I had to correct the "true" to 1.
    I also changed the menu to do this. I removed the set prop option, it's not needed anymore. Setpropex should also work on older versions.

    Btw, I did the upgrade manually using adb shell, and did not used the menu.bat.
    So if anyone could test it or double check the menu.bat file, it should be fine. I translated the manual commands back into the menu.bat

    My SCT is upgraded and I am able to install apks Let's find out if waze lost of data is fixed. Also adjusting screen dpi is still working. But we now have setpropex so we can override everything

    When you finished step 5, you need to reboot in order to be able to install apks.

    As allways: no guarantee and at your own risk when using the tools
     


    Manual instructions and commands:
    1. Detailed instructions how to get ADB working between your pc and SCT
      1. Download the Android SDK, it contains the nescesary tools like ADB.exe and Monitor.bat (Download page Android SDK)
      2. Install the android SDK
      3. If you are using windows: set the installation path of your SDK\platform-tools\ in your windows environment variables. So, add c:\\SDK\Platform-tools\ to it. (More instructions on this point)
      4. Now connect your SCT to a Wifi network and also connect your laptop/pc to the same wifi network. This network can be your home network, or for example the wifi network you create with your phone wifi-tether function.
      5. Go into the SCT>Settings>Wifi and click on your connection details. Find out the IP adress of your SCT. (example, it would be something like 192.168.43.x if you are using wifi tether from your android phone. )
      6. Now on your pc, open the command line (cmd). Easiest is to click with shift-button hold and with Right-Mouse-Button on the folder where the files reside you want to transfer to the SCT (see instructions further for rooting). After RMB click, choose option: open command line here.
      7. Now type:
        Code:
        adb connect $IPADDRESS
        Replace $IPADRESS with the IP from the previous step.
      8. ADB is now connected and you are ready to type the instructions for rooting.
        Code:
        D:\sdk\platform-tools>adb connect 192.168.43.5
        connected to 192.168.43.5:5555


    2. Detailed instructions how to Root SCT
      1. Download the cmd-frama-working.zip from the attachments
        Attachment
      2. Unzip it into a folder (example: d:\sct\ )
      3. Open the commandline in this folder
      4. Connect to adb (see instructions above)
      5. Do the following commands (line by line):
        Usage:
        Code:
        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 Gimli 0
        [or]
        adb shell ANDROID_DATA=/data/local/tmp LD_LIBRARY_PATH=/data/local dalvikvm -cp /data/local/sploit.jar com.alephzain.framaroot.FramaActivity Gimli 0
        See post here and thank developer!
      6. Now you are rooted:
        Code:
        cmd line frama root by Gekkekkoe
        Credits to alephzain for Framalib
        using Exploit: Gimli choice: 0
        Executing Check
        idx: 0 value: Gimli
        idx: 1 value: Aragorn
        Executing Check Completed
        No such user 'root:root'
        No such user 'root:root'
        Result: 0
      7. Test root by command:
        Code:
        adb shell
        su
        id
        On the SCT you will get a screen of SuperSU, asking if shell may have root access privileges. Say yes.
      8. exit the su and shell using
        Code:
        exit
        exit
      9. Reboot the SCT
        If you are still within shell, just use
        Code:
        reboot
        If you are on command line again, use
        Code:
        Adb Reboot
    3. Detailed instructions how to get Google framework and Google Play (market) on the SCT
      1. Download the files for framework and market

        Framework
        Market
      2. Push them to your SCT
        Code:
        adb shell su root -c 'mount -o remount,rw ubi0:system /system'
        adb push GoogleServicesFramework-2.2.1.apk /data/local/.
        adb push Market-3.3.11.apk /data/local/.
        adb shell
      3. Now install them
        Code:
        cp /data/local/*.apk /system/app/.
        chmod 644 /system/app/GoogleServicesFramework-2.2.1.apk
        chmod 644 /system/app/Market-3.3.11.apk
        reboot
      4. After reboot, connect the SCT to internet
      5. Open the google market on your SCT (in the applications drawer)
      6. Log in with your google credentials
      7. Accept terms and conditions
      8. Be sure to stay connected to internet, google market will update itself after some minutes
      9. Connect Adb and force SCT to reboot again.
      10. Open Market/Play and Accept terms and conditions again! (now for the updated versions)
      11. Wait for some time, it will again update itself again.
      12. Open adb, force reboot again
      13. Last time open Play (It should be named Play now, since it is updated, if it is not, wait longer and try previous steps again)
      14. Go into My Apps, update SuperSu
      15. After update, open SuperSu from your app drawer
      16. It will ask to update SuperSu Binary, use Normal Method
      17. Say thanks to Chainfire for the SuperSu
      18. In settings, you can disable the popup that will ask if you want to run an App that is using root. Can be convenient, but also dangerous (apps can use root even without notifying you.)

    4. Detailed instructions how to installation of other apps
      1. We have to enable installing all apps on SCT. Warning, this means editing the build.prop, which is vital to the system. Typing errors can result in a system that will not boot correctly.


        More methods apply here, use one which is convenient to you:
      2. Fast method:
        Code:
        adb shell
        mount -o remount,rw ubi0:system /system
        sed -i 's/ro.parrot.install.allow-all=false/ro.parrot.install.allow-all=true/' /system/build.prop
      3. Slow method, more control, moderate risk:
        Code:
        adb pull /system/build.prop
        edit content and set to true. Content of the file should look like this
        Code:
        #TODO Set to false for prod #Package install limitations. Set to false to allow only the install of verified packages 
        ro.parrot.install.allow-all=true
        replace build.prop with proper one.
        Code:
        adb shell su root -c 'mount -o remount,rw ubi0:system /system'
        adb push build.prop /system/build.prop
        If above does not work, use method like the google framework.
      4. Third method: install ES file explorer, use the rooting functions of this app to edit build.prop
        Instructions in this post and this post
    5. Detailed instructions how to install APK files
      1. Method 1: Use google play
      2. Method 2: If not available on google play, use a Google Play APK downloader on your pc and install using the
        Code:
        ADB install
        or using
        ES Fileexplorer mentioned above
    6. Detailed instructions how to make apps available during driving

      All apps are behind a security wall of the SCT. When driving >5km/h, all apps not listed in the whitelist.xml will be disabled. To enable your installed apps you have to edit the whitelist.xml
      Warning: it is a safety feature you are disabling now, it is your own responsability when using apps during driving
      1. Slow method:
      2. Get the whitelist.xml from your SCT

        Code:
        adb pull /system/etc/whitelist.xml
      3. Find out which packages are installed and have to be listed there:
        Code:
        adb shell
        pm list packages
        Other method, look to the url of google play on your pc, see bold part: https://play.google.com/store/apps/details?id=com.estrongs.android.pop
      4. List the packages by adding new lines with the package names
      5. Edit the whitelist.xml using a smart text editor. Preferably use Notepad++
      6. Copy the whitelist back to SCT

        Code:
        adb push whitelist.xml /data/local
        adb shell
        su
        mount -o remount,rw ubi0:system /system
        cp /data/local/whitelist.xml /system/etc
        reboot


        Scripted method:
      7. Download script
      8. Instructions in this post



  • FAQ
    1. Audio is not working when using application X
      This is a feature or limitation by design
      - TomTom and other navigation apps will break Sound/Audio due to this feature.
    2. If you have more, PM me or react in topic

  • TIPS
    1. Use a USB keyboard in combination with ES file explorer or a Shell app to edit files on the system.
    2. If you have more, PM me or react in topic








Informational links:

Information about SCT:
http://www.volvocars.com/intl/sales-...s/default.aspx
Official FAQ of SCT:
http://www.volvocars.com/intl/top/su...touch-faq.aspx
Dutch experiences with SCT:
http://www.volvo-forum.nl/viewtopic....er=asc&start=0


SCT update files:
http://www.parrot.com/nl/support/sensus-connected-touch
Current version: All regions - 1.49.34

How to unpack the update (.plf) files:
Download the plftool
Basically, download, unzip, and go into the command line, the binaries directory and use the command syntax, "plftool -i -o "
And please take the time to thank hoppy_barzed for hosting it for us and for loveshackdave for providing the tool to use it.


Linked topic of Parrot Asteroid Smart:
http://forum.xda-developers.com/show....php?t=2118432
The Following 16 Users Say Thank You to RichieB For This Useful Post: [ Click to Expand ]
 
getiem
Old
(Last edited by getiem; 18th September 2013 at 08:13 AM.)
#2  
getiem's Avatar
Member
Thanks Meter 46
Posts: 97
Join Date: Apr 2008

 
DONATE TO ME
Post Developments of other users (copied from PAS topic)

Quote:
Originally Posted by donaldta View Post

Alright, I found an interesting startup script for the SCT. The path inside the archive is "FileSystem\system\etc\set_adb_usb.sh"
Code:
#!/system/bin/sh
#
# Author: Yann Sionneau <yann.sionneau@parrot.com>
#
# This script is called by a udev rule when a cable is plugged in USB0 port.
# This script sets adb.tcp.port to -1 meaning that ADB will then listen on USB
# instead of TCP/IP.
# Then this script will restart adbd service

export PATH=/system/bin:/system/xbin

if [ -f /tmp/cache/others/adb_usb ]
then
	exit 0
fi

touch /tmp/cache/others/adb_usb

setprop 
service.adb.tcp.port -1

stop adbd
start adbd
This leads me to believe the Android Debug Bridge (ADB) is running over TCP by default, sort of like on the original Google TV. So, you might be able to download the Android Developer Tools. Unzip it, and then at the command line use "platform-tools\adb connect <IP.address.of.SCT>" to connect to your SCT and install third party apps by either using "platform-tools\adb install <package_name>" or use the GUI, "\tools\monitor.bat" Either than or try and figure out which port on the SCT is USB 0 which turns into a ADB port when something is connected to it.

On a side note, I'm a little tired of having to respond to people about giving access to the SCT software when it is already available. The download is listed above, I fixed the link to make it even easier. All anyone needs to extract the files from the archive is the plftool that loveshackdave created and mentioned in this post.

Quote:
Originally Posted by loveshackdave View Post
Okay, I've posted the binaries and source for my .NET plftool project here. I've handled the symlink sections by simply creating a file called [filename].simlink that contains the section data. The should be fine for rebuilding the plf file. I've still got to handle the file permissions byte and figure out what the 2 unknown uint's are in the file_action header. the permissions shouldn't be too much of an issue, I'm thinking of creating a filesystem meta-data file that will hold all this information for rebuilding, unless anyone has any better ideas.
Basically, download, unzip, and go into the command line, the binaries directory and use the command syntax, "plftool -i <input_file> -o <output_directory>"

And please take the time to thank hoppy_barzed for hosting it for us and for loveshackdave for providing the tool to use it.
Quote:
Originally Posted by johnnie_w View Post
I succeeded in connecting to SCT over ADB. ADB is indeed enabled over TCP/IP by default. So I tried to install an apk:

Code:
C:\android\adt-bundle-windows-x86-20130911\sdk\platform-tools>adb install c:\android\apk\Framaroot-1.6.0.apk
285 KB/s (2124410 bytes in 7.265s)
        pkg: /data/local/tmp/Framaroot-1.6.0.apk
Failure [INSTALL_FAILED_INVALID_APK]
Hmm, this didn't work. The logcat output:


Code:
D/AndroidRuntime( 2786): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
D/AndroidRuntime( 2786): CheckJNI is OFF
D/dalvikvm( 2786): creating instr width table
D/AndroidRuntime( 2786): Calling main entry com.android.commands.pm.Pm
D/dalvikvm( 2041): GC_EXPLICIT freed 10K, 50% free 2735K/5379K, external 2801K/3132K, paused 44ms
W/ActivityManager( 1366): No content provider found for:
W/ActivityManager( 1366): No content provider found for:
D/PackageParser( 1366): Scanning package: /data/app/vmdl-1074467422.tmp
W/PackageParser( 1366): Signatures files not found.
D/PackageManager( 1366): Scanning package com.alephzain.framaroot
W/PackageParser( 1366): Signatures files not found.
W/PackageManager( 1366): Package couldn't be installed in /data/app/com.alephzain.framaroot-1.apk
It looks like it's searching for a specific file. This is probably because installation from Unknown Sources is disabled, and I can't enable it in the sqlite database because it's not readable without root. Hmm, chicken and egg problem. Any help would be greatly appreciated!
Quote:
Originally Posted by donaldta View Post
Okay, let's try installing something a little more legitimate than Framaroot first, since that absolutely needs the "unknown sources" to be enabled. We might have to learn how to crawl before we can run.

It seems like it is looking for the package's signature file. Try something like ESFileExplorer_120.apk or another Android Market app which should have the proper signatures inside of it. I tested it myself on the Asteroid Smart by uninstalling ES File Explorer, disabling "Unknown Sources", rebooting it, and then re-installing it via ADB.

Otherwise try other things such as "adb remount" which remounts the rootfs as writeable, "adb push <package_name.apk> /data/app" this attempts to copy the packing into the user's install directory, "adb push <package_name.apk> /data/system" this attempts to copy the package into the system. If you're used to linux command line then play around with "adb shell" to see what opportunities exists. Is this where you tried "sqlite3 /data/data/com.android.providers.settings/databases/settings.db"? If you can't do it directly, maybe copy settings.db to the sdcard and use sqlite3 to edit it then copy the modified version over? Unfortunately, I don't have a SCT so we'll need someone with one that can tinker with linux/android to help find a way.

Nice work
The Following User Says Thank You to getiem For This Useful Post: [ Click to Expand ]
 
johnnie_w
Old
#3  
Member
Thanks Meter 21
Posts: 52
Join Date: Aug 2007
How to get ADB working?

ADB is enabled over TCP/IP by default. This means that you only need to get the IP address of the device, and you can connect to it using
Code:
adb connect $IPADDRESS
when connected to the same network. If you want to connect over USB, just plug in a USB cable in USB0 (I don'tknow yet which one this is), and ADB should switch to USB.

What can we do with ADB?

I only tried once, but I was able to get a shell. Busybox is installed, so all regular Linux commands are available. The /data directory is not accessible directly, we need root for that.

Can I just install Framaroot?

No, I wasn't able to install Framaroot directly. It complained about the signature, which is probably caused by the fact that installation from unknown sources is disabled.

So, what is the first step to be done?

I think the first step is to enable installation from unknown sources, and then install a filemanager or root the SCT. This can be done with something like:

Code:
adb pull /data/data/com.android.providers.settings/databases/settings.db settings.db
sqlite3 settings.db "update secure set value=1 where name='install_non_market_apps';"
adb push settings.db /data/data/com.android.providers.settings/databases/settings.db
So let's try and fix this thing!
The Following User Says Thank You to johnnie_w For This Useful Post: [ Click to Expand ]
 
santu001
Old
#4  
santu001's Avatar
Senior Member
Thanks Meter 45
Posts: 535
Join Date: Mar 2010
Location: Regio Amsterdam
Thanks for the topic! Of course I'll be following closely!
Greetings Claudio,

Device One: HTC One Max
Device Two: Volvo/Parrot XDA SCT-ADW EX.

The Old Days:

Devices old: HTC One, One X(+), Sensation, DHD, HD2 Leo!!
WinMO: Artemis 42.0 WWE NLD, SPL 3.03 2.15.50.14
Android: Mdeejay FroYo HD v.4.6
Kernel: Hastarin R8.6 Standard
Autoloader: Exceller Multiple Build Loader 2.1a, Quicklink in winmo startup folder.
Custom: CHT+CHTeditor v.2.0 Final, DJC Taskbar Leo 6.5, Rat Softkeybar & Notifications, BsB tweaks 1.6
The Following User Says Thank You to santu001 For This Useful Post: [ Click to Expand ]
 
Zakraket
Old
#5  
Member
Thanks Meter 7
Posts: 74
Join Date: Oct 2008
Quote:
Originally Posted by santu001 View Post
Thanks for the topic! Of course I'll be following closely!
Same here!
If I can be of any help (although I can't see how )
The Following User Says Thank You to Zakraket For This Useful Post: [ Click to Expand ]
 
getiem
Old
(Last edited by getiem; 18th September 2013 at 10:53 AM.)
#6  
getiem's Avatar
Member
Thanks Meter 46
Posts: 97
Join Date: Apr 2008

 
DONATE TO ME
Since we can't change the setting non_market directly, android central developed a script to install without modify.

Maybe we can try this one?
http://forums.androidcentral.com/and...e-v-1-2-a.html
Only prerequisite is connection over ADB. No root required.

Hmm, looking into the sources it seems just a pair of batch files. I don't see magic inside it, other then a plain ADB install command.
The Following User Says Thank You to getiem For This Useful Post: [ Click to Expand ]
 
donaldta
Old
#7  
donaldta's Avatar
Senior Member
Thanks Meter 451
Posts: 1,325
Join Date: Aug 2013

 
DONATE TO ME
Quote:
Originally Posted by johnnie_w View Post
I think the first step is to enable installation from unknown sources, and then install a filemanager or root the SCT. This can be done with something like:

Code:
adb pull /data/data/com.android.providers.settings/databases/settings.db settings.db
sqlite3 settings.db "update secure set value=1 where name='install_non_market_apps';"
adb push settings.db /data/data/com.android.providers.settings/databases/settings.db
So let's try and fix this thing!
I think the first step is to test installing packages other than Framaroot, maybe something from the Google Play Store or Asteroid Market via ADB.

Quote:
Originally Posted by getiem View Post
Since we can't change the setting non_market directly, android central developed a script to install without modify.

Maybe we can try this one?
http://forums.androidcentral.com/and...e-v-1-2-a.html
Only prerequisite is connection over ADB. No root required.

Hmm, looking into the sources it seems just a pair of batch files. I don't see magic inside it, other then a plain ADB install command.
I believe that is because ADB is considered a "trusted source", so you can install software through it. This is how AT&T users were able to install Android Packages a long time ago while the Market app wasn't available and the "allow unknown sources" option was removed from settings. The only caveat is that the packages needs to be signed.
The Following 2 Users Say Thank You to donaldta For This Useful Post: [ Click to Expand ]
 
johnnie_w
Old
#8  
Member
Thanks Meter 21
Posts: 52
Join Date: Aug 2007
Quote:
Originally Posted by donaldta View Post
I think the first step is to test installing packages other than Framaroot, maybe something from the Google Play Store or Asteroid Market via ADB.
I agree on that. I have downloaded several APK's to my laptop and will test in a few hours. I'll let you know!
 
donaldta
Old
(Last edited by donaldta; 18th September 2013 at 02:02 PM.)
#9  
donaldta's Avatar
Senior Member
Thanks Meter 451
Posts: 1,325
Join Date: Aug 2013

 
DONATE TO ME
Quote:
Originally Posted by johnnie_w View Post
I agree on that. I have downloaded several APK's to my laptop and will test in a few hours. I'll let you know!
Btw, I found this topic on Stack Overflow particularly interesting.

Quote:
Android Known Sources

So I have looked through the Android Open Source Project (AOSP) Source code now to see how that Unknown Sources check is done. It is more complicated than known source = android play.

So first of all for background, that Unknown Sources check and message are generated by INSTALL_NON_MARKET_APP. This flag comes up in few places, but the main place is in PackageInstallerActivity. Infact, this is the only place in AOSP where it comes up and is used to some effective degree. Let's look at that here:

Code:
String callerPackage = getCallingPackage();
    if (callerPackage != null && intent.getBooleanExtra(
            Intent.EXTRA_NOT_UNKNOWN_SOURCE, false)) {
        try {
            mSourceInfo = mPm.getApplicationInfo(callerPackage, 0);
            if (mSourceInfo != null) {
                if ((mSourceInfo.flags&ApplicationInfo.FLAG_SYSTEM) != 0) {
                    // System apps don't need to be approved.
                    initiateInstall();
                    return;
                }
            }
        } catch (NameNotFoundException e) {
        }
    }
    if (!isInstallingUnknownAppsAllowed()) {
         //ask user to enable setting first
         showDialogInner(DLG_UNKNOWN_APPS);
         return;
     }
    initiateInstall();
So PackageInstaller is a package included with AOSP that understands how to handle the ACTION_VIEW intent for APK files. PackageInstaller checks two things before it allows an app to be installed.

That the app is a system app. If an app is a system app, it doesn't care, it tells the package manager to install your app. This means that if Samsung puts their Samsung market store as a system app on Samsung devices, then it is automatically a trusted source. Infact, it will skip step 2 here.

If that system flag is not set. If that flag is not set, and thus you are not a system app, then therefore you are not a trusted source. That being said, System apps can also skip the package installer and just go straight to calling the hidden function installPackage which can be found in PackageManagerService. This seems to be what the GooglePlayStore does, as when I disable the installation capabilities on PackageInstallerActivity I can still install apks just fine.

So to sum up: Known sources are SYSTEM APPS not just applications downloaded from google play. Google play completely circumvents the INSTALL_NON_MARKET_APP flag because it does not use the PackageInstaller. If you create an app that is not a system app, your only method for installing APKs is to use the PackageInstaller. Since your app is not a system app it will check to see if unknown sources is disabled.
The Following User Says Thank You to donaldta For This Useful Post: [ Click to Expand ]
 
getiem
Old
#10  
getiem's Avatar
Member
Thanks Meter 46
Posts: 97
Join Date: Apr 2008

 
DONATE TO ME
Quote:
Originally Posted by donaldta View Post
Btw, I found this topic on Stack Overflow particularly interesting.
There is also a second system, app verification. Does that come into play here?

http://www.androidos.in/2013/07/goog...2-3-or-higher/
https://support.google.com/accounts/.../2812853?hl=en

Tags
car audio, sct, sensus connected touch, volvo
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes