|
|
@@ -1,8 +1,11 @@
|
|
|
FROM ubuntu
|
|
|
+ENV DEBIAN_FRONTEND noninteractive
|
|
|
|
|
|
RUN apt update
|
|
|
RUN apt install -yq openjdk-19-jre-headless openjdk-19-jdk-headless
|
|
|
RUN apt install -yq wget unzip cmake file
|
|
|
+# For vendored openssl
|
|
|
+RUN apt-get update && apt-get install -y build-essential checkinstall zlib1g-dev
|
|
|
|
|
|
RUN cd /tmp/ && \
|
|
|
wget -O install-rustup.sh https://sh.rustup.rs && \
|
|
|
@@ -35,19 +38,25 @@ RUN ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager "build-tools;34.0.0"
|
|
|
RUN echo '[target.aarch64-linux-android] \n\
|
|
|
ar = "/opt/android-sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar" \n\
|
|
|
linker = "/opt/android-sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android33-clang" \n\
|
|
|
-' > /root/.cargo/config
|
|
|
+' > /root/.cargo/config.toml
|
|
|
+# wtf cargo
|
|
|
+ENV RANLIB /opt/android-sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib
|
|
|
|
|
|
# Needed by the ring dependency
|
|
|
ENV TARGET_AR /opt/android-sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar
|
|
|
ENV TARGET_CC /opt/android-sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android33-clang
|
|
|
|
|
|
-# Make sqlite3
|
|
|
+# Make sqlcipher
|
|
|
+# Needed for sqlcipher amalgamation
|
|
|
+RUN apt install -yq tclsh libssl-dev
|
|
|
RUN cd /tmp/ && \
|
|
|
- wget -O sqlite.zip https://www.sqlite.org/2023/sqlite-amalgamation-3430000.zip && \
|
|
|
- unzip sqlite.zip && \
|
|
|
- rm sqlite.zip && \
|
|
|
- mv sqlite* sqlite && \
|
|
|
- cd sqlite && \
|
|
|
+ wget -O sqlcipher.zip https://github.com/sqlcipher/sqlcipher/archive/refs/tags/v4.5.6.zip && \
|
|
|
+ unzip sqlcipher.zip && \
|
|
|
+ rm sqlcipher.zip && \
|
|
|
+ mv sqlcipher* sqlcipher && \
|
|
|
+ cd sqlcipher && \
|
|
|
+ ./configure && \
|
|
|
+ make sqlite3.c && \
|
|
|
mkdir build && \
|
|
|
mv *.c *.h build/ && \
|
|
|
mkdir jni && \
|
|
|
@@ -58,15 +67,15 @@ APP_STL := c++_shared' > jni/Application.mk && \
|
|
|
echo '\
|
|
|
LOCAL_PATH := $(call my-dir) \n\
|
|
|
include $(CLEAR_VARS) \n\
|
|
|
-LOCAL_MODULE := sqlite3-a \n\
|
|
|
-LOCAL_MODULE_FILENAME := libsqlite3 \n\
|
|
|
+LOCAL_MODULE := sqlcipher-a \n\
|
|
|
+LOCAL_MODULE_FILENAME := libsqlcipher \n\
|
|
|
LOCAL_SRC_FILES := ../build/sqlite3.c \n\
|
|
|
LOCAL_C_INCLUDES := ../build \n\
|
|
|
LOCAL_EXPORT_C_INCLUDES := ../build \n\
|
|
|
LOCAL_CFLAGS := -DSQLITE_THREADSAFE=1 \n\
|
|
|
include $(BUILD_STATIC_LIBRARY)' > jni/Android.mk && \
|
|
|
/opt/android-sdk/ndk/25.2.9519653/ndk-build
|
|
|
-ENV RUSTFLAGS "-L/tmp/sqlite/obj/local/arm64-v8a/"
|
|
|
+ENV RUSTFLAGS "-L/tmp/sqlcipher/obj/local/arm64-v8a/"
|
|
|
|
|
|
# Make directory for user code
|
|
|
RUN mkdir /root/src
|