Copyright 2013-2014. North Carolina State University and Technische Universität Darmstadt. All rights reserved.
ASM has been open sourced for general non-commercial purposes (including research, academic, evaluation and personal use) under the BSD 3-Clause Licence (changes to the Android OS and system applications) and GPLv2 Licence (changes to the Linux kernel). By downloading or using this software, (1) you accept the terms and conditions of the aforementioned open source licenses and (2) acknowledge that commercial use could require a commercial license. For a commercial license, please contact NCSU Technology Transfer at techtransfer[at]ncsu.edu and copy asm[at]trust.cased.de.
We currently provide required changes to the mako branch of the msm Linux/Android 3.4 kernel, so out of the box the LG Nexus 4 is supported by ASM. Porting ASM to other kernels should be straightforward.
Getting the Sourcecode
To get access to the ASM sourcecode, please send the following information to: asm[at]trust.cased.de :
Your Name Your Affiliation Your SSH Public Key Intended Use: non-commercial, commercial or academic
Please note that we will publish your affiliation (e.g., your university or company) on our website once we fulfill your request. If you do not want this information to appear on our website please tell us in your request email.
We will notify you as soon as we have fulfilled your request.
Configure your ssh client. For instance:
$ cat .ssh/config Host git.androidsecuritymodules.org HostName git.androidsecuritymodules.org IdentityFile ~/.ssh/<your private key file>
Verify that you can connect to git.androidsecuritymodules.org via ssh. The public key fingerprint should be : f8:63:55:f2:27:0b:a2:d5:cc:da:b5:6e:b5:40:76:c3. Accept the key!
$ ssh email@example.com info
To build ASM, first setup an AOSP development environment as described here.
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.4_r1.2 $ repo sync
Checkout the ASM manifest:
$ git clone -b asm_project_release firstname.lastname@example.org:asm/manifests $ mkdir .repo/local_manifests $ cp manifests/local_manifest.xml .repo/local_manifests/
Synchronize the repository again:
$ repo sync
Build the kernel (we have implemented ASM on the LG Nexus 4 GSM (mako), which uses the msm kernel) using the mako_defconfig configuration file. Change the “-j” parameter to match your machine specs (nr. of jobs).
$ cd kernel/msm $ ARCH=arm SUBARCH=arm CROSS_COMPILE=../../prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi- make -j8 mako_defconfig $ ARCH=arm SUBARCH=arm CROSS_COMPILE=../../prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi- make -j8 $ cd ../..
Note: Only SELinux and ASM LSM will work correctly in this kernel at this time, other LSMs will need further modifications. The patchset for multi-LSM support can be found here.
Now build ASM:
$ . build/envsetup.sh $ lunch aosp_mako-userdebug $ make -j8