<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.metasploit</groupId>
	<artifactId>Metasploit-AndroidLibrary</artifactId>
	<version>1-SNAPSHOT</version>
	<packaging>apk</packaging>
	<name>Android Meterpreter</name>

	<properties>
		<deploy.path>../../metasploit-framework</deploy.path>
	</properties>
	<dependencies>
		<dependency>
			<groupId>com.google.android</groupId>
			<artifactId>android</artifactId>
			<version>1.6_r2</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>com.metasploit</groupId>
			<artifactId>Metasploit-JavaPayload</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>com.metasploit</groupId>
			<artifactId>Metasploit-Java-Meterpreter</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>com.metasploit</groupId>
			<artifactId>Metasploit-Java-Meterpreter-stdapi</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>com.metasploit</groupId>
			<artifactId>Metasploit-AndroidPayload</artifactId>
			<version>${project.version}</version>
			<scope>provided</scope>
		</dependency>
	</dependencies>
	<build>
		<finalName>${project.artifactId}</finalName>
		<sourceDirectory>src</sourceDirectory>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>com.jayway.maven.plugins.android.generation2</groupId>
					<artifactId>android-maven-plugin</artifactId>
					<version>3.7.0</version>

					<extensions>true</extensions>
				</plugin>
			</plugins>
		</pluginManagement>
		<plugins>
			<plugin>
				<groupId>com.jayway.maven.plugins.android.generation2</groupId>
				<artifactId>android-maven-plugin</artifactId>
				<configuration>
					<sdk>
						<!-- platform or api level (api level 10 = platform 2.3)-->
						<platform>10</platform>
					</sdk>
				</configuration>
			</plugin>
		</plugins>
	</build>
	<profiles>
		<profile>
			<!-- deploy built files to Metasploit data directory -->
			<id>deploy</id>
			<build>
				<plugins>
					<plugin>
						<artifactId>maven-antrun-plugin</artifactId>
						<version>1.7</version>
						<executions>
							<execution>
								<phase>package</phase>
								<goals>
									<goal>run</goal>
								</goals>
								<configuration>
									<target>
										<condition property="dx.filename" value="dx.bat">
											<os family="windows" />
										</condition>
										<property name="dx.filename" value="dx" />

										<echo>Building shell</echo>
										<delete dir="${project.basedir}/target/dx" />
										<mkdir dir="${project.basedir}/target/dx/shell" />
										<copy todir="${project.basedir}/target/dx/shell">
											<fileset dir="${project.basedir}/target/classes">
												<include name="androidpayload/stage/Shell.class" />
											</fileset>
											<zipfileset src="${com.metasploit:Metasploit-JavaPayload:jar}" includes="javapayload/stage/StreamForwarder.class" />
											<zipfileset src="${com.metasploit:Metasploit-JavaPayload:jar}" includes="javapayload/stage/Stage.class" />
										</copy>
										<exec executable="${android.sdk.path}/platforms/android-3/tools/${dx.filename}" failonerror="true">
											<arg value="--verbose" />
											<arg value="--dex" />
											<arg value="--output=${project.basedir}/../../${deploy.path}/data/android/shell.jar" />
											<arg value="${project.basedir}/target/dx/shell" />
										</exec>

										<echo>Building meterpreter stage</echo>
										<mkdir dir="${project.basedir}/target/dx/metstage" />
										<copy todir="${project.basedir}/target/dx/metstage">
											<fileset dir="${project.basedir}/target/classes">
												<include name="androidpayload/stage/Meterpreter.class" />
											</fileset>
											<zipfileset src="${com.metasploit:Metasploit-JavaPayload:jar}" includes="javapayload/stage/Stage.class" />
										</copy>
										<exec executable="${android.sdk.path}/platforms/android-3/tools/${dx.filename}" failonerror="true">
											<arg value="--verbose" />
											<arg value="--dex" />
											<arg value="--output=${project.basedir}/../../${deploy.path}/data/android/metstage.jar" />
											<arg value="${project.basedir}/target/dx/metstage" />
										</exec>

										<echo>Building meterpreter</echo>
										<mkdir dir="${project.basedir}/target/dx/meterpreter" />
										<copy todir="${project.basedir}/target/dx/meterpreter">
											<fileset dir="${project.basedir}/target/classes">
												<include name="com/metasploit/meterpreter/**/*.class" />
											</fileset>
										</copy>
										<exec executable="${android.sdk.path}/platforms/android-3/tools/${dx.filename}" failonerror="true">
											<arg value="--verbose" />
											<arg value="--dex" />
											<arg value="--output=${project.basedir}/../../${deploy.path}/data/android/meterpreter.jar" />
											<arg value="${project.basedir}/target/dx/meterpreter" />
											<arg value="${com.metasploit:Metasploit-Java-Meterpreter:jar}" />
											<arg value="${com.metasploit:Metasploit-Java-Meterpreter-stdapi:jar}" />
											<arg value="${com.metasploit:Metasploit-JavaPayload:jar}" />
										</exec>
									</target>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>