@@ -72,13 +72,40 @@ FROM base AS native-builder
7272COPY TMessagesProj/jni/ /build/jni/
7373WORKDIR /build/jni
7474
75- # Phase 1: prepare.py (boringssl, ffmpeg, libvpx, dav1d, tde2e)
76- # Stub out git — prepare.py runs "git submodule update" and "git reset --hard"
77- # but the sources are already in place via COPY.
78- RUN mv /usr/bin/git /usr/bin/git.real && \
79- printf '#!/bin/sh\n true\n ' > /usr/bin/git && chmod +x /usr/bin/git && \
80- python3 prepare.py arm64 arm ndk=$ANDROID_NDK_HOME silent && \
81- mv /usr/bin/git.real /usr/bin/git
75+ # Phase 1: Build static libraries directly (bypasses prepare.py which
76+ # assumes git submodules and rm/re-checkout cycle unsuitable for Docker).
77+ ENV NDK=$ANDROID_NDK_HOME
78+ ENV NINJA_PATH=/usr/bin/ninja
79+
80+ RUN ./build_dav1d_clang.sh arm64 arm
81+
82+ RUN ./build_libvpx_clang.sh arm64 arm
83+
84+ RUN ./build_ffmpeg_clang.sh arm64 arm && ./patch_ffmpeg.sh
85+
86+ RUN ./patch_boringssl.sh && ./build_boringssl.sh arm64 arm
87+
88+ RUN tde2e_dir=$(pwd)/tde2e && \
89+ source_dir=$(pwd)/tde2e_source && \
90+ boringssl_dir=$(pwd)/boringssl && \
91+ for arch in arm64-v8a armeabi-v7a; do \
92+ mkdir -p $source_dir/example/android/third-party/openssl/$arch/lib/ && \
93+ cp "$boringssl_dir/build/$arch/crypto/libcrypto.a" "$source_dir/example/android/third-party/openssl/$arch/lib/" && \
94+ cp "$boringssl_dir/build/$arch/ssl/libssl.a" "$source_dir/example/android/third-party/openssl/$arch/lib/" && \
95+ cp -R "$boringssl_dir/include" "$source_dir/example/android/third-party/openssl/$arch/" ; \
96+ done && \
97+ cp "$tde2e_dir/build-tdlib.sh" "$source_dir/example/android/." && \
98+ cp "$tde2e_dir/CMakeLists.txt" "$source_dir/example/android/." && \
99+ sed -i "s/ php//g" "$source_dir/example/android/check-environment.sh" && \
100+ sed -i "s/PHP_EXECUTABLE/FALSE/g" "$source_dir/td/generate/CMakeLists.txt" && \
101+ cd "$source_dir/example/android" && \
102+ SED_CMDS="s/x86_64//g;s/x86//g;s/rm tdlib/# rm tdlib/g;s/jar/# jar/g;s/mv tdlib/# mv tdlib/g;" && \
103+ sed "$SED_CMDS" ./build-tdlib.sh | bash -s -- "$NDK/../.." && \
104+ for arch in arm64-v8a armeabi-v7a; do \
105+ mkdir -p $tde2e_dir/$arch && \
106+ cp "$source_dir/example/android/build-$arch-Java/td/tde2e/libtde2e.a" $tde2e_dir/$arch && \
107+ cp "$source_dir/example/android/build-$arch-Java/td/tdutils/libtdutils.a" $tde2e_dir/$arch; \
108+ done
82109
83110# Phase 2: CMake build of libtmessages.49.so per ABI
84111RUN for abi in arm64-v8a armeabi-v7a; do \
0 commit comments