Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# GitHub Sponsors funding configuration
# These usernames will be shown in the "Sponsor this project" section

github: [DUpdateSystem]
patreon: DUpdateSystem
open_collective: DUpdateSystem
ko_fi: DUpdateSystem
liberapay: DUpdateSystem
custom: ["https://github.com/sponsors/DUpdateSystem"]
70 changes: 70 additions & 0 deletions .github/workflows/android-x86_64.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: Android x86_64 Cross-Compile

on:
push:
branches: [ main, master ]
pull_request:
branches: [ main, master ]
workflow_dispatch:

jobs:
build-android:
runs-on: ubuntu-latest

steps:
- name: Checkout Source Code
uses: actions/checkout@v4
with:
submodules: true
fetch-depth: 0

- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'

- name: Set up Android SDK & NDK
uses: android-actions/setup-android@v3

- name: Install Android NDK Component
run: |
sdkmanager --install "ndk;29.0.14206865"
echo "ANDROID_NDK_HOME=${ANDROID_HOME}/ndk/29.0.14206865" >> $GITHUB_ENV

- name: Install Rust Toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: x86_64-linux-android aarch64-linux-android armv7-linux-androideabi

- name: Install cargo-ndk
run: cargo install cargo-ndk

- name: Install cargo-ndk for ARM64
run: cargo install cargo-ndk

- name: Build Release (x86_64)
run: |
export CMAKE_TOOLCHAIN_FILE="${{ env.ANDROID_NDK_HOME }}/build/cmake/android.toolchain.cmake"
export CMAKE_TRY_COMPILE_TARGET_TYPE="STATIC_LIBRARY"
cargo ndk --target x86_64-linux-android --api 26 -- cargo build --release -p api_proxy

- name: Build Release (ARM64)
run: |
export CMAKE_TOOLCHAIN_FILE="${{ env.ANDROID_NDK_HOME }}/build/cmake/android.toolchain.cmake"
export CMAKE_TRY_COMPILE_TARGET_TYPE="STATIC_LIBRARY"
cargo ndk --target aarch64-linux-android --api 26 -- cargo build --release -p api_proxy

- name: Build Release (ARMv7)
run: |
export CMAKE_TOOLCHAIN_FILE="${{ env.ANDROID_NDK_HOME }}/build/cmake/android.toolchain.cmake"
export CMAKE_TRY_COMPILE_TARGET_TYPE="STATIC_LIBRARY"
cargo ndk --target armv7-linux-androideabi --api 26 -- cargo build --release -p api_proxy

- name: Upload Rust Libraries
uses: actions/upload-artifact@v4
with:
name: rust-jniLibs
path: |
core-getter/src/main/rust/api_proxy/target/*/release/libapi_proxy.so
retention-days: 7
8 changes: 6 additions & 2 deletions .github/workflows/android.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,13 +59,17 @@ jobs:

# Split due https://github.com/mozilla/rust-android-gradle/issues/38
- name: Build with Gradle (debug)
run: ./gradlew -PappVerName=${{ env.VERSION }} assembleDebug
run: |
trap '' 36
./gradlew -PappVerName=${{ env.VERSION }} assembleDebug
env:
ANDROID_NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }}

- name: Build with Gradle (release)
if: ${{ !github.event.pull_request }}
run: ./gradlew -PappVerName=${{ env.VERSION }} assembleRelease
run: |
trap '' 36
./gradlew -PappVerName=${{ env.VERSION }} assembleRelease
env:
ANDROID_NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }}

Expand Down
87 changes: 87 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# Contributing to UpgradeAll

Thank you for your interest in contributing! This project thrives on community contributions.

## Ways to Contribute

### 1. Add New Software Sources (High Impact)
The easiest and most valuable contribution is adding new software sources to [`UpgradeAll-rules`](https://github.com/DUpdateSystem/UpgradeAll-rules):
- **F-Droid repositories** (IzzyOnDroid, Guardian, etc.)
- **GitHub/GitLab/Codeberg releases**
- **Custom APK sources**
- Just add a JSON file — no code changes needed

### 2. Code Contributions
- **Bug fixes** — Check [open issues](https://github.com/DUpdateSystem/UpgradeAll/issues)
- **Feature requests** — Discuss in [Discussions](https://github.com/DUpdateSystem/UpgradeAll/discussions)
- **Performance improvements** — Profile and optimize

### 3. Documentation
- Improve [ARM build guide](docs/ARM_BUILD.md)
- Translate to your language
- Add examples/screenshots

### 4. Testing
- Test on different Android versions/devices
- Report bugs with device info + logs
- Test beta releases

## Development Setup

### Prerequisites
- Android Studio / Gradle 9.x
- JDK 21
- Android SDK/NDK 29+
- Rust 1.80+ (for getter module)

### Quick Start
```bash
git clone --recurse-submodules https://github.com/DUpdateSystem/UpgradeAll.git
cd UpgradeAll

# Debug build
./gradlew assembleDebug -Pfree

# Run tests
./gradlew test
```

## Pull Request Guidelines

1. **One feature/fix per PR**
2. **Write clear commit messages** — follow [Conventional Commits](https://www.conventionalcommits.org/)
3. **Add tests** for new functionality
4. **Update docs** if behavior changes
5. **Run lint/tests** before submitting:
```bash
./gradlew lint test
```

## Code Style

- **Kotlin**: Follow [Kotlin style guide](https://kotlinlang.org/docs/coding-conventions.html)
- **XML**: 4-space indent, consistent attribute ordering
- **Rust**: `rustfmt` (run `cargo fmt`)

## Reporting Issues

Use the issue templates:
- **Bug Report** — Device, Android version, steps to reproduce, logs
- **Feature Request** — Use case, alternatives considered
- **Source Request** — App name, source URL, why it's needed

## Sponsor

This project is maintained by volunteers. If you find it useful, please consider sponsoring:

[![GitHub Sponsors](https://img.shields.io/github/sponsors/DUpdateSystem?style=for-the-badge)](https://github.com/sponsors/DUpdateSystem)
[![Patreon](https://img.shields.io/badge/Patreon-Support-orange?style=for-the-badge&logo=patreon)](https://patreon.com/DUpdateSystem)
[![Ko-fi](https://img.shields.io/badge/Ko--fi-Support-blue?style=for-the-badge&logo=ko-fi)](https://ko-fi.com/DUpdateSystem)

## Code of Conduct

This project follows the [Contributor Covenant](CODE_OF_CONDUCT.md). Be respectful, inclusive, and constructive.

## License

GPL-3.0 — see [LICENSE](LICENSE) for details.
12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,18 @@ If you are familier with multiple languages, please help us introduce the App to
You can help us translate this project on [Weblate](https://hosted.weblate.org/projects/upgradeall/).


## 👤 Maintainer

**DUpdateSystem** — Creator & Lead Maintainer

- GitHub: [@DUpdateSystem](https://github.com/DUpdateSystem)
- Email: xiangzhedev@gmail.com
- Telegram: [@DUpdateSystem](https://t.me/DUpdateSystem)

*This project is maintained by a solo developer. If you find UpgradeAll useful, please consider [sponsoring](https://github.com/sponsors/DUpdateSystem) to support continued development.*

---

## 📖 License
Use of this software code is **subject to the following license agreement**:
[GNU General Public License v3.0](https://github.com/DUpdateSystem/UpgradeAll/blob/master/LICENSE)
Expand Down
Loading