chore: import upstream snapshot with attribution

This commit is contained in:
wehub-resource-sync
2026-07-13 12:58:31 +08:00
commit f06de36198
4585 changed files with 588418 additions and 0 deletions
+15
View File
@@ -0,0 +1,15 @@
# These are supported funding model platforms
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
polar: # Replace with a single Polar username
buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
thanks_dev: # Replace with a single thanks.dev username
custom: ['https://boosty.to/t8rin']
+83
View File
@@ -0,0 +1,83 @@
name: Bug Report
description: Create a report to help us improve
labels: ["bug"]
body:
- type: textarea
id: description
attributes:
label: Describe the bug
description: A clear and concise description of what the bug is.
placeholder: Tell us what happened...
validations:
required: true
- type: textarea
id: reproduce
attributes:
label: Steps to reproduce
description: Steps to reproduce the behavior
placeholder: |
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected behavior
description: A clear and concise description of what you expected to happen.
placeholder: Tell us what should have happened...
validations:
required: true
- type: textarea
id: screenshots
attributes:
label: Screenshots
description: If applicable, add screenshots to help explain your problem.
placeholder: You can drag and drop images here...
- type: input
id: device
attributes:
label: Device
placeholder: e.g., Samsung Galaxy S23
validations:
required: true
- type: input
id: os
attributes:
label: OS
placeholder: e.g., Android 14
validations:
required: true
- type: input
id: locale
attributes:
label: Locale
placeholder: e.g., en-US, ru-RU
- type: input
id: version
attributes:
label: App Version
placeholder: e.g., 1.2.3
validations:
required: true
- type: dropdown
id: variant
attributes:
label: FOSS or Market
description: Which variant of the app are you using?
options:
- FOSS
- Market (Google Play)
validations:
required: true
@@ -0,0 +1,28 @@
name: Feature Request
description: Suggest an idea for this project
labels: ["enhancement"]
body:
- type: textarea
id: problem
attributes:
label: Is your feature request related to a problem? Please describe.
placeholder: A clear and concise description of what the problem is...
validations:
required: false
- type: textarea
id: solution
attributes:
label: Describe the solution you'd like
placeholder: A clear and concise description of what you want to happen...
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: Describe alternatives you've considered
placeholder: A clear and concise description of any alternative solutions or features you've considered...
validations:
required: false
+11
View File
@@ -0,0 +1,11 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
version: 2
updates:
- package-ecosystem: "gradle" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "daily"
+82
View File
@@ -0,0 +1,82 @@
name: Android CI
on:
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Set Swap Space
uses: pierotofy/set-swap-space@master
with:
swap-size-gb: 10
- uses: actions/checkout@v4
- name: set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'adopt'
java-package: 'jdk'
cache: gradle
- name: Set up Keystore
run: |
sudo apt update -y || true
sudo apt install -y --no-install-recommends coreutils
mkdir -p $RUNNER_TEMP/keystores
echo "${{ secrets.SIGNING_KEY }}" | base64 --decode > $RUNNER_TEMP/keystores/keystore.jks
- name: Build FOSS APKs
run: bash ./gradlew assembleFossRelease
- name: Sign FOSS APKs
run: |
ANDROID_SDK_PATH=$ANDROID_HOME/build-tools/35.0.0/apksigner
for apk in app/build/outputs/apk/foss/release/*.apk; do
$ANDROID_SDK_PATH sign \
--ks $RUNNER_TEMP/keystores/keystore.jks \
--ks-key-alias ${{ secrets.ALIAS }} \
--ks-pass pass:${{ secrets.KEY_STORE_PASS }} \
--key-pass pass:${{ secrets.KEY_STORE_PASS }} \
--out "$apk" \
"$apk"
done
- name: Upload FOSS APKs
uses: actions/upload-artifact@v4
with:
name: Signed FOSS APKs
path: app/build/outputs/apk/foss/release/*.apk
- name: Delete FOSS APKs
run: rm -rf app/build/outputs/apk/foss
- name: Build Market APKs
run: bash ./gradlew assembleMarketRelease
- name: Sign Market APKs
run: |
ANDROID_SDK_PATH=$ANDROID_HOME/build-tools/35.0.0/apksigner
for apk in app/build/outputs/apk/market/release/*.apk; do
$ANDROID_SDK_PATH sign \
--ks $RUNNER_TEMP/keystores/keystore.jks \
--ks-key-alias ${{ secrets.ALIAS }} \
--ks-pass pass:${{ secrets.KEY_STORE_PASS }} \
--key-pass pass:${{ secrets.KEY_STORE_PASS }} \
--out "$apk" \
"$apk"
done
- name: Upload Market APKs
uses: actions/upload-artifact@v4
with:
name: Signed Market APKs
path: app/build/outputs/apk/market/release/*.apk
- name: Delete Market APKs
run: rm -rf app/build/outputs/apk/market
+57
View File
@@ -0,0 +1,57 @@
name: Android CI FOSS
on:
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Set Swap Space
uses: pierotofy/set-swap-space@master
with:
swap-size-gb: 10
- uses: actions/checkout@v4
- name: set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'adopt'
java-package: 'jdk'
cache: gradle
- name: Set up Keystore
run: |
sudo apt update -y || true
sudo apt install -y --no-install-recommends coreutils
mkdir -p $RUNNER_TEMP/keystores
echo "${{ secrets.SIGNING_KEY }}" | base64 --decode > $RUNNER_TEMP/keystores/keystore.jks
- name: Build FOSS APKs
run: bash ./gradlew assembleFossRelease
- name: Sign FOSS APKs
run: |
ANDROID_SDK_PATH=$ANDROID_HOME/build-tools/35.0.0/apksigner
for apk in app/build/outputs/apk/foss/release/*.apk; do
$ANDROID_SDK_PATH sign \
--ks $RUNNER_TEMP/keystores/keystore.jks \
--ks-key-alias ${{ secrets.ALIAS }} \
--ks-pass pass:${{ secrets.KEY_STORE_PASS }} \
--key-pass pass:${{ secrets.KEY_STORE_PASS }} \
--out "$apk" \
"$apk"
done
- name: Upload FOSS APKs
uses: actions/upload-artifact@v4
with:
name: Signed FOSS APKs
path: app/build/outputs/apk/foss/release/*.apk
- name: Delete FOSS APKs
run: rm -rf app/build/outputs/apk/foss
+57
View File
@@ -0,0 +1,57 @@
name: Android CI Market
on:
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Set Swap Space
uses: pierotofy/set-swap-space@master
with:
swap-size-gb: 10
- uses: actions/checkout@v4
- name: set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'adopt'
java-package: 'jdk'
cache: gradle
- name: Set up Keystore
run: |
sudo apt update -y || true
sudo apt install -y --no-install-recommends coreutils
mkdir -p $RUNNER_TEMP/keystores
echo "${{ secrets.SIGNING_KEY }}" | base64 --decode > $RUNNER_TEMP/keystores/keystore.jks
- name: Build Market APKs
run: bash ./gradlew assembleMarketRelease
- name: Sign Market APKs
run: |
ANDROID_SDK_PATH=$ANDROID_HOME/build-tools/35.0.0/apksigner
for apk in app/build/outputs/apk/market/release/*.apk; do
$ANDROID_SDK_PATH sign \
--ks $RUNNER_TEMP/keystores/keystore.jks \
--ks-key-alias ${{ secrets.ALIAS }} \
--ks-pass pass:${{ secrets.KEY_STORE_PASS }} \
--key-pass pass:${{ secrets.KEY_STORE_PASS }} \
--out "$apk" \
"$apk"
done
- name: Upload Market APKs
uses: actions/upload-artifact@v4
with:
name: Signed Market APKs
path: app/build/outputs/apk/market/release/*.apk
- name: Delete Market APKs
run: rm -rf app/build/outputs/apk/market
+113
View File
@@ -0,0 +1,113 @@
name: Create Release
on:
workflow_dispatch:
#on:
# push:
# tags:
# - '*'
jobs:
build_and_release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'adopt'
cache: gradle
- name: Set version variable
run: echo "GITHUB_REF_NAME=$GITHUB_REF_NAME" >> $GITHUB_ENV
- name: Assemble release
env:
VERSION_NAME: ${{ env.GITHUB_REF_NAME }}
run: bash ./gradlew assembleRelease
- uses: iota9star/sign-android-release@v1.0.5
name: Sign FOSS APK
# ID used to access action output
id: sign_app_foss
with:
releaseDirectory: app/build/outputs/apk/foss/release
fileRex: .*apk
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
alias: ${{ secrets.ALIAS }}
keyStorePassword: ${{ secrets.KEY_STORE_PASS }}
keyPassword: ${{ secrets.KEY_STORE_PASS }}
env:
BUILD_TOOLS_VERSION: "34.0.0"
- name: Rename foss file stage
run: |
ls -la app/build/outputs/apk/market/release
mv "app/build/outputs/apk/foss/release/image-toolbox-$GITHUB_REF_NAME-foss-arm64-v8a-release-unsigned-signed.apk" "image-toolbox-$GITHUB_REF_NAME-foss-arm64-v8a.apk"
mv "app/build/outputs/apk/foss/release/image-toolbox-$GITHUB_REF_NAME-foss-universal-release-unsigned-signed.apk" "image-toolbox-$GITHUB_REF_NAME-foss-universal.apk"
mv "app/build/outputs/apk/foss/release/image-toolbox-$GITHUB_REF_NAME-foss-armeabi-v7a-release-unsigned-signed.apk" "image-toolbox-$GITHUB_REF_NAME-foss-armeabi-v7a.apk"
mv "app/build/outputs/apk/foss/release/image-toolbox-$GITHUB_REF_NAME-foss-x86_64-release-unsigned-signed.apk" "image-toolbox-$GITHUB_REF_NAME-foss-x86_64.apk"
- uses: iota9star/sign-android-release@v1.0.5
name: Sign Market APK
# ID used to access action output
id: sign_app_market
with:
releaseDirectory: app/build/outputs/apk/market/release
fileRex: .*apk
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
alias: ${{ secrets.ALIAS }}
keyStorePassword: ${{ secrets.KEY_STORE_PASS }}
keyPassword: ${{ secrets.KEY_STORE_PASS }}
env:
BUILD_TOOLS_VERSION: "34.0.0"
- name: Rename market file stage
env:
VERSION_NAME: ${{ env.GITHUB_REF_NAME }}
run: |
ls -la app/build/outputs/apk/market/release
mv "app/build/outputs/apk/market/release/image-toolbox-$VERSION_NAME-market-arm64-v8a-release-unsigned-signed.apk" "image-toolbox-$VERSION_NAME-arm64-v8a.apk"
mv "app/build/outputs/apk/market/release/image-toolbox-$VERSION_NAME-market-universal-release-unsigned-signed.apk" "image-toolbox-$VERSION_NAME-universal.apk"
mv "app/build/outputs/apk/market/release/image-toolbox-$VERSION_NAME-market-armeabi-v7a-release-unsigned-signed.apk" "image-toolbox-$VERSION_NAME-armeabi-v7a.apk"
mv "app/build/outputs/apk/market/release/image-toolbox-$VERSION_NAME-market-x86_64-release-unsigned-signed.apk" "image-toolbox-$VERSION_NAME-x86_64.apk"
- uses: actions/upload-artifact@v4
id: signed-market-apk
with:
name: Signed apks Market
path: "*.apk"
create_release:
runs-on: ubuntu-latest
permissions:
contents: write
needs:
- build_and_release
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Download All Artifacts
uses: actions/download-artifact@v4
with:
merge-multiple: true
- name: Display all downloaded files
run: ls -la
- name: Set version variable
run: echo "GITHUB_REF_NAME=$GITHUB_REF_NAME" >> $GITHUB_ENV
- name: Set Pre-release flag
run: |
if [[ "$GITHUB_REF_NAME" == *-* ]]; then
# If GITHUB_REF_NAME contains a hyphen, set GITHUB_OTHER_ENV to true
echo "PRE_RELEASE_FLAG=true" >> $GITHUB_ENV
else
# If GITHUB_REF_NAME does not contain a hyphen, set GITHUB_OTHER_ENV to false
echo "PRE_RELEASE_FLAG=false" >> $GITHUB_ENV
fi
- uses: ncipollo/release-action@v1
with:
artifacts: "*.apk"
prerelease: ${{ env.PRE_RELEASE_FLAG }}