Skip to content

Commit 9fe375b

Browse files
Use OpenSSL 1.1.1.tar.gz
1 parent 078606c commit 9fe375b

File tree

7 files changed

+53
-43
lines changed

7 files changed

+53
-43
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ android-database-sqlcipher/src/main/external/android-libs/
77
android-database-sqlcipher/.externalNativeBuild/
88
android-database-sqlcipher/src/main/libs*
99
android-database-sqlcipher/src/main/obj
10+
android-database-sqlcipher/src/main/external/openssl-*/

.gitmodules

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
[submodule "android-database-sqlcipher/src/main/external/openssl"]
2-
path = android-database-sqlcipher/src/main/external/openssl
3-
url = https://github.com/openssl/openssl.git
41
[submodule "android-database-sqlcipher/src/main/external/sqlcipher"]
52
path = android-database-sqlcipher/src/main/external/sqlcipher
63
url = https://github.com/sqlcipher/sqlcipher.git

android-database-sqlcipher/build-openssl-libraries.sh

Lines changed: 46 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,13 @@
22

33
MINIMUM_ANDROID_SDK_VERSION=$1
44
MINIMUM_ANDROID_64_BIT_SDK_VERSION=$2
5+
OPENSSL=openssl-1.1.1
56

6-
(cd src/main/external/openssl;
7+
(cd src/main/external/;
8+
gunzip -c ${OPENSSL}.tar.gz | tar xf -
9+
)
10+
11+
(cd src/main/external/${OPENSSL};
712

813
if [ ! ${MINIMUM_ANDROID_SDK_VERSION} ]; then
914
echo "MINIMUM_ANDROID_SDK_VERSION was not provided, include and rerun"
@@ -20,20 +25,21 @@ MINIMUM_ANDROID_64_BIT_SDK_VERSION=$2
2025
exit 1
2126
fi
2227

28+
NDK_TOOLCHAIN_VERSION=4.9
2329
ANDROID_LIB_ROOT=../android-libs
2430
ANDROID_TOOLCHAIN_DIR=/tmp/sqlcipher-android-toolchain
25-
OPENSSL_CONFIGURE_OPTIONS="no-krb5 no-idea no-camellia \
26-
no-seed no-bf no-cast no-rc2 no-rc4 no-rc5 no-md2 \
27-
no-md4 no-ripemd no-rsa no-ecdh no-sock no-ssl2 no-ssl3 \
28-
no-dsa no-dh no-ec no-ecdsa no-tls1 no-pbe no-pkcs \
29-
no-tlsext no-pem no-rfc3779 no-whirlpool no-ui no-srp \
30-
no-ssltrace no-tlsext no-mdc2 no-ecdh no-engine \
31-
no-tls2 no-srtp -fPIC"
31+
OPENSSL_CONFIGURE_OPTIONS="-fPIC no-idea no-camellia \
32+
no-seed no-bf no-cast no-rc2 no-rc4 no-rc5 no-md2 \
33+
no-md4 no-ecdh no-sock no-ssl3 \
34+
no-dsa no-dh no-ec no-ecdsa no-tls1 \
35+
no-rfc3779 no-whirlpool no-srp \
36+
no-mdc2 no-ecdh no-engine \
37+
no-srtp"
3238

3339
HOST_INFO=`uname -a`
3440
case ${HOST_INFO} in
3541
Darwin*)
36-
TOOLCHAIN_SYSTEM=darwin-x86
42+
TOOLCHAIN_SYSTEM=darwin-x86_64
3743
;;
3844
Linux*)
3945
if [[ "${HOST_INFO}" == *i686* ]]
@@ -50,93 +56,96 @@ MINIMUM_ANDROID_64_BIT_SDK_VERSION=$2
5056
esac
5157

