Skip to content

Commit

Permalink
Improve Android package
Browse files Browse the repository at this point in the history
  • Loading branch information
jedisct1 committed Aug 5, 2015
1 parent 61e7979 commit 5784f65
Show file tree
Hide file tree
Showing 7 changed files with 98 additions and 10 deletions.
1 change: 1 addition & 0 deletions THANKS
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ Black Roland - OpenWRT packages
RotBlitz - Reported that Windows binary packages should work on old CPUs.
Marguerite Su - OpenSuSE packages
InsanityBit - AppArmor profile
Moffa~, Chef-Koch, Simon Levermann, Sergey Shatunov - Android scripts
6 changes: 5 additions & 1 deletion dist-build/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,14 @@ EXTRA_DIST = \
android-armv7-a.sh \
android-armv8-a.sh \
android-build.sh \
android-files/META-INF/com/google/android/update-binary \
android-files/META-INF/com/google/android/updater-script \
android-files/system/addon.d/75-dnscrypt.sh \
android-files/system/etc/init.d/99dnscrypt \
android-mips32.sh \
android-mips64.sh \
android-x86.sh \
android-x86-64.sh \
android-x86.sh \
ios.sh \
mipsel-linux-static.sh \
msys2-win32.sh \
Expand Down
21 changes: 12 additions & 9 deletions dist-build/android-build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ fi

export MAKE_TOOLCHAIN="${ANDROID_NDK_HOME}/build/tools/make-standalone-toolchain.sh"

export PREFIX="$(pwd)/dnscrypt-proxy-android-${TARGET_ARCH}/system"
export PREFIX="$(pwd)/dnscrypt-proxy-android-${TARGET_ARCH}"
export TOOLCHAIN_DIR="$(pwd)/android-toolchain-${TARGET_ARCH}"
export PATH="${PATH}:${TOOLCHAIN_DIR}/bin"

Expand All @@ -31,17 +31,20 @@ rm -rf "${TOOLCHAIN_DIR}" "${PREFIX}"
bash $MAKE_TOOLCHAIN --platform="${NDK_PLATFORM:-android-21}" \
--arch="$ARCH" --install-dir="$TOOLCHAIN_DIR" && \
./configure \
--bindir="${PREFIX}/xbin" \
--datadir="${PREFIX}/etc" \
--disable-shared \
--bindir="${PREFIX}/system/xbin" \
--datadir="${PREFIX}/system/etc" \
--disable-soname-versions \
--enable-plugins \
--disable-plugins \
--enable-relaxed-plugins-permissions \
--host="${HOST_COMPILER}" \
--prefix="${PREFIX}" \
--sbindir="${PREFIX}/xbin" \
--sysconfdir="${PREFIX}/etc" \
--prefix="${PREFIX}/system" \
--sbindir="${PREFIX}/system/xbin" \
--sysconfdir="${PREFIX}/system/etc" \
--with-sysroot="${TOOLCHAIN_DIR}/sysroot" && \
make clean && \
make -j3 install && \
echo "dnscrypt-proxy has been installed into $PREFIX"
rm -fr "${PREFIX}/system/include" "${PREFIX}/system/share" "${PREFIX}/system/man" && \
mkdir -p "${PREFIX}/system/lib" && \
cp "${SODIUM_ANDROID_PREFIX}/lib/libsodium.so" "${PREFIX}/system/lib" && \
(cd dist-build/android-files && tar cpf - *) | (cd "$PREFIX" && tar xpvf -) && \
echo "dnscrypt-proxy has been installed into ${PREFIX}"
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
ui_print("*************************");
ui_print("* DNSCrypt client proxy *");
ui_print("*************************");
ui_print("");
ui_print("");

ui_print("Mounting system...");
run_program("/sbin/busybox", "mount", "/system");
ui_print("Copying files...");
package_extract_dir("system", "/system");
ui_print("Fixing permissions...");
set_perm(0, 2000, 0644, "/system/etc/dnscrypt-proxy/dnscrypt-resolvers.csv");
set_perm(0, 2000, 0644, "/system/etc/dnscrypt-proxy/minisign.pub");
set_perm(0, 2000, 0644, "/system/lib/libsodium.so");
set_perm(0, 2000, 0755, "/system/addon.d/75-dnscrypt.sh");
set_perm(0, 2000, 0755, "/system/etc/init.d/99dnscrypt");
set_perm(0, 2000, 0755, "/system/xbin/dnscrypt");
set_perm(0, 2000, 0755, "/system/xbin/dnscrypt-proxy");
set_perm(0, 2000, 0755, "/system/xbin/hostip");
ui_print("Unmounting system...");
run_program("/sbin/busybox", "umount", "/system");
ui_print("Done!");
43 changes: 43 additions & 0 deletions dist-build/android-files/system/addon.d/75-dnscrypt.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#! /sbin/sh
# /system/addon.d/75-dnscrypt.sh

. /tmp/backuptool.functions

list_files() {
cat << EOF
etc/dnscrypt-proxy/dnscrypt-resolvers.csv
etc/dnscrypt-proxy/minisign.pub
etc/init.d/99dnscrypt
lib/libsodium.so
xbin/dnscrypt-proxy
xbin/dnscrypt
xbin/hostip
EOF
}

case "$1" in
backup)
list_files | while read FILE DUMMY; do
backup_file $S/"$FILE"
done
;;
restore)
list_files | while read FILE REPLACEMENT; do
R=""
[ -n "$REPLACEMENT" ] && R="$S/$REPLACEMENT"
[ -f "$C/$S/$FILE" ] && restore_file $S/"$FILE" "$R"
done
;;
pre-backup)
# Stub
;;
post-backup)
# Stub
;;
pre-restore)
# Stub
;;
post-restore)
# Stub
;;
esac
15 changes: 15 additions & 0 deletions dist-build/android-files/system/etc/init.d/99dnscrypt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/system/bin/sh

RESOLVER_NAME=dnscrypt.org-fr

dnscrypt-proxy \
--resolver-name="$RESOLVER_NAME" \
--resolvers-list=/system/etc/dnscrypt-proxy/dnscrypt-resolvers.csv \
--test=3600 && \
dnscrypt-proxy \
--daemonize \
--loglevel=3 \
--resolver-name="$RESOLVER_NAME" \
--resolvers-list=/system/etc/dnscrypt-proxy/dnscrypt-resolvers.csv && \
iptables -t nat -A OUTPUT -p udp --dport 53 -j DNAT --to-destination 127.0.0.1 &&
iptables -t nat -A OUTPUT -p tcp --dport 53 -j DNAT --to-destination 127.0.0.1

0 comments on commit 5784f65

Please sign in to comment.