1:BUILD_BY[name] student5 1:BUILD_ENVIRONMENT[operating system 32 vs 64] 1:END_BUILD_ENVIRONMENT 1:DEPENDENCIES[list of dependencies with where to get them] 1. Android OS 1:END_DEPENDENCIES 1:NOTES[notes on attempted build] Gave the following on Ubuntu. The setup proceeds but fails to generate the output as described in the procedure. student@ubuntu:~/Downloads/builds/ccs12/AuZHL/PScout/ANDROID$ ../bin/setupanalysis.sh ./ Setting up analysis... Getting relevant .class files... No such file or directory at ../bin/getclasses.pl line 8. ls: cannot access *.jar: No such file or directory Parsing AndroidManifest.xml files... Can't locate XML/Simple.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at /home/student/Downloads/builds/ccs12/AuZHL/PScout/ANDROID/../bin/parseandroidmanifest.pl line 3. BEGIN failed--compilation aborted at /home/student/Downloads/builds/ccs12/AuZHL/PScout/ANDROID/../bin/parseandroidmanifest.pl line 3. mv: `contentproviderpermission' and `/home/student/Downloads/builds/ccs12/AuZHL/PScout/ANDROID/contentproviderpermission' are the same file mv: `providerauth' and `/home/student/Downloads/builds/ccs12/AuZHL/PScout/ANDROID/providerauth' are the same file mv: `intentpermission' and `/home/student/Downloads/builds/ccs12/AuZHL/PScout/ANDROID/intentpermission' are the same file Generating 3rd party permission list... Can't locate XML/Simple.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at ../bin/parsepermission.pl line 3. BEGIN failed--compilation aborted at ../bin/parsepermission.pl line 3. Creating empty dummy GSMPhone$1 class... mv: cannot move `GSMPhone$1.class' to `./com/android/internal/telephony/gsm/': No such file or directory Copying current.txt... cp: cannot stat `.//frameworks/base/api/current.txt': No such file or directory Please run the following line to test setup: runsoot dump.DumpClass com.android.internal.telephony.gsm.GSMPhone If no error, please run the following line to start analysis: ../bin/dumpclass.sh student@ubuntu:~/Downloads/builds/ccs12/AuZHL/PScout/ANDROID$ testsetup testsetup: command not found student@ubuntu:~/Downloads/builds/ccs12/AuZHL/PScout/ANDROID$ ../bin/dumpclass.sh Thu Sep 26 13:32:27 MST 2013 Thu Sep 26 13:32:27 MST 2013 student@ubuntu:~/Downloads/builds/ccs12/AuZHL/PScout/ANDROID$ ../bin/postprocess_1.sh Building basic callgraph... No such file or directory at ../bin/buildcallgraph.pl line 20. Creating send messages edges... No such file or directory at ../bin/analyzemessages.pl line 9. Creating RPC edges... No such file or directory at ../bin/createrpcedge.pl line 26. Removing RPC edges... Generating permission string checks... No such file or directory at ../bin/analyzepermissionusage.pl line 46. Generating content provider checks... No such file or directory at ../bin/analyzeurifield.pl line 24. Identifying intents with dynamic permission... No such file or directory at ../bin/analyzeintent.pl line 18. Please run ../bin/intentpermissioncheck.sh student@ubuntu:~/Downloads/builds/ccs12/AuZHL/PScout/ANDROID$ ../bin/intentpermissioncheck.sh Thu Sep 26 13:32:59 MST 2013 Thu Sep 26 13:32:59 MST 2013 student@ubuntu:~/Downloads/builds/ccs12/AuZHL/PScout/ANDROID$ ../bin/postprocess_2.sh Generating intent permission check... No such file or directory at ../bin/analyzeintentcheck.pl line 45. Generating broadcaststicky check... First apimapping pass... Can't locate XML/Simple.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at ../bin/apimapping.pl line 3. BEGIN failed--compilation aborted at ../bin/apimapping.pl line 3. Generating dynamic content provider check... No such file or directory at ../bin/analyzereachedprovider.pl line 24. No such file or directory at ../bin/analyzeurifield.pl line 24. Second apimapping pass... Can't locate XML/Simple.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at ../bin/apimapping.pl line 3. BEGIN failed--compilation aborted at ../bin/apimapping.pl line 3. Generating stats... grep: publishedapimapping: No such file or directory No such file or directory at ../bin/generatestats.pl line 9. DONE! student@ubuntu:~/Downloads/builds/ccs12/AuZHL/PScout/ANDROID 1:END_NOTES 2:BUILD_BY[name] student8 2:BUILD_ENVIRONMENT[operating system 32 vs 64] Ubuntu 12.04 64-bit $ java -version java version "1.6.0_45" Java(TM) SE Runtime Environment (build 1.6.0_45-b06) Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode) 2:END_BUILD_ENVIRONMENT 2:DEPENDENCIES[list of dependencies with where to get them] java 6 from http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html XML::Simple sudo perl -MCPAN -e shell cpan[1]> install XML::Simple sudo apt-get install git gnupg flex bison gperf build-essential \ zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \ libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \ libgl1-mesa-dev g++-multilib mingw32 tofrodos \ python-markdown libxml2-utils xsltproc zlib1g-dev:i386 2:END_DEPENDENCIES 2:NOTES[notes on attempted build] # Install XML::Simple $ sudo perl -MCPAN -e shell cpan[1]> install XML::Simple # Install Oracle Java 6 $ chmod +x jdk-6u45-linux-x64.bin $ mkdir oraclejava6 $ cd oraclejava6/ $ ../jdk-6u45-linux-x64.bin $ cd jdk1.6.0_45/ $ cd bin $ export PATH=$PATH:`pwd` $ cd .. $ export ANDROID_JAVA_HOME=`pwd` $ export JAVA_HOME=`pwd` $ cd ../../ # Download and compile Android 4.1.1 $ sudo apt-get install git gnupg flex bison gperf build-essential \ zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \ libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \ libgl1-mesa-dev g++-multilib mingw32 tofrodos \ python-markdown libxml2-utils xsltproc zlib1g-dev:i386 $ mkdir ~/bin $ PATH=~/bin:$PATH $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo $ chmod a+x ~/bin/repo $ mkdir android $ cd android $ repo init -u https://android.googlesource.com/platform/manifest -b android-4.1.1_r6.1 $ repo sync $ source build/envsetup.sh $ lunch full-eng $ make -j4 # Run PScout $ cd .. $ tar -xzf PScout.tar.gz $ cd PScout $ source bin/setup_env $ mkdir android_class $ cd android_class $ ../bin/setupanalysis.sh ../../android/ $ testsetup $ ../bin/dumpclass.sh Mon Jul 28 21:50:38 MST 2014 Processing com.beetstra.jutf7.UTF7StyleCharsetEncoder ---------- real 0m1.521s user 0m3.522s sys 0m0.091s Processing com.beetstra.jutf7.UTF7StyleCharset ---------- real 0m1.310s user 0m3.087s sys 0m0.085s Processing com.beetstra.jutf7.ModifiedUTF7Charset ---------- real 0m1.294s user 0m2.989s sys 0m0.084s Processing com.beetstra.jutf7.CharsetProvider ---------- real 0m1.411s user 0m3.278s sys 0m0.090s Processing com.beetstra.jutf7.UTF7Charset ---------- real 0m1.294s user 0m3.005s sys 0m0.084s Processing com.beetstra.jutf7.UTF7StyleCharsetDecoder ---------- real 0m1.518s user 0m3.545s sys 0m0.092s ... ... ... $ ../bin/postprocess_1.sh Building basic callgraph... Creating send messages edges... Creating RPC edges... Removing RPC edges... Generating permission string checks... Generating content provider checks... Identifying intents with dynamic permission... ---------- PERMISSION:android.permission.CHANGE_WIFI_STATE ---------- ---------- PERMISSION:android.permission.READ_PHONE_STATE ---------- ---------- ---------- ... ... ... $ ../bin/intentpermissioncheck.sh Tue Jul 29 11:10:03 MST 2014 Processing com.beetstra.jutf7.UTF7StyleCharsetEncoder ---------- real 0m1.423s user 0m3.369s sys 0m0.104s Processing com.beetstra.jutf7.UTF7StyleCharset ---------- real 0m1.293s user 0m3.017s sys 0m0.101s Processing com.beetstra.jutf7.ModifiedUTF7Charset ---------- real 0m1.274s user 0m2.952s sys 0m0.095s ... ... ... $ ../bin/postprocess_2.sh Generating intent permission check... Generating broadcaststicky check... First apimapping pass... Generating dynamic content provider check... Second apimapping pass... Generating stats... DONE! 2:END_NOTES