build: F-Droid v2 (#1585)

This commit is contained in:
Catfriend1
2025-09-08 12:42:17 +02:00
committed by GitHub
parent 37f17df7f0
commit 29e6df2f0a
16 changed files with 74 additions and 48 deletions

View File

@ -44,10 +44,9 @@ body:
attributes: attributes:
label: App install source - see wiki for details on release channels label: App install source - see wiki for details on release channels
options: options:
- F-Droid release build - GitHub or F-Droid release build
- GitHub trusted debug build - GitHub trusted debug build
- GitHub untrusted debug build - GitHub untrusted debug build
- GitHub release build
validations: validations:
required: true required: true

View File

@ -65,12 +65,12 @@ jobs:
shell: bash shell: bash
run: | run: |
set -eu set -eu
mv "app/build/outputs/apk/debug/app-debug.apk" "app/build/outputs/apk/debug/com.github.catfriend1.syncthingandroid_debug_v${{ env.VERSION }}_${{ env.COMMIT_HASH }}.apk" mv "app/build/outputs/apk/debug/app-debug.apk" "app/build/outputs/apk/debug/com.github.catfriend1.syncthingfork_debug_v${{ env.VERSION }}_${{ env.COMMIT_HASH }}.apk"
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v4
with: with:
name: com.github.catfriend1.syncthingandroid_debug_v${{ env.VERSION }}_${{ env.COMMIT_HASH }}.apk name: com.github.catfriend1.syncthingfork_debug_v${{ env.VERSION }}_${{ env.COMMIT_HASH }}.apk
path: app/build/outputs/apk/debug/com.github.catfriend1.syncthingandroid_debug_v${{ env.VERSION }}_${{ env.COMMIT_HASH }}.apk path: app/build/outputs/apk/debug/com.github.catfriend1.syncthingfork_debug_v${{ env.VERSION }}_${{ env.COMMIT_HASH }}.apk
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v4
with: with:

View File

@ -69,11 +69,11 @@ jobs:
run: | run: |
set -eu set -eu
# #
mv "app/build/outputs/apk/release/app-release.apk" "app/build/outputs/apk/release/com.github.catfriend1.syncthingandroid_release_v${{ env.VERSION }}.apk" mv "app/build/outputs/apk/release/app-release.apk" "app/build/outputs/apk/release/com.github.catfriend1.syncthingfork_release_v${{ env.VERSION }}.apk"
# #
cd "app/build/outputs/apk/release" cd "app/build/outputs/apk/release"
echo '${{ secrets.GNUPG_SIGNING_KEY_BASE64 }}' | base64 -d | gpg --import echo '${{ secrets.GNUPG_SIGNING_KEY_BASE64 }}' | base64 -d | gpg --import
sha256sum "com.github.catfriend1.syncthingandroid_release_v${{ env.VERSION }}.apk" | gpg --clearsign > sha256sum.txt.asc sha256sum "com.github.catfriend1.syncthingfork_release_v${{ env.VERSION }}.apk" | gpg --clearsign > sha256sum.txt.asc
- uses: ncipollo/release-action@v1 - uses: ncipollo/release-action@v1
with: with:

View File

@ -3,8 +3,8 @@
[![License: MPLv2](https://img.shields.io/badge/License-MPLv2-blue.svg)](https://opensource.org/licenses/MPL-2.0) [![License: MPLv2](https://img.shields.io/badge/License-MPLv2-blue.svg)](https://opensource.org/licenses/MPL-2.0)
<a href="https://github.com/Catfriend1/syncthing-android/releases/latest" alt="GitHub release"><img src="https://img.shields.io/github/v/release/Catfriend1/syncthing-android" /></a> <a href="https://github.com/Catfriend1/syncthing-android/releases/latest" alt="GitHub release"><img src="https://img.shields.io/github/v/release/Catfriend1/syncthing-android" /></a>
<a href="https://tooomm.github.io/github-release-stats/?username=Catfriend1&repository=syncthing-android" alt="GitHub Stats"><img src="https://img.shields.io/github/downloads/Catfriend1/syncthing-android/total.svg" /></a> <a href="https://tooomm.github.io/github-release-stats/?username=Catfriend1&repository=syncthing-android" alt="GitHub Stats"><img src="https://img.shields.io/github/downloads/Catfriend1/syncthing-android/total.svg" /></a>
<a href="https://f-droid.org/packages/com.github.catfriend1.syncthingandroid" alt="F-Droid release"><img src="https://img.shields.io/f-droid/v/com.github.catfriend1.syncthingandroid.svg" /></a> <a href="https://f-droid.org/packages/com.github.catfriend1.syncthingfork" alt="F-Droid release"><img src="https://img.shields.io/f-droid/v/com.github.catfriend1.syncthingfork.svg" /></a>
<a href="https://fdroid-metrics.streamlit.app/package_details?package=com.github.catfriend1.syncthingandroid"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fgithub.com%2Fkitswas%2Ffdroid-metrics-dashboard%2Fraw%2Frefs%2Fheads%2Fmain%2Fprocessed%2Fmonthly%2Fcom.github.catfriend1.syncthingandroid.json&query=%24.total_downloads&style=for-the-badge&logo=fdroid&label=F-Droid%20%F0%9F%93%A5%20last%20month" /></a> <a href="https://fdroid-metrics.streamlit.app/package_details?package=com.github.catfriend1.syncthingfork"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fgithub.com%2Fkitswas%2Ffdroid-metrics-dashboard%2Fraw%2Frefs%2Fheads%2Fmain%2Fprocessed%2Fmonthly%2Fcom.github.catfriend1.syncthingfork.json&query=%24.total_downloads&style=for-the-badge&logo=fdroid&label=F-Droid%20%F0%9F%93%A5%20last%20month" /></a>
<a href="https://hosted.weblate.org/projects/syncthing/android/catfriend1/"><img src="https://hosted.weblate.org/widget/syncthing/android/catfriend1/fork-stringsxml/svg-badge.svg" alt="Translation status" /></a> <a href="https://hosted.weblate.org/projects/syncthing/android/catfriend1/"><img src="https://hosted.weblate.org/widget/syncthing/android/catfriend1/fork-stringsxml/svg-badge.svg" alt="Translation status" /></a>
[![Build App](https://github.com/Catfriend1/syncthing-android/actions/workflows/build-app.yaml/badge.svg)](https://github.com/Catfriend1/syncthing-android/actions/workflows/build-app.yaml) [![Build App](https://github.com/Catfriend1/syncthing-android/actions/workflows/build-app.yaml/badge.svg)](https://github.com/Catfriend1/syncthing-android/actions/workflows/build-app.yaml)

View File

@ -51,7 +51,7 @@ android {
} }
defaultConfig { defaultConfig {
applicationId = "com.github.catfriend1.syncthingandroid" applicationId = "com.github.catfriend1.syncthingfork"
minSdk = libs.versions.min.sdk.get().toInt() minSdk = libs.versions.min.sdk.get().toInt()
targetSdk = libs.versions.target.sdk.get().toInt() targetSdk = libs.versions.target.sdk.get().toInt()
versionCode = libs.versions.version.code.get().toInt() versionCode = libs.versions.version.code.get().toInt()

View File

@ -1,6 +1,5 @@
This is a fork of the Syncthing-Android wrapper for Syncthing that brings major enhancements like: This is a fork of the Syncthing-Android wrapper for Syncthing that brings major enhancements like:
* Folder, device and overall sync progress can easily be read off the UI. * Folder, device and overall sync progress can easily be read off the UI.
* "Syncthing Camera" - an optional feature (with optional permission to use the camera) where you can take pictures with your friend, partner, ... on two phones into one shared and private Syncthing folder. No cloud involved. - FEATURE CURRENTLY IN BETA STAGE -
* "Sync every hour" to save even more battery * "Sync every hour" to save even more battery
* Individual sync conditions can be applied per device and per folder * Individual sync conditions can be applied per device and per folder
* Recent changes UI, click to open files. * Recent changes UI, click to open files.
@ -12,17 +11,7 @@ This is a fork of the Syncthing-Android wrapper for Syncthing that brings major
Syncthing-Fork for Android is a wrapper for Syncthing that provides an Android UI instead of Syncthing's built-in Web UI. Syncthing replaces proprietary sync and cloud services with something open, trustworthy and decentralized. Your data is your data alone and you deserve to choose where it is stored, if it is shared with some third party and how it's transmitted over the Internet. Syncthing-Fork for Android is a wrapper for Syncthing that provides an Android UI instead of Syncthing's built-in Web UI. Syncthing replaces proprietary sync and cloud services with something open, trustworthy and decentralized. Your data is your data alone and you deserve to choose where it is stored, if it is shared with some third party and how it's transmitted over the Internet.
Goals of the fork: Please seek help on the forum and/or social media apps first before creating issues on the tracker. Please keep in mind that Syncthing-Fork was born as a personal interest to help family and friends use Syncthing on Android. It was not targeted at the currently more than 100.000 users even though the results are shared with you and the community. Thank you.
* Develop and try out enhancements together with the community.
* Release the wrapper more frequently to identify and fix bugs caused by changes in the syncthing submodule
* Make enhancements configurable in the UI, users should be able to turn them on and off
Comparison between upstream and fork at the time of writing this:
* Both contain the syncthing binary built from the official source at GitHub
* Syncing functionality and reliability depends on the syncthing binary submodule version.
* Fork gets along with upstream and sometimes they pick up my improvements.
* Strategy and release frequency is different
* Only the wrapper containing the Android UI is addressed by the fork.
Website: https://github.com/Catfriend1/syncthing-android Website: https://github.com/Catfriend1/syncthing-android
@ -30,7 +19,7 @@ Source code: https://github.com/Catfriend1/syncthing-android
How Syncthing writes to external SD card: https://github.com/Catfriend1/syncthing-android/blob/master/wiki/SD-card-write-access.md How Syncthing writes to external SD card: https://github.com/Catfriend1/syncthing-android/blob/master/wiki/SD-card-write-access.md
Wiki, FAQ and helpful articles: https://github.com/Catfriend1/syncthing-android/wiki Wiki, FAQ and helpful articles: https://github.com/Catfriend1/syncthing-android/tree/main/wiki#readme
Issues: https://github.com/Catfriend1/syncthing-android/issues Issues: https://github.com/Catfriend1/syncthing-android/issues

View File

@ -1,6 +1,6 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"> <manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="com.github.catfriend1.syncthingandroid.permission.RECEIVE_SYNC_STATUS" /> <uses-permission android:name="com.github.catfriend1.syncthingfork.permission.RECEIVE_SYNC_STATUS" />
<application <application
android:allowBackup="true" android:allowBackup="true"
@ -19,7 +19,7 @@
<receiver android:name=".SyncStatusReceiver" android:exported="true"> <receiver android:name=".SyncStatusReceiver" android:exported="true">
<intent-filter> <intent-filter>
<action android:name="com.github.catfriend1.syncthingandroid.ACTION_NOTIFY_FOLDER_SYNC_COMPLETE" /> <action android:name="com.github.catfriend1.syncthingfork.ACTION_NOTIFY_FOLDER_SYNC_COMPLETE" />
</intent-filter> </intent-filter>
</receiver> </receiver>
</application> </application>

View File

@ -9,7 +9,7 @@ public class SyncStatusReceiver extends BroadcastReceiver {
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
String action = intent.getAction(); String action = intent.getAction();
if ("com.github.catfriend1.syncthingandroid.ACTION_NOTIFY_FOLDER_SYNC_COMPLETE".equals(action)) { if ("com.github.catfriend1.syncthingfork.ACTION_NOTIFY_FOLDER_SYNC_COMPLETE".equals(action)) {
Log.d("SyncStatusReceiver", "Received broadcast"); Log.d("SyncStatusReceiver", "Received broadcast");
Log.d("SyncStatusReceiver", "deviceId: " + intent.getStringExtra("deviceId")); Log.d("SyncStatusReceiver", "deviceId: " + intent.getStringExtra("deviceId"));
Log.d("SyncStatusReceiver", "folderId: " + intent.getStringExtra("folderId")); Log.d("SyncStatusReceiver", "folderId: " + intent.getStringExtra("folderId"));

View File

@ -1 +1 @@
com.github.catfriend1.syncthingandroid.debug com.github.catfriend1.syncthingfork.debug

View File

@ -8,6 +8,7 @@ IssueTracker: https://github.com/Catfriend1/syncthing-android/issues
Translation: https://hosted.weblate.org/projects/syncthing/android/catfriend1 Translation: https://hosted.weblate.org/projects/syncthing/android/catfriend1
Changelog: https://github.com/Catfriend1/syncthing-android/releases Changelog: https://github.com/Catfriend1/syncthing-android/releases
Name: Syncthing-Fork v1
AutoName: Syncthing-Fork AutoName: Syncthing-Fork
RepoType: git RepoType: git

View File

@ -0,0 +1,45 @@
Categories:
- Cloud Storage & File Sync
- Internet
License: MPL-2.0
WebSite: https://github.com/Catfriend1/syncthing-android/wiki
SourceCode: https://github.com/Catfriend1/syncthing-android
IssueTracker: https://github.com/Catfriend1/syncthing-android/issues
Translation: https://hosted.weblate.org/projects/syncthing/android/catfriend1
Changelog: https://github.com/Catfriend1/syncthing-android/releases
AutoName: Syncthing-Fork
RepoType: git
Repo: https://github.com/Catfriend1/syncthing-android.git
Binaries: https://github.com/Catfriend1/syncthing-android/releases/download/v%v/com.github.catfriend1.syncthingfork_release_v%v.apk
Builds:
- versionName: 2.0.7.0
versionCode: 2000700
commit: 1fb311060269933631f6af0d3737ef6f98942deb
subdir: app
submodules: true
sudo:
- echo "deb https://deb.debian.org/debian trixie main" > /etc/apt/sources.list.d/trixie.list
- apt-get update
- apt-get install -y -t trixie golang-go openjdk-21-jdk-headless
- update-alternatives --auto java
- apt-get install -y autogen automake autopoint bzip2 g++ libc-dev make gettext
libtool pkg-config rename shtool
gradle:
- yes
scanignore:
- syncthing/src/github.com/syncthing/syncthing/lib/model/testdata
AllowedAPKSigningKeys: d374b8de5057013143c7d1515a015598c2df403be8160cae01a58c227e6e86aa
MaintainerNotes: |-
The submodule in syncthing/src/github.com/syncthing/syncthing must be
pristine, as the version/release information is taken from git.
AutoUpdateMode: Version
UpdateCheckMode: Tags ^v2[a-z0-9.]*$
UpdateCheckData: gradle/libs.versions.toml|version-code\s=\s"(\d+)"|.|version-name\s=\s"(.*)"
CurrentVersion: 2.0.7.0
CurrentVersionCode: 2000700

View File

@ -8,7 +8,7 @@ The following instructions to solve the problem by preparing the Android TV for
* Locate / Download Google platform-tools, navigate to folder where adb.exe resides. Open Command Prompt here * Locate / Download Google platform-tools, navigate to folder where adb.exe resides. Open Command Prompt here
* Type the following: * Type the following:
${applicationId} = com.github.catfriend1.syncthingandroid ${applicationId} = com.github.catfriend1.syncthingfork
*adb start-server* *adb start-server*

View File

@ -7,14 +7,14 @@ You can receive the folder sync complete event from Syncthing-Fork by using a Br
Prerequisites: Prerequisites:
- Declare our permission in your "AndroidManifest.xml" - Declare our permission in your "AndroidManifest.xml"
``` ```
<uses-permission android:name="com.github.catfriend1.syncthingandroid.permission.RECEIVE_SYNC_STATUS" /> <uses-permission android:name="com.github.catfriend1.syncthingfork.permission.RECEIVE_SYNC_STATUS" />
``` ```
- Add a receiver to your "AndroidManifest.xml" - Add a receiver to your "AndroidManifest.xml"
``` ```
<receiver android:name=".SyncStatusReceiver" android:exported="true"> <receiver android:name=".SyncStatusReceiver" android:exported="true">
<intent-filter> <intent-filter>
<action android:name="com.github.catfriend1.syncthingandroid.ACTION_NOTIFY_FOLDER_SYNC_COMPLETE" /> <action android:name="com.github.catfriend1.syncthingfork.ACTION_NOTIFY_FOLDER_SYNC_COMPLETE" />
</intent-filter> </intent-filter>
</receiver> </receiver>
``` ```
@ -33,7 +33,7 @@ public class SyncStatusReceiver extends BroadcastReceiver {
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
String action = intent.getAction(); String action = intent.getAction();
if ("com.github.catfriend1.syncthingandroid.ACTION_NOTIFY_FOLDER_SYNC_COMPLETE".equals(action)) { if ("com.github.catfriend1.syncthingfork.ACTION_NOTIFY_FOLDER_SYNC_COMPLETE".equals(action)) {
Log.d("SyncStatusReceiver", "Received broadcast"); Log.d("SyncStatusReceiver", "Received broadcast");
Log.d("SyncStatusReceiver", "deviceId: " + intent.getStringExtra("deviceId")); Log.d("SyncStatusReceiver", "deviceId: " + intent.getStringExtra("deviceId"));
Log.d("SyncStatusReceiver", "folderId: " + intent.getStringExtra("folderId")); Log.d("SyncStatusReceiver", "folderId: " + intent.getStringExtra("folderId"));

View File

@ -3,7 +3,7 @@ HMD Global phones have been reported to kill apps with a manufacturer-specific i
To work around this, connect your phone to a computer running ADB. To work around this, connect your phone to a computer running ADB.
If you like to allow Syncthing-Fork to attempt to disable DuraSpeed system-wide when your phone boots, issue the following commands: If you like to allow Syncthing-Fork to attempt to disable DuraSpeed system-wide when your phone boots, issue the following commands:
${applicationId} = com.github.catfriend1.syncthingandroid ${applicationId} = com.github.catfriend1.syncthingfork
* adb shell pm grant ${applicationId} android.permission.WRITE_SECURE_SETTINGS * adb shell pm grant ${applicationId} android.permission.WRITE_SECURE_SETTINGS

View File

@ -4,7 +4,7 @@ Remote control by broadcast intents has to be enabled under "Settings" > "Behavi
Syncthing can be controlled externally by sending Broadcast-Intents. Applications like **Tasker**, **Llama** or **Automate** now can _start_ or _stop_ Syncthing on behalf of the user. Syncthing can be controlled externally by sending Broadcast-Intents. Applications like **Tasker**, **Llama** or **Automate** now can _start_ or _stop_ Syncthing on behalf of the user.
Use cases would be to run Syncthing only in special conditions - like at home and charging, or once every night, ... Use cases would be to run Syncthing only in special conditions - like at home and charging, or once every night, ...
${applicationId} = com.github.catfriend1.syncthingandroid ${applicationId} = com.github.catfriend1.syncthingfork
The following intent actions are available: The following intent actions are available:
* Let Syncthing Follow Run Conditions * Let Syncthing Follow Run Conditions

View File

@ -1,32 +1,24 @@
Syncthing-Fork "Wrapper for Syncthing" has these release channels: Syncthing-Fork "Wrapper for Syncthing" has these release channels:
<b>1. F-Droid release build</b> <b>1. GitHub and F-Droid release build</b>
* <b>"COMMON USER" - please choose this!</b> * <b>"COMMON USER" - please choose this!</b>
* Published on [F-Droid](https://f-droid.org/packages/com.github.catfriend1.syncthingandroid/) and [GitHub release page](https://github.com/Catfriend1/syncthing-android/releases/latest) * Published on [F-Droid](https://f-droid.org/packages/com.github.catfriend1.syncthingfork/) and [GitHub release page](https://github.com/Catfriend1/syncthing-android/releases/latest)
* File name is like: com.github.catfriend1.syncthingandroid_fdroid_1.30.0.3_1234567.apk * File name is like: com.github.catfriend1.syncthingfork_release_v2.0.7.0.apk
* Certificate hash: yei5Ybhe9jZNx7NG4WE9MgjnfsPqbHCzUhHvfedPEuU=
* Signing Certificate SHA256 fingerprint: <details>C9:E8:B9:61:B8:5E:F6:36:4D:C7:B3:46:E1:61:3D:32:08:E7:7E:C3:EA:6C:70:B3:52:11:EF:7D:E7:4F:12:E5</details>
<b>2. GitHub release build</b>
* If you don't like to use F-Droid for some reason, please choose this!
* Only published on [GitHub release page](https://github.com/Catfriend1/syncthing-android/releases/latest)
* File name is like: com.github.catfriend1.syncthingandroid_release_1.30.0.3_1234567.apk
* Certificate hash: 03S43lBXATFDx9FRWgFVmMLfQDvoFgyuAaWMIn5uhqo= * Certificate hash: 03S43lBXATFDx9FRWgFVmMLfQDvoFgyuAaWMIn5uhqo=
* Signing Certificate SHA256 fingerprint: <details>D3:74:B8:DE:50:57:01:31:43:C7:D1:51:5A:01:55:98:C2:DF:40:3B:E8:16:0C:AE:01:A5:8C:22:7E:6E:86:AA</details> * Signing Certificate SHA256 fingerprint: <details>D3:74:B8:DE:50:57:01:31:43:C7:D1:51:5A:01:55:98:C2:DF:40:3B:E8:16:0C:AE:01:A5:8C:22:7E:6E:86:AA</details>
<b>4. GitHub debug build</b> <b>2. GitHub debug build</b>
* Only published on GitHub * Only published on GitHub
* Can be obtained by looking at the [action workflow builds](https://github.com/Catfriend1/syncthing-android/actions) and artifacts. * Can be obtained by looking at the [action workflow builds](https://github.com/Catfriend1/syncthing-android/actions) and artifacts.
* It's for maintainers and contributors who require a second installation of the app on their phone for testing purposes. * It's for maintainers and contributors who require a second installation of the app on their phone for testing purposes.
* File name is like: com.github.catfriend1.syncthingandroid_debug_1.30.0.3_1234567.apk * File name is like: com.github.catfriend1.syncthingfork_debug_v2.0.8.0_1234567.apk
* TRUSTED builds from this repository owners: * TRUSTED builds from this repository owners:
* * Certificate hash: x9QGpAqFQXg1+79ADsY1k0uBrj7+W1HF+PN3BunPZrM= * * Certificate hash: x9QGpAqFQXg1+79ADsY1k0uBrj7+W1HF+PN3BunPZrM=
* * Signing Certificate SHA256 fingerprint: <details>C7:D4:06:A4:0A:85:41:78:35:FB:BF:40:0E:C6:35:93:4B:81:AE:3E:FE:5B:51:C5:F8:F3:77:06:E9:CF:66:B3</details> * * Signing Certificate SHA256 fingerprint: <details>C7:D4:06:A4:0A:85:41:78:35:FB:BF:40:0E:C6:35:93:4B:81:AE:3E:FE:5B:51:C5:F8:F3:77:06:E9:CF:66:B3</details>
* UNTRUSTED builds from contributors of forks: * UNTRUSTED builds from contributors of forks:
* * Debug builds triggered from potentially untrusted sources, e.g. fork repositories use a [PUBLIC signing certificate](https://github.com/Catfriend1/syncthing-android/blob/main/debug_scripts/debug.keystore.pub). This offers NO security at all. The content of these builds is NOT authored NOR approved by this repository. They are offered for TESTING PURPOSES only and are NOT production ready. * * Debug builds triggered from potentially untrusted sources, e.g. fork repositories use a [PUBLIC signing certificate](https://github.com/Catfriend1/syncthing-android/blob/main/scripts/debug/debug.keystore.pub). This offers NO security at all. The content of these builds is NOT authored NOR approved by this repository. They are offered for TESTING PURPOSES only and are NOT production ready.
* * If they would not be signed by the same PUBLIC key, contributors who forked the app and opened a PR here would not be able to try out their contributed changes on their own phone or emulator by upgrading from their previous build as the CI build process would use a different debug signing key for each superseding build. * * If they would not be signed by the same PUBLIC key, contributors who forked the app and opened a PR here would not be able to try out their contributed changes on their own phone or emulator by upgrading from their previous build as the CI build process would use a different debug signing key for each superseding build.
* * Public UNTRUSTED key <details>Certificate hash: 0fTGzY6Ii7fxLbtKzA5t94Zid/ECP5Gj5w/s5xRLOGM=<br>SHA256 fingerprint: D1:F4:C6:CD:8E:88:8B:B7:F1:2D:BB:4A:CC:E:6D:F7:86:62:77:F1:2:3F:91:A3:E7:F:EC:E7:14:4B:38:63</details> * * Public UNTRUSTED key <details>Certificate hash: 0fTGzY6Ii7fxLbtKzA5t94Zid/ECP5Gj5w/s5xRLOGM=<br>SHA256 fingerprint: D1:F4:C6:CD:8E:88:8B:B7:F1:2D:BB:4A:CC:E:6D:F7:86:62:77:F1:2:3F:91:A3:E7:F:EC:E7:14:4B:38:63</details>
@ -50,7 +42,7 @@ keytool -list -printcert -jarfile "/path/to/release.apk" | grep "SHA256: " | cut
## https://sisik.eu/cert ## https://sisik.eu/cert
``` ```
Future releases might be signed with GPG. Here is the public key which allows you to verify a release is "genuine". This happens under the assumption that the build process on GitHub Actions was not tampered with. Releases are signed using GPG. Here is the public key which allows you to verify a release is "genuine". This happens under the assumption that the build process on GitHub Actions was not tampered with.
Public key: Catfriend1 Public key: Catfriend1
``` ```