OpenUAT is a modular toolkit and aims to be as self-contained as possible. When third-party components are required for some functionality, they are generally included in the OpenUAT source distribution.
Requirements for compiling OpenUAT
- A Java development environment: For most of the Java source files, almost any Java compiler with language level >= Java 2 will do. For Sun JDKs, this conforms to JDK versions >= 1.2.0, and the Java runtime level supported by J2ME CLDC1.1/MIDP2.0. However, some of the classes use more advanced Java features and require more recent Java releases for to be compiled. The build process can usually figure out the supported Java level and will try to compile only supported classes.
- Ant >= 1.6: The main build process is controlled by the Ant script build.xml.
All other libraries required for compilation are shipped inside the source package in the lib/ directory.
The source distribution also contains .project and .classpath files for Eclipse. To import OpenUAT as an Eclipse project, just create a new project in the workspace and specify the unpacked OpenUAT source tree. It should then automatically compile and run within Eclipse.
Requirements for running OpenUAT
At the moment, most Java runtimes >= Java 1.2 or J2ME will do. Some of the features depend on JNI wrappers, e.g. access to serial ports, Bluetooth, or IPSec configuration, and are therefore dependent on the platform and OS. Best supported are Linux, Windows (>= XP SP2) and MacOS/X.
Compiling OpenUAT is simple, because it is bundled with its requirements:
- Unpack the most recent source package.
- Ensure that the requirements are fulfilled (most notably that ant is available).
- Optionally modify the defined properties in the top section of build.xml to your taste (this should only be necessary when MIDlets should also be created).
- Execute ant with one of the following targets, e.g.:
Main targets for ant:
- jar: Compiles the Java classes and packs them into the appropriate JAR files. When the Sun WTK (Wireless Toolkit) is installed and its path configured correctly in build.xml, then this target will automatically call the jar-midp target to generate MIDlets.
- junit (default target): First runs the jar target and then all the JUnit tests.
android: Compiles Android applications.
- dist: Runs the jar target, creates the Javadoc pages and a ZIP file out of them, creates the Java Webstart packages, and also a source package that should be equivalent to the one unpacked in step 1.
Source code of OpenUAT is publicly available via the (read-only) git repository. The full repository can be cloned anonymously via HTTP:
git clone https://github.com/mobilesec/openuat.git
Registered developers can clone the repository via SSH after their respective public keys were registered to be able to push to the main repository:
git clone email@example.com:mobilesec/openuat.git
Note for Windows users: MsysGit works in combination with plink.exe from Putty (and therefore with SSH agent authentication), but set-up is slightly involved:
- Install current versions of Putty and MsysGit
- Define the environment variable GIT_SSH to point to the plink.exe binary
- Generate a new or import an existing SSH private key with PuttyGen
- Start PAgent and load the private key
- Workaround for a documented plink/MsysGit problem: within the Git Bash shell, call the plink.exe binary once - this will accept the SSH server public key and create whatever plink requires to then allow Git to work with it
- Clone, pull, commit, push, etc.