What is shizu_store.json?
shizu_store.json is a manifest file that tells the Shizu CoreFetch Android app how to beautifully display your application — overriding the default GitHub data with your custom name, description, icon, developer info, and ads.
The Shizu Store automatically discovers and lists Shizuku-based apps. If you don't provide this file, your app will still appear, but it will use your GitHub profile picture as the icon and fetch basic details from your repository description and README. Adding a shizu_store.json unlocks a clean, tailored UI/UX experience for your users.
To apply custom branding, the store scans for a file named exactly shizu_store.json at the root of your GitHub repository. The filename is case-sensitive.
File Placement
Place shizu_store.json at the root level of your GitHub repository — the same level as your README.md.
# [PASS] Correct — file is at the root my-shizuku-app/ ├── shizu_store.json ← here ├── README.md ├── app/ │ └── src/... └── build.gradle # [FAIL] Wrong — file is in a subdirectory my-shizuku-app/ ├── docs/ │ └── shizu_store.json ← NOT here └── ...
The raw URL to your file will be something like:
https://raw.githubusercontent.com/<user>/<repo>/main/shizu_store.json
Required Fields
If you choose to create a shizu_store.json file for custom branding, it must include these four fields at minimum. If any are missing or invalid, the store will ignore the file and fall back to your default GitHub repository data.
| Field | Type | Description |
|---|---|---|
app_name |
string |
Display name of your application. |
package_name |
string |
Android package name (e.g. xyz.siwane.myapp). Must be valid Java package format. |
short_description |
string |
One-line description shown in listings. Max 200 characters. |
icon_url |
string (URL) |
Absolute HTTPS URL to your app's icon. Square PNG or WebP recommended. |
Minimal valid example
{ "app_name": "My Shizuku App", "package_name": "xyz.siwane.myapp", "short_description": "Does something cool with Shizuku.", "icon_url": "https://raw.githubusercontent.com/you/repo/main/icon.png" }
Extended Fields
These fields enhance how your app appears in the store, including your developer portfolio and community integration.
| Field | Type | Description |
|---|---|---|
detailed_description | string | Long-form description. Supports \n and Markdown **bold**. |
developer_message | string | A personal message to your users displayed in a dedicated card. |
banner_url | string | Absolute URL to a banner image (16:9 recommended). |
screenshots | array | Array of absolute URLs to screenshot images. |
repo_url | string | Direct link to the GitHub repository. |
app_website | string | Official website for your app. |
store_issue_number | integer | The GitHub Issue number used to fetch and display user comments natively. |
ad | boolean | Set to true to enable custom ad banners in your app details. |
ads | array | Array containing your custom ad configurations (See Monetization section). |
developer | object | Rich developer portfolio info. See below. |
locales | object | Translated strings per language code. See Languages section. |
Developer Portfolio Object
The developer object powers the developer dashboard in the store, showing your banner, website, and other apps.
"developer": { "name": "Jamal El Hizazi", "banner_url": "https://domain.com/coverture.jpg", "account_url": "https://github.com/elhizazi1", "email": "[email protected]", "website": "https://siwane.xyz", "portfolio": "https://jamal.elhizazi.me", "socials": { "facebook": "https://fb.com/elhizazi2", "instagram": "https://instagram.com/elhizazi1", "x": "https://x.com/elhizazi1", "youtube": "https://youtube.com/@si1xyz", "github": "https://github.com/elhizazi1", "telegram": "https://t.me/elhizazi1" } }
Ads & Monetization
Shizu CoreFetch empowers developers by allowing them to display their own custom ads directly inside their app's details page.
You keep 100% of the traffic. Set "ad": true and configure the ads array.
"ad": true, "ads": [ { "position": "top", "image_url": "https://yourdomain.com/ad_top.webp", "target_url": "https://sponsored-link.com" }, { "position": "bottom", "image_url": "https://yourdomain.com/ad_bottom.jpeg", "target_url": "https://wa.me/123456789" } ]
Developers have complete freedom to promote their own products, external links, or sponsors. However, the following categories are strictly prohibited: Gambling, Alcohol, Drugs, Pornography, and Religious disparities/paradoxes. Violating this policy will result in the immediate blacklisting of the ad or the application from the store ecosystem.
Languages & Locales
The Shizu Store natively supports 9 languages. Add translated strings under the
locales key using BCP 47 language codes. The store will display the appropriate locale
based on the user's device language, falling back to en if unavailable.
You can also add any other language code under locales — the schema allows any BCP 47 code. Additional languages beyond the 9 listed may be displayed if the store adds support later.
What can be translated?
Each locale object supports these translatable fields:
| Field | Description |
|---|---|
app_name | App name in the target language |
short_description | Short listing description |
detailed_description | Long description with formatting |
developer_message | Translated message from the developer |
developer_name | Developer's name in target language (e.g. Arabic) |
Store Architecture & Disclaimer
Decentralized Auto-Fetching: The Shizu CoreFetch store acts as an intelligent bridge. It auto-indexes Shizuku applications and fetches metadata and APK releases directly from the developers' GitHub repositories. There is no direct hosting or intervention from the store itself. The ecosystem relies entirely on the open-source community.
The creator of the Shizu CoreFetch store (Jamal El Hizazi) is not responsible for the functionality, safety, or content of any third-party application published in the store. All responsibility lies solely with the respective app developer.
However, the store administration reserves the absolute right to blacklist or block any application or advertisement if a contradiction with the store's policies is discovered, in order to prevent harm to users.
Validation
Always validate your shizu_store.json before publishing. Malformed JSON will cause the store to ignore your customizations and display the default GitHub data instead.
Online (recommended)
Go to jsonschemavalidator.net
Copy the contents of schema.json into the left (Schema) panel.
Copy your shizu_store.json into the right (Input JSON) panel and check for errors.
Command Line with ajv
# Install ajv-cli npm install -g ajv-cli # Validate your file ajv validate -s schema.json -d shizu_store.json
Python
pip install jsonschema
python3 - <<'EOF'
import json, jsonschema
with open("schema.json") as f:
schema = json.load(f)
with open("shizu_store.json") as f:
data = json.load(f)
jsonschema.validate(data, schema)
print("[PASS] Valid!")
EOF
Quick JSON syntax check
python3 -m json.tool shizu_store.json > /dev/null && echo "[PASS] Valid JSON"
Common Mistakes
1. Duplicate keys in an object
JSON does not allow duplicate keys inside the same object. Most parsers will silently use the last value, which leads to data loss.
{ "app_name": "My App", "app_name": "My App Again" ← duplicate key! }
2. Trailing commas
JSON does not allow a comma after the last item in an object or array.
{ "app_name": "My App", "package_name": "xyz.siwane.app", ← trailing comma }
{ "app_name": "My App", "package_name": "xyz.siwane.app" }
3. Relative URLs
All URL fields (icon_url, banner_url, screenshots, etc.) must be absolute HTTPS URLs. Relative paths won't work because the store fetches them remotely.
"icon_url": "./assets/icon.png"
"icon_url": "https://raw.githubusercontent.com/you/repo/main/assets/icon.png"
4. Wrong file name or location
To apply your custom branding, the file must be named exactly shizu_store.json (lowercase, with underscore) and placed at the root of the repository.
Security Notice
The Shizu Store installs APKs silently using Shizuku's elevated system permissions. This is a powerful capability — users who install your app from the store are implicitly trusting you as a developer.
As a developer whose app is listed on the Shizu Store, you agree to act responsibly. This means:
- Never serve malware or spyware through your GitHub releases.
- Be transparent about what your app does. Accurately describe all Shizuku permissions your app uses.
- Publish your source code when possible. Users and reviewers are far more likely to trust open-source apps.
- Sign your APKs with a consistent certificate. Never swap a legitimate APK for a malicious one.
- Notify users of significant changes via GitHub releases, especially if you are requesting new permissions.
Shizuku grants apps ADB-level permissions. Apps running under Shizuku can perform sensitive operations like reading private data, modifying system settings, and managing other apps. Always use the minimum permissions necessary.
FAQ
Do I need to submit my app anywhere to be listed?
No submission is required. The store automatically detects Shizuku-based repositories on GitHub. Adding a shizu_store.json simply gives you full control over how your app is presented to users.
Can I use a CDN or my own server instead of GitHub raw URLs?
Yes. Any publicly accessible HTTPS URL is valid for all URL fields. GitHub raw URLs are simply the most common choice because the JSON file lives in your GitHub repo.
What happens if a user's device language isn't in my locales?
The store falls back to the root-level (non-localized) values — i.e., whatever you put in app_name, short_description, etc. at the top level of the JSON. We recommend writing those in English.
Do I have to include all 9 languages?
No. You can include as many or as few locales as you want. Any locale you omit will automatically fall back to the root-level values.
How do I format descriptions with bold text and line breaks?
Use \n for newlines and **text** for bold text within description strings. These are interpreted by the store when rendering the app's detail page.
My app doesn't require Shizuku to run — can I still list it?
The store is designed for Shizuku-based apps. You can list it, but be clear in your description that Shizuku is not required for its core functionality.
Is there a file size limit for the JSON?
There is no hard limit documented, but keep the file reasonable. A few kilobytes is typical. Avoid embedding very long strings directly — link to external resources instead.
Can I have multiple apps in the same repository?
No. Each repository represents a single app in the store's auto-indexing logic. To list multiple apps, create separate repositories for each.