5258
rm -rf ${ANDROID_LIB_ROOT}
53-
./Configure dist
54-
59+
5560
for SQLCIPHER_TARGET_PLATFORM in armeabi armeabi-v7a x86 x86_64 arm64-v8a
5661
do
57-
echo "Building for libcrypto.a for ${SQLCIPHER_TARGET_PLATFORM}"
62+
echo "Building libcrypto.a for ${SQLCIPHER_TARGET_PLATFORM}"
5863
case "${SQLCIPHER_TARGET_PLATFORM}" in
5964
armeabi)
6065
TOOLCHAIN_ARCH=arm
6166
TOOLCHAIN_PREFIX=arm-linux-androideabi
62-
CONFIGURE_ARCH=android
63-
PLATFORM_OUTPUT_DIR=armeabi
67+
TOOLCHAIN_FOLDER=arm-linux-androideabi
68+
CONFIGURE_ARCH=android-arm
6469
ANDROID_API_VERSION=${MINIMUM_ANDROID_SDK_VERSION}
6570
OFFSET_BITS=32
71+
TOOLCHAIN_DIR=${ANDROID_TOOLCHAIN_DIR}-armeabi
6672
;;
6773
armeabi-v7a)
6874
TOOLCHAIN_ARCH=arm
6975
TOOLCHAIN_PREFIX=arm-linux-androideabi
70-
CONFIGURE_ARCH=android -march=armv7-a
71-
PLATFORM_OUTPUT_DIR=armeabi-v7a
76+
TOOLCHAIN_FOLDER=arm-linux-androideabi
77+
CONFIGURE_ARCH="android-arm -march=armv7-a"
7278
ANDROID_API_VERSION=${MINIMUM_ANDROID_SDK_VERSION}
7379
OFFSET_BITS=32
80+
TOOLCHAIN_DIR=${ANDROID_TOOLCHAIN_DIR}-armeabi-v7a
7481
;;
7582
x86)
7683
TOOLCHAIN_ARCH=x86
7784
TOOLCHAIN_PREFIX=i686-linux-android
85+
TOOLCHAIN_FOLDER=x86
7886
CONFIGURE_ARCH=android-x86
79-
PLATFORM_OUTPUT_DIR=x86
8087
ANDROID_API_VERSION=${MINIMUM_ANDROID_SDK_VERSION}
8188
OFFSET_BITS=32
89+
TOOLCHAIN_DIR=${ANDROID_TOOLCHAIN_DIR}-x86
8290
;;
8391
x86_64)
8492
TOOLCHAIN_ARCH=x86_64
8593
TOOLCHAIN_PREFIX=x86_64-linux-android
86-
CONFIGURE_ARCH=android64
87-
PLATFORM_OUTPUT_DIR=x86_64
94+
TOOLCHAIN_FOLDER=x86_64
95+
CONFIGURE_ARCH=android64-x86_64
8896
ANDROID_API_VERSION=${MINIMUM_ANDROID_64_BIT_SDK_VERSION}
8997
OFFSET_BITS=64
98+
TOOLCHAIN_DIR=${ANDROID_TOOLCHAIN_DIR}-x86_64
9099
;;
91100
arm64-v8a)
92101
TOOLCHAIN_ARCH=arm64
93102
TOOLCHAIN_PREFIX=aarch64-linux-android
94-
CONFIGURE_ARCH=android64-aarch64
95-
PLATFORM_OUTPUT_DIR=arm64-v8a
103+
TOOLCHAIN_FOLDER=aarch64-linux-android
104+
CONFIGURE_ARCH=android-arm64
96105
ANDROID_API_VERSION=${MINIMUM_ANDROID_64_BIT_SDK_VERSION}
97106
OFFSET_BITS=64
107+
TOOLCHAIN_DIR=${ANDROID_TOOLCHAIN_DIR}-arm64-v8a
98108
;;
99109
*)
100110
echo "Unsupported build platform:${SQLCIPHER_TARGET_PLATFORM}"
101111
exit 1
102112
esac
103-
104-
rm -rf ${ANDROID_TOOLCHAIN_DIR}
113+
SOURCE_TOOLCHAIN_DIR=${ANDROID_NDK_ROOT}/toolchains/${TOOLCHAIN_FOLDER}-${NDK_TOOLCHAIN_VERSION}/prebuilt/${TOOLCHAIN_SYSTEM}
114+
rm -rf ${TOOLCHAIN_DIR}
105115
mkdir -p "${ANDROID_LIB_ROOT}/${SQLCIPHER_TARGET_PLATFORM}"
106116
python ${ANDROID_NDK_ROOT}/build/tools/make_standalone_toolchain.py \
107117
--arch ${TOOLCHAIN_ARCH} \
108118
--api ${ANDROID_API_VERSION} \
109-
--install-dir ${ANDROID_TOOLCHAIN_DIR}
119+
--install-dir ${TOOLCHAIN_DIR} \
120+
--unified-headers
110121

