Second attempt at PIE binary for new android

Github PR #14
This commit is contained in:
Erik Ekman 2015-08-05 20:04:03 +02:00
parent e5843a9143
commit a8a5fbbf0d
4 changed files with 5 additions and 13 deletions

View File

@ -17,6 +17,7 @@ master:
- Add support for IPv6 in the server. - Add support for IPv6 in the server.
Raw mode will be with same protocol as used for login. Raw mode will be with same protocol as used for login.
Traffic inside tunnel is still IPv4. Traffic inside tunnel is still IPv4.
- Update android build to support 5.0 (Lollipop) and newer.
2014-06-16: 0.7.0 "Kryoptonite" 2014-06-16: 0.7.0 "Kryoptonite"
- Partial IPv6 support (#107) - Partial IPv6 support (#107)

View File

@ -59,12 +59,12 @@ iodine-latest:
#non-PIE build for old android #non-PIE build for old android
cross-android-old: cross-android-old:
@(cd src; $(MAKE) base64u.c base64u.h) @(cd src; $(MAKE) base64u.c base64u.h)
@(cd src; ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=Android.mk MY_PLATFORM=old) @(cd src; ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=Android.mk APP_PLATFORM=android-3)
#Position-indepedent build for modern android #Position-indepedent build for modern android
cross-android: cross-android:
@(cd src; $(MAKE) base64u.c base64u.h) @(cd src; $(MAKE) base64u.c base64u.h)
@(cd src; ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=Android.mk MY_PLATFORM=kitkat) @(cd src; ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=Android.mk APP_PLATFORM=android-16)
iodine-latest-android.zip: iodine-latest iodine-latest-android.zip: iodine-latest
@mv iodine-latest iodine-latest-android @mv iodine-latest iodine-latest-android

View File

@ -37,13 +37,13 @@ For more information: http://blog.bokhorst.biz/5123
3. Build: 3. Build:
cd src cd src
make base64u.h base64u.c make base64u.h base64u.c
ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=Android.mk MY_PLATFORM=kitkat ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=Android.mk APP_PLATFORM=android-16
or run "make cross-android" in the iodine root directory. or run "make cross-android" in the iodine root directory.
To build for other archs, specify TARGET_ARCH_ABI: To build for other archs, specify TARGET_ARCH_ABI:
"make cross-android TARGET_ARCH_ABI=x86" "make cross-android TARGET_ARCH_ABI=x86"
For older android versions (pre-kitkat), build with "make cross-android" in the For older android versions (pre-kitkat), build with "make cross-android" in the
root directory, or manually like above but without the MY_PLATFORM part. root directory, or manually like above but with APP_PLATFORM=android-3
The iodine binary ends up in src/libs/<arch>/iodine The iodine binary ends up in src/libs/<arch>/iodine

View File

@ -20,14 +20,5 @@ LOCAL_SRC_FILES := tun.c dns.c read.c encoding.c login.c base32.c base64.c base6
LOCAL_CFLAGS := -c -DANDROID -DLINUX -DIFCONFIGPATH=\"/system/bin/\" -Wall -DGITREVISION=\"$(HEAD_COMMIT)\" LOCAL_CFLAGS := -c -DANDROID -DLINUX -DIFCONFIGPATH=\"/system/bin/\" -Wall -DGITREVISION=\"$(HEAD_COMMIT)\"
LOCAL_LDLIBS := -lz LOCAL_LDLIBS := -lz
#Choose platform level (for PIE support)
ifeq (kitkat, $(strip $(MY_PLATFORM)))
APP_PLATFORM := android-16
LOCAL_CFLAGS += -fPIE
LOCAL_LDFLAGS += -fPIE -pie
else
APP_PLATFORM := android-3
endif
include $(BUILD_EXECUTABLE) include $(BUILD_EXECUTABLE)