Compare commits

...

23 Commits

Author SHA1 Message Date
adbenitez 8c7d1da9d9 update scripts/ndk-make.sh 2024-08-29 15:27:06 +02:00
adbenitez 2376777bba improve reproducible build 2024-08-29 14:04:55 +02:00
adbenitez 21d6c3c3b8 fix bug in scripts/ndk-make-fdroid.sh, also rename all vars to uppercase 2024-08-29 02:07:28 +02:00
adbenitez a3976846f6 fix: create symbolic link for sdk in ndk-make.sh 2024-08-28 21:07:15 +02:00
adbenitez f9d21b75ee use symbolic link for ANDROID_NDK_ROOT 2024-08-28 20:52:31 +02:00
adbenitez 54f487b33d use bash instead of sh in scripts/ndk-make-fdroid.sh 2024-08-28 19:49:05 +02:00
adbenitez ed7f3db2a4 add scripts/ndk-make-fdroid.sh 2024-08-28 18:54:09 +02:00
adbenitez 2ce614dc55 try to make core build reproducible 2024-08-28 15:31:32 +02:00
adbenitez 8a044221b1 tweak ndk-make.sh and Android.mk 2024-08-27 18:43:01 +02:00
adbenitez e9317ab641 tweak RUSTFLAGS 2024-08-27 16:51:52 +02:00
adbenitez a278121498 keep trying reproducible core build 2024-08-27 16:31:47 +02:00
adbenitez c060810a82 try to make core building reproducible 2024-08-27 15:03:24 +02:00
Asiel Díaz Benítez b4c15ad45f Merge pull request #27 from ArcaneChat/use-same-app-id-for-foss
use same app id for FOSS flavor
2024-08-27 11:16:00 +02:00
adbenitez 744414baeb do not strip libs 2024-08-27 11:15:21 +02:00
adbenitez cda7bcb247 use same app id for FOSS flavor 2024-08-27 10:56:08 +02:00
adbenitez 24e8fc7d25 update .github/workflows/release.yml 2024-08-27 00:01:40 +02:00
adbenitez 088494ea86 update version number 2024-08-26 21:34:33 +02:00
adbenitez 4c4c2e248c update core 2024-08-26 21:34:01 +02:00
adbenitez 60588ab8e4 allow to build single ABI via ABI_FILTER property 2024-08-26 21:07:57 +02:00
Asiel Díaz Benítez 228a5cf4f7 Merge pull request #26 from ArcaneChat/split-apk-for-fdroid
split apks again
2024-08-26 17:07:36 +02:00
adbenitez 7075fb39e1 fix apk preview workflow 2024-08-26 17:04:51 +02:00
adbenitez da15be4739 split apks again 2024-08-26 16:38:15 +02:00
adbenitez 6427e62ed9 prepare for f-droid submission 2024-08-26 15:41:22 +02:00
9 changed files with 70 additions and 29 deletions
+1 -1
View File
@@ -48,7 +48,7 @@ jobs:
uses: gradle/wrapper-validation-action@v1
- name: Build APK
run: ./gradlew --no-daemon assembleFossDebug
run: ./gradlew --no-daemon -PABI_FILTER=armeabi-v7a assembleFossDebug
- name: Upload APK
uses: actions/upload-artifact@v3
+1 -1
View File
@@ -60,7 +60,7 @@ jobs:
uses: softprops/action-gh-release@v1
with:
token: "${{ secrets.GITHUB_TOKEN }}"
body: "Auto-generated release"
body: "If you don't know what APK file to download for your phone, download the one that has 'universal' in its name, it should work for all phones"
prerelease: ${{ contains(github.event.ref, '-beta') }}
fail_on_unmatched_files: true
files: build/outputs/apk/foss/release/*.apk
+30 -6
View File
@@ -33,8 +33,8 @@ android {
useLibrary 'org.apache.http.legacy'
defaultConfig {
versionCode 30000686
versionName "1.46.14"
versionCode 30000688
versionName "1.46.16"
applicationId "chat.delta.lite"
multiDexEnabled true
@@ -50,7 +50,11 @@ android {
buildConfigField "boolean", "DEV_BUILD", "false"
ndk {
abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
if(project.hasProperty("ABI_FILTER")) {
abiFilters ABI_FILTER
} else {
abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
}
}
@@ -67,6 +71,7 @@ android {
}
packagingOptions {
jniLibs {
doNotStrip '**/*.so'
keepDebugSymbols += ['*/mips/*.so', '*/mips64/*.so']
}
resources {
@@ -126,13 +131,32 @@ android {
}
}
if(!project.hasProperty("ABI_FILTER")) {
splits {
abi {
enable true
reset()
include "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
universalApk true
}
}
}
project.ext.versionCodes = ['armeabi-v7a': 1, 'arm64-v8a': 2, 'x86': 3, 'x86_64': 4]
android.applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = outputFileName
variant.outputs.all { output ->
output.outputFileName = output.outputFileName
.replace("android", "ArcaneChat")
.replace("foss", "FOSS")
.replace("-release", "")
.replace(".apk", "-${variant.versionName}.apk")
if(project.hasProperty("ABI_FILTER")) {
output.versionCodeOverride =
variant.versionCode * 10 + project.ext.versionCodes.get(ABI_FILTER)
} else {
output.versionCodeOverride =
variant.versionCode * 10 + project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI), 4)
}
}
}
@@ -1,6 +1,21 @@
<i>ArcaneChat</i> is a friendly fork of <i>Delta Chat</i> messenger, a chat app compatible with the existing e-mail infrastructure.
ArcaneChat is a decentralized and secure messenger app that is
completely compatible with the existing e-mail infrastructure.
ArcaneChat was created with a focus on usability, good user experience, and saving data plan and comes with some different default settings than Delta Chat. Also the app usually experiments with new features and alternative paths of development that eventually might get added to the official Delta Chat client.
Some features at a glance:
💬 Reliable instant messaging with multi-profile and multi-device support.
⚡️ Sign-up easily using secure fast chatmail servers. You dont need a phone number or any private data.
📧 Alternatively, use your existing classic e-mail address to read your inbox as chats.
🎮 Interactive mini-apps in chats for gaming and collaboration.
🔒 Audited end-to-end encryption safe against network and server attacks.
ArcaneChat is a Delta Chat client and was created with a focus on usability,
good user experience, and saving data plan. Also the app usually experiments with
new features that eventually might get added to the official Delta Chat client.
<b>Main differences with official Delta Chat client:</b>
@@ -12,19 +27,14 @@ ArcaneChat was created with a focus on usability, good user experience, and savi
<li>It is possible to enable/disable accounts</li>
<li>A videochat instance is set by default</li>
<li>Replies to your messages in muted groups trigger notifications</li>
<li>Quote-reply a message with a single emoji to set it as reaction</li>
<li>Location streaming feature enabled by default and have extra option to share location for 12 hours</li>
<li>Verified icon is shown in the chat list for the "Device Messages" chat</li>
<li>Videos are played in loop, useful for short GIF videos</li>
<li>It is possible to click <b>OPENPGP4FPR:</b> and <b>mumble:</b> links in messages</li>
<li>Verified icon is shown in the chat list for the "Device Messages" chat</li>
<li>Voice messages have more aggressive compression in "worse quality" mode to save data plan</li>
<li>Default configuration changed: automatic download of messages limited to 640KB</li>
<li>Automatic download of messages limited to 640KB by default</li>
<li>Account's display name is shown in the app's title bar instead of the name of the app</li>
<li>Your avatar is visible to other users in Mailing Lists</li>
<li>Can be selected as application when clicking/opening links, this is useful to share the link with web grabber bots</li>
<li>Can be selected as app to open .xdc files</li>
<li>For mini-apps developers: there are some differences in the WebXDC API, check https://github.com/ArcaneChat/android/#webxdc</li>
<li>Better settings organization with additional "Privacy" section</li>
</ul>
<b>WARNING:</b> Be careful when running WebXDC apps in ArcaneChat, the sandboxed webview can't currently prevent WebRTC connections, so in theory information inside the WebXDC app could be leaked and also your IP, the risk is low, for most people this is not even important, but if you are a person at risk, only use trusted apps, or use official Delta Chat.
@@ -1 +1 @@
Encrypted chat over e-mail (Delta Chat client)
⚡ Fast encrypted chats for the family 🎉
+2 -2
View File
@@ -66,7 +66,7 @@
"client_info": {
"mobilesdk_app_id": "1:922391085500:android:92b4cf12669cc2083e2bb9",
"android_client_info": {
"package_name": "com.b44t.messenger"
"package_name": "com.github.arcanechat"
}
},
"oauth_client": [],
@@ -85,7 +85,7 @@
"client_info": {
"mobilesdk_app_id": "1:922391085500:android:228a205b8aa2bacc3e2bb9",
"android_client_info": {
"package_name": "com.b44t.messenger.beta"
"package_name": "com.github.arcanechat.beta"
}
},
"oauth_client": [],
+1
View File
@@ -31,5 +31,6 @@ LOCAL_CFLAGS += -Drestrict='' -D__EMX__ -DFIXED_POINT -DUSE_ALLOCA -DHAVE_LRINT
LOCAL_CFLAGS += -DANDROID_NDK -DDISABLE_IMPORTGL -fno-strict-aliasing -DAVOID_TABLES -DANDROID_TILE_BASED_DECODE -DANDROID_ARMV6_IDCT -ffast-math -D__STDC_CONSTANT_MACROS
LOCAL_SRC_FILES := dc_wrapper.c
LOCAL_LDFLAGS += -Wl,--build-id=none
include $(BUILD_SHARED_LIBRARY)
+14 -8
View File
@@ -50,6 +50,16 @@ if test -z "$ANDROID_NDK_ROOT"; then
exit 1
fi
# for reproducible build:
ROOT_DIR="$(realpath $(dirname $(dirname "$0")))"
export RUSTFLAGS="-C link-args=-Wl,--build-id=none --remap-path-prefix=$HOME/.cargo= --remap-path-prefix=$ROOT_DIR="
export SOURCE_DATE_EPOCH=1
export CARGO_TARGET_DIR=/tmp/arcanechat-build
# always use the same path to NDK:
rm -f /tmp/android-ndk-root
ln -s "$ANDROID_NDK_ROOT" /tmp/android-ndk-root
ANDROID_NDK_ROOT=/tmp/android-ndk-root
echo Setting CARGO_TARGET environment variables.
if test -z "$NDK_HOST_TAG"; then
@@ -65,8 +75,6 @@ if test -z "$NDK_HOST_TAG"; then
NDK_HOST_TAG="$KERNEL-$ARCH"
fi
unset RUSTFLAGS
TOOLCHAIN="$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/$NDK_HOST_TAG"
export CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER="$TOOLCHAIN/bin/armv7a-linux-androideabi16-clang"
export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="$TOOLCHAIN/bin/aarch64-linux-android21-clang"
@@ -120,7 +128,7 @@ if test -z $1 || test $1 = armeabi-v7a; then
TARGET_AR="$TOOLCHAIN/bin/llvm-ar" \
TARGET_RANLIB="$TOOLCHAIN/bin/llvm-ranlib" \
cargo build $RELEASEFLAG --target armv7-linux-androideabi -p deltachat_ffi --features jsonrpc
cp target/armv7-linux-androideabi/$RELEASE/libdeltachat.a $jnidir/armeabi-v7a
cp $CARGO_TARGET_DIR/armv7-linux-androideabi/$RELEASE/libdeltachat.a $jnidir/armeabi-v7a
fi
if test -z $1 || test $1 = arm64-v8a; then
@@ -129,7 +137,7 @@ if test -z $1 || test $1 = arm64-v8a; then
TARGET_AR="$TOOLCHAIN/bin/llvm-ar" \
TARGET_RANLIB="$TOOLCHAIN/bin/llvm-ranlib" \
cargo build $RELEASEFLAG --target aarch64-linux-android -p deltachat_ffi --features jsonrpc
cp target/aarch64-linux-android/$RELEASE/libdeltachat.a $jnidir/arm64-v8a
cp $CARGO_TARGET_DIR/aarch64-linux-android/$RELEASE/libdeltachat.a $jnidir/arm64-v8a
fi
if test -z $1 || test $1 = x86; then
@@ -138,7 +146,7 @@ if test -z $1 || test $1 = x86; then
TARGET_AR="$TOOLCHAIN/bin/llvm-ar" \
TARGET_RANLIB="$TOOLCHAIN/bin/llvm-ranlib" \
cargo build $RELEASEFLAG --target i686-linux-android -p deltachat_ffi --features jsonrpc
cp target/i686-linux-android/$RELEASE/libdeltachat.a $jnidir/x86
cp $CARGO_TARGET_DIR/i686-linux-android/$RELEASE/libdeltachat.a $jnidir/x86
fi
if test -z $1 || test $1 = x86_64; then
@@ -147,11 +155,9 @@ fi
TARGET_AR="$TOOLCHAIN/bin/llvm-ar" \
TARGET_RANLIB="$TOOLCHAIN/bin/llvm-ranlib" \
cargo build $RELEASEFLAG --target x86_64-linux-android -p deltachat_ffi --features jsonrpc
cp target/x86_64-linux-android/$RELEASE/libdeltachat.a $jnidir/x86_64
cp $CARGO_TARGET_DIR/x86_64-linux-android/$RELEASE/libdeltachat.a $jnidir/x86_64
fi
rm -fr "$TMPLIB"
echo -- ndk-build --
cd ../..