111122
if [ $? -ne 0 ]; then
112123
echo "Error executing make_standalone_toolchain.py for ${TOOLCHAIN_ARCH}"
113124
exit 1
114125
fi
115126

116-
export PATH=${ANDROID_TOOLCHAIN_DIR}/bin:$PATH
117-
export CROSS_SYSROOT=${ANDROID_TOOLCHAIN_DIR}/sysroot
127+
export PATH=${TOOLCHAIN_DIR}/bin:${PATH}
118128

119-
RANLIB=${TOOLCHAIN_PREFIX}-ranlib \
120-
AR=${TOOLCHAIN_PREFIX}-ar \
121-
CC=${TOOLCHAIN_PREFIX}-gcc \
122-
./Configure "${CONFIGURE_ARCH}" \
123-
-D__ANDROID_API__=${ANDROID_API_VERSION} \
124-
-D_FILE_OFFSET_BITS=${OFFSET_BITS} \
125-
"${OPENSSL_CONFIGURE_OPTIONS}"
129+
ANDROID_NDK=${ANDROID_NDK_ROOT} \
130+
PATH=${SOURCE_TOOLCHAIN_DIR}/bin:${PATH} \
131+
./Configure ${CONFIGURE_ARCH} \
132+
-D__ANDROID_API__=${ANDROID_API_VERSION} \
133+
-D_FILE_OFFSET_BITS=${OFFSET_BITS} \
134+
${OPENSSL_CONFIGURE_OPTIONS} \
135+
--sysroot=${TOOLCHAIN_DIR}/sysroot
126136

127137
if [ $? -ne 0 ]; then
128138
echo "Error executing:./Configure ${CONFIGURE_ARCH} ${OPENSSL_CONFIGURE_OPTIONS}"
129139
exit 1
130140
fi
131141

132142
make clean
133-
make
134-
143+
make build_libs
144+
135145
if [ $? -ne 0 ]; then
136146
echo "Error executing make for platform:${SQLCIPHER_TARGET_PLATFORM}"
137147
exit 1
138148
fi
139-
140-
mv libcrypto.a ${ANDROID_LIB_ROOT}/${PLATFORM_OUTPUT_DIR}
149+
mv libcrypto.a ${ANDROID_LIB_ROOT}/${SQLCIPHER_TARGET_PLATFORM}
141150
done
142151
)

android-database-sqlcipher/native.gradle

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,10 @@ task cleanOpenSSL() {
6262
description "Clean the OpenSSL source"
6363
doLast {
6464
logger.info "Cleaning OpenSSL source"
65-
gitClean("${opensslDir}")
65+
File file = new File("${opensslDir}")
66+
if(file.exists()){
67+
file.deleteDir()
68+
}
6669
}
6770
}
6871

Lines changed: 0 additions & 1 deletion
This file was deleted.
Binary file not shown.

build.gradle

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,8 @@ ext {
5858
nativeRootOutputDir = "${projectDir}/${name}/src/main"
5959
androidNativeRootDir = "${nativeRootOutputDir}/external/android-libs"
6060
sqlcipherDir = "${projectDir}/${name}/src/main/external/sqlcipher"
61-
opensslDir = "${projectDir}/${name}/src/main/external/openssl"
61+
opensslVersion = "1.1.1"
62+
opensslDir = "${projectDir}/${name}/src/main/external/openssl-${opensslVersion}"
6263
sqlcipherCFlags = "-DSQLITE_HAS_CODEC " +
6364
"-DSQLITE_SOUNDEX " +
6465
"-DHAVE_USLEEP=1 " +

0 commit comments

Comments
 (0)