android-unbound-dns
android-unbound-dns copied to clipboard
Unbound DNS for Android
Android Unbound DNS 

Goal is to get Unbound DNS fully working with UI to configure it and system integration (replacing system DNS)
Step-By-Step Guide:
Compile Unbound DNS for Android:
- Android NDK r12
- Set environment variables according to your local paths
- required vars are LOCAL_ANDROID_NDK_HOME and LOCAL_ANDROID_NDK_HOST_PLATFORM, see _setenv_android.bash file for reference
- optional var _NO_CHECK_SIGNATURE, set to non-zero value to skip GPG signatures checking
- Download Unbound and libraries into fetched repository
- ./download.sh
- Run cleanup (will remove old folders and unpack original archives)
- ./cleanup.sh
- Launch the build script
- ./build.sh
- Collect all libraries and binaries using packaging script
- ./package.sh
- Final compiled binaries and libraries are put within "package" directory in build root
Compile Android application:
- Move to Android directory
- cd Android
- Check that package.zip is in place
- ls -lsa app/src/main/assets/package.zip
- Compile android app using Gradle
- ./gradlew clean assemble -q -S
- ./gradlew check -q -S
- Install Android application to connected device
- ./gradlew installDebug
Running Unbound DNS standalone from ADB SHELL:
-
Upload the package to android device
adb push package.zip /data/local/tmp/-
Get shell
adb shell-
Get to package location
cd /data/local/tmp/-
Expand zip archive
unzip package.zipcd /data/local/tmp/package/bin-
Set Environment PATH variable
./env.sh-
Setup remote control certificate
unbound-control-setup-
Setup DNSSEC root key
unbound-anchor -h-
If you've edited unbound.conf, check it's correct
unbound-checkconf-
Run applications from
binfolder unbound -v -c unbound.conf-
Check if the server is running and unbound-control set up correctly
unbound-control status-
Check if the DNSSEC verification works correctly
unbound-host -d -C unbound.conf google.com