Compare commits

...

18 Commits

Author SHA1 Message Date
GitHub Actions
abe44f6ad1 chore: bump version to 4.11.87 [skip ci] 2026-04-18 21:57:34 +00:00
c17e1c74ee chore: update subproject commit reference to a3dac17
All checks were successful
Build / increment-version (push) Successful in 6s
Build / build-android (push) Successful in 5m4s
Build / create-release (push) Successful in 14s
2026-04-19 07:57:24 +10:00
GitHub Actions
255bfe2262 chore: bump version to 4.11.86 [skip ci] 2026-04-18 21:37:27 +00:00
8eea325e21 Merge branch 'master' of http://synbox.ruv.wtf:8418/litruv/cinny-mobile
All checks were successful
Build / increment-version (push) Successful in 6s
Build / build-android (push) Successful in 5m46s
Build / create-release (push) Successful in 14s
2026-04-19 07:37:19 +10:00
3afb2ee80d chore: update subproject commit reference 2026-04-19 07:37:17 +10:00
GitHub Actions
245188c1a1 chore: bump version to 4.11.85 [skip ci] 2026-04-18 21:24:49 +00:00
1d2057d75a Merge branch 'master' of http://synbox.ruv.wtf:8418/litruv/cinny-mobile
All checks were successful
Build / increment-version (push) Successful in 6s
Build / build-android (push) Successful in 4m43s
Build / create-release (push) Successful in 13s
2026-04-19 07:24:41 +10:00
d8343d089b feat: implement Android app signing setup and update .gitignore for keystore files 2026-04-19 07:24:38 +10:00
GitHub Actions
5cc087330c chore: bump version to 4.11.84 [skip ci] 2026-04-18 21:09:32 +00:00
4163f22f71 Update README.md
All checks were successful
Build / increment-version (push) Successful in 6s
Build / build-android (push) Successful in 4m37s
Build / create-release (push) Successful in 14s
2026-04-19 07:09:24 +10:00
GitHub Actions
ed0761bd20 chore: bump version to 4.11.83 [skip ci] 2026-04-18 21:01:35 +00:00
6fdaa8dfd3 update base
All checks were successful
Build / increment-version (push) Successful in 7s
Build / build-android (push) Successful in 5m10s
Build / create-release (push) Successful in 15s
2026-04-19 07:00:49 +10:00
GitHub Actions
88d0a3f887 chore: bump version to 4.11.82 [skip ci] 2026-04-18 20:58:45 +00:00
240d39593e Merge branch 'master' of http://synbox.ruv.wtf:8418/litruv/cinny-mobile
Some checks failed
Build / increment-version (push) Successful in 6s
Build / build-android (push) Failing after 1m47s
Build / create-release (push) Has been skipped
2026-04-19 06:58:36 +10:00
f06d11711b fix: update subproject commit reference 2026-04-19 06:58:34 +10:00
GitHub Actions
75e1fe6812 chore: bump version to 4.11.81 [skip ci] 2026-04-18 20:54:19 +00:00
f8c1e0641d Merge branch 'master' of http://synbox.ruv.wtf:8418/litruv/cinny-mobile
Some checks failed
Build / increment-version (push) Successful in 5s
Build / build-android (push) Failing after 1m9s
Build / create-release (push) Has been skipped
2026-04-19 06:54:12 +10:00
6795e692d6 fix: update subproject commit reference 2026-04-19 06:54:10 +10:00
7 changed files with 104 additions and 7 deletions

View File

@@ -1,7 +1,7 @@
# Paarrot
Paarrot is a Matrix client focusing primarily on simple, elegant and secure interface. The desktop app is built with Electron and based on Cinny.
## Download
Installers for Windows and Linux can be downloaded from [releases](http://synbox.ruv.wtf:8418/litruv/cinny-desktop/releases).

8
android/.gitignore vendored
View File

@@ -52,10 +52,10 @@ captures/
# Comment next line if keeping position of elements in Navigation Editor is relevant for you
.idea/navEditor.xml
# Keystore files
# Uncomment the following lines if you do not want to check your keystore files in.
#*.jks
#*.keystore
# Keystore files - NEVER commit these!
*.jks
*.keystore
keystore.properties
# External native build folder generated in Android Studio 2.2 and later
.externalNativeBuild

61
android/SIGNING_SETUP.md Normal file
View File

@@ -0,0 +1,61 @@
# Android App Signing Setup
## Why This Matters
Android requires apps to be signed with the same key for updates to work. Without proper signing, users cannot update your app - they must uninstall and reinstall, losing all data.
## Setup Instructions
### 1. Create a Keystore (if you don't have one)
Run this command in the `android/` directory:
```bash
keytool -genkey -v -keystore paarrot-release.keystore -alias paarrot -keyalg RSA -keysize 2048 -validity 10000
```
You'll be asked for:
- Keystore password (remember this!)
- Key password (remember this!)
- Your name, organization, etc.
**IMPORTANT**: Back up this keystore file and remember the passwords! If you lose either, you cannot update your app.
### 2. Create keystore.properties
Copy the example file:
```bash
cp keystore.properties.example keystore.properties
```
Then edit `keystore.properties` and fill in:
- `storeFile`: path to your keystore (e.g., `paarrot-release.keystore`)
- `storePassword`: the keystore password you set
- `keyAlias`: the alias (e.g., `paarrot`)
- `keyPassword`: the key password you set
### 3. Verify
The file `keystore.properties` should be gitignored (check `.gitignore`).
### 4. Build
Now your release builds will be properly signed:
```bash
cd android
./gradlew assembleRelease
```
The signed APK will be in: `app/build/outputs/apk/release/`
## Troubleshooting
### "Updates not installing"
- You're using a different keystore than the original APK
- Solution: Use the same keystore that was used for the first release
### "keystore.properties not found"
- Normal for debug builds
- Only needed for release builds
- Create the file following step 2 above

View File

@@ -1,9 +1,28 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
// Load keystore properties
def keystorePropertiesFile = rootProject.file("keystore.properties")
def keystoreProperties = new Properties()
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
android {
namespace = "com.paarrot.app"
compileSdk = rootProject.ext.compileSdkVersion
signingConfigs {
release {
if (keystorePropertiesFile.exists()) {
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
}
}
}
defaultConfig {
applicationId "com.paarrot.app"
minSdkVersion rootProject.ext.minSdkVersion
@@ -21,6 +40,9 @@ android {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
if (keystorePropertiesFile.exists()) {
signingConfig signingConfigs.release
}
}
}
applicationVariants.all { variant ->

View File

@@ -0,0 +1,14 @@
# Copy this file to keystore.properties and fill in your actual values
# NEVER commit keystore.properties to git!
# Path to your keystore file (relative to android/ directory)
storeFile=paarrot-release.keystore
# Keystore password
storePassword=your_keystore_password_here
# Key alias
keyAlias=paarrot
# Key password
keyPassword=your_key_password_here

2
cinny

Submodule cinny updated: 9eb5e4fa32...a3dac17b7c

View File

@@ -1,6 +1,6 @@
{
"name": "paarrot",
"version": "4.11.80",
"version": "4.11.87",
"description": "Paarrot - A Matrix client based on Cinny",
"engines": {
"node": ">=18.0.0"