ShizuStore

Yuki

carlelieser

1.11.0 · GitHub

Download APK
Installer & app stores Android 8.0+ 1 day ago MIT
98 ShizuStore
3k GitHub
130 Stars
6 MB Size

More about this app

Catalog and storefront for open-source Shizuku apps, crawled from GitHub

Yuki

Yuki

A catalog of open-source Android apps that use the Shizuku permission framework.

Download

Download the APK from the latest release. Alternatively, you can use the website, but the Android app is preferred for a better native experience and automatic updates.

Screenshots

Explore Listing Search Library Updates
Explore Listing Search Library Updates

How it works

Yuki crawls public GitHub repositories and scores them based on the following criteria:

Evidence Confidence
rikka.shizuku.ShizukuProvider in the manifest Strong
dev.rikka.shizuku in a Gradle build file Strong
moe.shizuku.api in a Gradle build file Probable
A Kotlin or Java filename containing shizuku Probable
A shizuku topic, or a readme mention Weak

Strong candidates are automatically indexed by the system. Weak ones are self-assigned labels, so they wait for review before going live. Either way, a repository is only indexed if it ships a downloadable APK and holds an AndroidManifest.xml or a Gradle build file.

Metadata

Title - The readme's first heading, when it names the repository and reads like a title rather than a tagline or version. Otherwise the repository name, humanized.

Icons - Fastlane and Play Store icons first, then the highest-density launcher icon in mipmap. Adaptive icons are composed from their foreground, background, and color resources. Every icon is uploaded to Cloudflare R2 and served from there.

Banners - The first readme image whose filename reads as a banner, hero, cover, header, or splash.

Screenshots - Readme images, preferring those named like screenshots or previews, up to 8. Badges, logos, store buttons, and chat invites are discarded.

Development

apps/android    Android client
apps/web        Web catalog
apps/scraper    GitHub crawler
packages/db     Schema and migrations
packages/github GitHub API client
packages/auth   Sessions and sign-in
packages/ui     Shared components
git clone https://github.com/carlelieser/yuki.git
cd yuki

# web — requires Bun 1.4+ and Docker
bun install
cp .env.example .env
docker compose up -d
bun run db:migrate
bun run dev

# android — requires JDK 17
cd apps/android
./gradlew assembleDebug

The site runs at http://localhost:5173, and mail is caught by Mailpit at http://localhost:8025. Scraping needs a GITHUB_TOKEN in .env with public read access:

bun run scrape --slug=<listing>

Signing in with GitHub needs a GitHub OAuth app whose callback URL is http://localhost:5173/api/auth/callback/github, with its credentials set as GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET. Production uses a separate OAuth app with the callback https://yukistore.org/api/auth/callback/github.

Locally, assets such as icons and avatars are stored in SeaweedFS instead of R2 and served from http://localhost:8333/yuki-assets. docker compose --profile scrape up scraper runs the scraper against them.

The Android client talks to https://yukistore.org by default. To point it at the local web server instead, pass yukiBaseUrl and forward the port to the device:

adb reverse tcp:5173 tcp:5173
adb reverse tcp:8333 tcp:8333
cd apps/android
./gradlew installDebug -PyukiBaseUrl="http://localhost:5173/"

Use http://10.0.2.2:5173/ on an emulator, where adb reverse is unnecessary. Debug builds allow cleartext to localhost only; release builds stay HTTPS-only.

Close

How Shizuku is used

Can install and uninstall catalog apps silently via Shizuku `pm` commands

This is an AI-assisted analysis of Shizuku-related usages in the app's public source code. It is best effort, so it may not catch every single usage.

How this app uses Shizuku

Yuki uses Shizuku to install and remove the open-source apps it catalogs without manual confirmation taps.

  • Install listed apps silently: a catalog APK chosen by the user is installed in the background with pm install-create, pm install-write and pm install-commit run through Shizuku.
  • Uninstall listed apps silently: a catalog app chosen by the user is removed in the background with pm uninstall run through Shizuku.

Android APIs or commands used

  • pm install-create
  • pm install-write
  • pm install-commit
  • pm install-abandon
  • pm uninstall

Notable details

Without Shizuku, installs fall back to the system installer with user confirmation and uninstalls fall back to the system delete prompt.

Close

Changelog

What's new for version 1.11.0

What's Changed

Full Changelog: https://github.com/carlelieser/yuki/compare/android-v1.10.0...android-v1.11.0

Close

Permissions

12 permissions requested

  • android.permission.INTERNET
  • android.permission.REQUEST_INSTALL_PACKAGES
  • android.permission.REQUEST_DELETE_PACKAGES
  • android.permission.QUERY_ALL_PACKAGES
  • android.permission.POST_NOTIFICATIONS
  • moe.shizuku.manager.permission.API_V23
  • android.permission.FOREGROUND_SERVICE
  • android.permission.FOREGROUND_SERVICE_DATA_SYNC
  • android.permission.WAKE_LOCK
  • android.permission.ACCESS_NETWORK_STATE
  • android.permission.RECEIVE_BOOT_COMPLETED
  • app.yuki.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
Close