diff --git a/android/build.xml b/android/build.xml
index 9b09ecee6..4be56043a 100644
--- a/android/build.xml
+++ b/android/build.xml
@@ -129,6 +129,14 @@
+
+
+
+
+
+
+
+
@@ -138,6 +146,7 @@
+
-
+
diff --git a/android/res/raw/router_config b/android/res/raw/router_config
index ab9594484..227cd06e1 100644
--- a/android/res/raw/router_config
+++ b/android/res/raw/router_config
@@ -7,9 +7,14 @@ prng.buffers=2
router.decayingBloomFilterM=20
stat.full=false
#
+# Don't run NTP client, the phone should have a valid time
+#
+time.disabled=true
+#
# no I2CP
#
i2p.dummyClientFacade=true
+i2cp.disableInterface=true
#
##### Transport
#
diff --git a/android/scripts/setversion.sh b/android/scripts/setversion.sh
new file mode 100755
index 000000000..4833d95ac
--- /dev/null
+++ b/android/scripts/setversion.sh
@@ -0,0 +1,57 @@
+#
+# Get the version number and fix up AndroidManifest.xml
+# Public domain
+#
+THISDIR=$(realpath $(dirname $(which $0)))
+cd $THISDIR
+MANIFEST=../AndroidManifest.xml
+TMP=AndroidManifest.xml.tmp
+
+CORE=`grep 'public final static String VERSION' ../../core/java/src/net/i2p/CoreVersion.java | \
+ cut -d '"' -f 2`
+
+MAJOR=`echo $CORE | cut -d '.' -f 1`
+MINOR=`echo $CORE | cut -d '.' -f 2`
+RELEASE=`echo $CORE | cut -d '.' -f 3`
+
+ROUTERBUILD=$((`grep 'public final static long BUILD' ../../router/java/src/net/i2p/router/RouterVersion.java | \
+ cut -d '=' -f 2 | \
+ cut -d ';' -f 1`))
+
+ANDROIDBUILD=`grep 'build.number' build.number | \
+ cut -d '=' -f 2`
+
+SDK=`grep 'android:minSdkVersion' $MANIFEST | \
+ cut -d '"' -f 2`
+
+# don't let build number get too long
+VERSIONSTRING="${CORE}-${ROUTERBUILD}_b$(($ANDROIDBUILD % 256))-SDK$SDK"
+
+#
+# Android version code is an integer.
+# So we have 31 bits.
+# MAJOR 4 bits 0-15
+# MINOR 8 bits 0-255
+# RELEASE 8 bits 0-255
+# ROUTERBUILD 8 bits 0-255
+# ANDROIDBUILD 3 bits 0-7
+#
+# Note that ANDROIDBUILD is modded % 8, it will wrap,
+# beware of that if you release multiple builds using the
+# same ROUTERBUILD, or clear it if you update ROUTERBUILD
+#
+VERSIONINT=$(( \
+ (($MAJOR % 16) << 27) + \
+ (($MINOR % 256) << 19) + \
+ (($RELEASE % 256) << 11) + \
+ (($ROUTERBUILD % 256) << 3) + \
+ ($ANDROIDBUILD % 8) \
+ ))
+
+echo "Android version: '$VERSIONSTRING' (${VERSIONINT})"
+
+SUBST='s/android.versionCode="[0-9]"/android.versionCode="'${VERSIONINT}'"/'
+sed "$SUBST" < $MANIFEST > $TMP
+SUBST='s/android.versionName="[^"]*"/android.versionName="'${VERSIONSTRING}'"/'
+sed "$SUBST" < $TMP > $MANIFEST
+rm -f $TMP
diff --git a/android/src/net/i2p/router/I2PAndroid.java b/android/src/net/i2p/router/I2PAndroid.java
index f48c94efc..3c9c92bef 100644
--- a/android/src/net/i2p/router/I2PAndroid.java
+++ b/android/src/net/i2p/router/I2PAndroid.java
@@ -2,6 +2,8 @@ package net.i2p.router;
import android.app.Activity;
import android.content.Context;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.content.res.Resources.NotFoundException;
import android.os.Bundle;
@@ -103,6 +105,20 @@ public class I2PAndroid extends Activity
System.err.println("user.home" + ": " + System.getProperty("user.home"));
System.err.println("user.name" + ": " + System.getProperty("user.name"));
System.err.println("getFilesDir()" + ": " + DIR);
+ System.err.println("Package" + ": " + getPackageName());
+ System.err.println("Version" + ": " + getOurVersion());
+ }
+
+ private String getOurVersion() {
+ PackageManager pm = getPackageManager();
+ String us = getPackageName();
+ try {
+ PackageInfo pi = pm.getPackageInfo(us, 0);
+ System.err.println("VersionCode" + ": " + pi.versionCode);
+ if (pi.versionName != null)
+ return pi.versionName;
+ } catch (Exception e) {}
+ return "??";
}
private void initialize() {