diff --git a/apps/android/app/build.gradle b/apps/android/app/build.gradle index 0c7ea36eca..0dd9a828ce 100644 --- a/apps/android/app/build.gradle +++ b/apps/android/app/build.gradle @@ -52,7 +52,6 @@ android { externalNativeBuild { cmake { path file('src/main/cpp/CMakeLists.txt') - version '3.10.2' } } buildFeatures { diff --git a/fastlane/metadata/android/en-US/full_description.txt b/fastlane/metadata/android/en-US/full_description.txt new file mode 100644 index 0000000000..399395cf19 --- /dev/null +++ b/fastlane/metadata/android/en-US/full_description.txt @@ -0,0 +1,23 @@ +
Full privacy of your identity, profile, contacts and metadata: unlike any other existing messaging platform, SimpleX uses no phone numbers or any other identifiers assigned to the users - not even random numbers. This protects the privacy of who you are communicating with, hiding it from SimpleX platform servers and from any observers.
+ +Complete protection against spam and abuse: as you have no identifier on SimpleX platform, you cannot be contacted unless you share a one-time invitation link or an optional temporary user address. Read more.
+ +Full ownership, control and security of your data: SimpleX stores all user data on client devices, the messages are only held temporarily on SimpleX relay servers until they are received.
+ +Decentralized network: you can use SimpleX with your own servers and still communicate with people using the servers that are pre-configured in the apps or any other SimpleX servers.
+ +You can connect to anybody you know via link or scan QR code (in the video call or in person) and start sending messages instantly - no emails, phone numbers or passwords needed.
+ +Your profile and contacts are only stored in the app on your device - our servers do not have access to this information.
+ +All messages are end-to-end encrypted using open-source double-ratchet protocol; the messages are routed via our servers using open-source SimpleX Messaging Protocol.
+ +The app sends local notifications only when messages or connection requests arrive - the app checks for the new messages every 10-15 min, but if you stop using the app it may stop checking for the new messages.
+ +Please send us any questions via the app (connect to the team via settings!), email chat@simplex.chat or submit issues on GitHub (https://github.com/simplex-chat/simplex-chat/issues)
+ +Source code: https://github.com/simplex-chat/simplex-chat
+ +Follow us on Twitter (@SimpleXChat) and Reddit (r/SimpleXChat/) for the latest updates.
diff --git a/fastlane/metadata/android/en-US/images/icon.png b/fastlane/metadata/android/en-US/images/icon.png new file mode 100644 index 0000000000..9c9a5c017f Binary files /dev/null and b/fastlane/metadata/android/en-US/images/icon.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/1.jpg b/fastlane/metadata/android/en-US/images/phoneScreenshots/1.jpg new file mode 100644 index 0000000000..bfd7e427d9 Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/1.jpg differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/2.jpg b/fastlane/metadata/android/en-US/images/phoneScreenshots/2.jpg new file mode 100644 index 0000000000..caf7d520a5 Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/2.jpg differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/3.jpg b/fastlane/metadata/android/en-US/images/phoneScreenshots/3.jpg new file mode 100644 index 0000000000..89cbdf2473 Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/3.jpg differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/4.jpg b/fastlane/metadata/android/en-US/images/phoneScreenshots/4.jpg new file mode 100644 index 0000000000..5947da3a95 Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/4.jpg differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/5.jpg b/fastlane/metadata/android/en-US/images/phoneScreenshots/5.jpg new file mode 100644 index 0000000000..ab17c14cc4 Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/5.jpg differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/6.jpg b/fastlane/metadata/android/en-US/images/phoneScreenshots/6.jpg new file mode 100644 index 0000000000..d0c902a722 Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/6.jpg differ diff --git a/fastlane/metadata/android/en-US/short_description.txt b/fastlane/metadata/android/en-US/short_description.txt new file mode 100644 index 0000000000..127d42df06 --- /dev/null +++ b/fastlane/metadata/android/en-US/short_description.txt @@ -0,0 +1 @@ +SimpleX Chat - a private & encrypted messenger without any user IDs - private by design! diff --git a/fastlane/metadata/android/en-US/title.txt b/fastlane/metadata/android/en-US/title.txt new file mode 100644 index 0000000000..87a29e81d1 --- /dev/null +++ b/fastlane/metadata/android/en-US/title.txt @@ -0,0 +1 @@ +SimpleX Chat diff --git a/scripts/android/build-android.sh b/scripts/android/build-android.sh new file mode 100755 index 0000000000..af71a3af89 --- /dev/null +++ b/scripts/android/build-android.sh @@ -0,0 +1,92 @@ +#!/usr/bin/env sh +# Safety measures +set -eu + +u="$USER" +tmp=$(mktemp -d -t) +commands="nix git gradle unzip curl" + +nix_install() { + # Pre-setup nix + [ ! -d /nix ] && sudo sh -c "mkdir -p /nix && chown -R $u /nix" + + # Install nix + nix_ver="nix-2.10.3" + nix_url="https://releases.nixos.org/nix/$nix_ver/install" + nix_hash="2e96a9c4abb5648a805480e8679de3d9fecff30453603f11c26bb4e7176c7ebe" + + curl -sSf "$nix_url" -o "$tmp/nix-install" + printf "%s %s" "$nix_hash" "$tmp/nix-install" | sha256sum -c + chmod +x "$tmp/nix-install" && "$tmp/nix-install" --no-daemon + + . "$HOME/.nix-profile/etc/profile.d/nix.sh" +} + +nix_setup() { + printf "sandbox = true\nmax-jobs = auto\nexperimental-features = nix-command flakes\nextra-substituters = https://cache.zw3rk.com\ntrusted-public-keys = loony-tools:pr9m4BkM/5/eSTZlkQyRt57Jz7OMBxNSUiMC4FkcNfk=" > "$tmp/nix.conf" + export NIX_CONF_DIR="$tmp/" +} + +git_setup() { + # Clone simplex + git clone https://github.com/simplex-chat/simplex-chat "$tmp/simplex-chat" + + # Switch to nix-android branch + git -C "$tmp/simplex-chat" checkout nix-android + + # Create missing folders + mkdir -p "$tmp/simplex-chat/apps/android/app/src/main/cpp/libs/arm64-v8a" +} + +checks() { + set +u + for i in $commands; do + case $i in + nix) + if ! command -v "$i" > /dev/null 2>&1 || [ ! -f "$HOME/.nix-profile/etc/profile.d/nix.sh" ]; then + nix_install + fi + nix_setup + ;; + *) + if ! command -v "$i" > /dev/null 2>&1; then + commands_failed="$i $commands_failed" + fi + ;; + esac + done + + if [ -n "$commands_failed" ]; then + commands_failed=${commands_failed% *} + printf "%s is not found in your \$PATH. Please install them and re-run the script.\n" "$commands_failed" + exit 1 + fi + + set -u +} + +build() { + # Build simplex lib + nix build "$tmp/simplex-chat/#packages.x86_64-linux.aarch64-android:lib:simplex-chat" + unzip -o "$PWD/result/pkg-aarch64-android-libsimplex.zip" -d "$tmp/simplex-chat/apps/android/app/src/main/cpp/libs/arm64-v8a" + + # Build android suppprt lib + nix build "$tmp/simplex-chat/#packages.x86_64-linux.aarch64-android:lib:support" + unzip -o "$PWD/result/pkg-aarch64-android-libsupport.zip" -d "$tmp/simplex-chat/apps/android/app/src/main/cpp/libs/arm64-v8a" + + gradle -p "$tmp/simplex-chat/apps/android/" clean build +} + +final() { + cp "$tmp/simplex-chat/apps/android/app/build/outputs/apk/release/app-release-unsigned.apk" "$PWD/simplex-chat.apk" + printf "Simplex-chat was successfully compiled: %s/simplex-chat.apk\nDelete nix and gradle caches with 'rm -rf /nix && rm \$HOME/.nix* && \$HOME/.gradle/caches' in case if no longer needed.\n" "$PWD" +} + +main() { + checks + git_setup + build + final +} + +main