Skip to content

SysAdminDoc/iOSIconPack

Repository files navigation

iOS Icon Pack

Version License Platform minSdk

Icon Gallery Get it on Obtainium GitHub Release

The ultimate iOS-style icon pack for Android. Every iOS generation in one app — pick and choose which era's icons to apply per-app.

Install

Install channel status: the source tree and metadata are currently v1.2.2, but GitHub Releases may still serve an older APK until the signed v1.2.2 asset is published. Run python3 scripts/icontool.py release-channel-check --write-status docs/release-channel.json before changing install copy.

Obtainium (recommended — auto-updates):

  1. Install Obtainium
  2. Tap this link on your phone: obtainium://add/https://github.com/SysAdminDoc/iOSIconPack
  3. Install the latest APK and apply the icon pack in your launcher

Manual: Download the APK from Releases, install, then select the pack in your launcher's icon pack settings.

Features

  • 6 iOS Eras — iOS 14, 15, 16, 17, 18, and iOS 26 Liquid Glass
  • Mix & Match — Apply different generations to different apps
  • 367 raster icons + 367 transparent glyph variants + 671 appfilter entries — 342 era variants across iOS 14, 15, 16, 17, 18, and iOS 26 Liquid Glass, plus 25 exact third-party icons
  • 367 Material You themed vectors — Android 13+ dynamic themed-icon support across every era, with local dark/light tint contrast checks
  • 6 Original Wallpapers - bundled WebP backgrounds inspired by each shipped iOS era
  • 30+ Launcher Support — Nova, Lawnchair, Smart Launcher, OnePlus, Samsung, Niagara, Microsoft Launcher, POCO, Pixel, and more
  • Per-launcher apply cards — Home-screen actions for Nova, Action, Smart, OnePlus, Lawnchair, Niagara, Projectivy, ADW, Apex, and Samsung Theme Park
  • Local launcher diagnostics — Failed apply shortcuts copy launcher slug, target package, fallback, app version, and Android version for issue reports without automatic telemetry.
  • AMOLED Dark Theme — Native dark mode dashboard
  • Icon Requests — Request icons for apps not yet covered
  • Free & Open Source — No ads, no tracking, no IAP

iOS Generations

Era Style Icons
iOS 14 Flat + gradient backgrounds 57
iOS 15 Flat, subtle shadows 57
iOS 16 Bold colors, refined squircle 57
iOS 17 Refined flat 57
iOS 18 Tinted/dark mode, refined gradients 57
iOS 26 Liquid Glass — frosted translucent 57

The pack applies iOS 18 by default. Contributors can switch the active era at build time:

python3 scripts/set_era.py --list        # see active era
python3 scripts/set_era.py ios17         # switch to iOS 17
python3 scripts/set_era.py ios26         # iOS 26 Liquid Glass
python3 scripts/set_era.py ios18         # reset to default

Supported Launchers

Nova, Lawnchair, Apex, Smart Launcher, OnePlus, Samsung One UI, LG Home, Sony, Projectivy, GO Launcher, ADW, Holo, Niagara, and 20+ more.

Build

python3 -m pip install -r requirements.txt
python3 -m playwright install chromium
JAVA_HOME="C:/Program Files/Android/Android Studio/jbr" ./gradlew assembleDebug
JAVA_HOME="C:/Program Files/Android/Android Studio/jbr" ./gradlew assembleRelease
python3 scripts/icontool.py preflight

assembleRelease uses the committed development keystore only for local sanity builds. Official publish builds must set IOSICONS_PUBLISH_RELEASE=1, IOSICONS_KEYSTORE_PATH, IOSICONS_STORE_PASSWORD, IOSICONS_KEY_ALIAS, IOSICONS_KEY_PASSWORD, and the documented IOSICONS_RELEASE_CERT_SHA256, then run:

JAVA_HOME="C:/Program Files/Android/Android Studio/jbr" ./gradlew assembleRelease
python3 scripts/icontool.py publish-check
python3 scripts/icontool.py release-channel-check
python3 scripts/icontool.py developer-verification-check

Backup Policy

iOS Icon Pack does not back up or transfer app-private data. The dashboard state is disposable, and launcher icon choices can be reapplied from the shipped icon catalog after reinstall. Android 11 and lower use @xml/backup_rules; Android 12+ uses @xml/data_extraction_rules.

Privacy

iOS Icon Pack has no ads, tracking SDKs, analytics, or in-app purchases. When you use the in-app icon request flow, the dashboard may collect the selected installed-app package/component names plus basic device details such as Android version and screen dimensions so missing icons can be mapped accurately. Request data is used only to triage and build icon coverage for this project.

Contributing Icons

Use icontool — it wires all XML files in one command:

# Add a new iOS stock icon (PNG must already be in drawable-xxxhdpi/):
python3 scripts/icontool.py add ios18_appname \
    -c "com.example.app/com.example.app.MainActivity"

# Add a third-party icon:
python3 scripts/icontool.py add tp_appname \
    -c "com.example.app/com.example.app.MainActivity"

# Generate a temporary letter-tile placeholder for an uncovered app:
python3 scripts/icontool.py placeholder --drawable ph_example_app \
    --label "Example App" \
    -c "com.example.app/com.example.app.MainActivity"

# Validate appfilter, drawables, and release metadata:
python3 scripts/icontool.py check

# Validate generated gallery freshness and accessibility semantics:
python3 scripts/gen_gallery.py --check
python3 scripts/gen_gallery.py --a11y-check

# Render docs pages across desktop/mobile and dark/light control flows:
python3 scripts/icontool.py docs-visual-smoke

# Validate launcher intent filters and icon-pack resource signals:
python3 scripts/icontool.py launcher-compat-check

# Audit open icon requests without mutating GitHub:
python3 scripts/icontool.py request-audit

# Import a saved ADB/package inventory into local request records without upload:
python3 scripts/icontool.py package-inventory-import --input inventory.txt

# Rank missing packages from icon requests and public icon-pack coverage:
python3 scripts/icontool.py coverage-gap

# Audit Gradle repository and artifact provenance for F-Droid review:
python3 scripts/icontool.py maven-provenance-check
python3 scripts/icontool.py maven-provenance-check --strict-fdroid

# Check current vs latest core dependency versions and OSV advisories:
python3 scripts/icontool.py dependency-audit

# Rehearse core toolchain upgrades without touching tracked files:
python3 scripts/icontool.py toolchain-upgrade-rehearsal
python3 scripts/icontool.py toolchain-upgrade-rehearsal --execute

# Diff rendered icon previews and themed-icon tint contrast:
python3 scripts/icontool.py preview-regression

# Rank icons that need maintainer review without blocking on low-priority polish:
python3 scripts/icontool.py icon-quality-audit --limit 25

# Validate Crowdin config, translatable boundaries, and pseudo-locale expansion:
python3 scripts/icontool.py localization-check
python3 scripts/icontool.py pseudo-locale-check --report build/pseudo-locale-report.json

# Push/pull dashboard strings through Crowdin CLI when credentials are set:
crowdin upload sources
crowdin download

# Regenerate transparent glyph-only dashboard variants from monochrome vectors:
python3 scripts/gen_glyph_variants.py --force --prune
python3 scripts/icontool.py rebuild

# Prototype sharp, line, and filled themed-icon style variants under build/:
python3 scripts/icontool.py style-prototypes --limit 24

# Refresh and verify source-art provenance for shipped PNG icons:
python3 fetch_icons.py --write-provenance
python3 fetch_icons.py --provenance-check

# Convert raw SVG sources in app/src/main/svg into generated vector drawables:
./gradlew :app:convertSvgSources

# Export PNG icon assets for Kustom/KWGT and Rainmeter widget workflows:
python3 scripts/icontool.py widget-export

# Regenerate and validate bundled original wallpapers:
python3 scripts/icontool.py wallpaper-generate --force
python3 scripts/icontool.py wallpaper-generate --check

# Run the full local release preflight with lint, packaging, and APK size gate:
python3 scripts/icontool.py preflight

# Validate only release metadata and tag alignment:
python3 scripts/icontool.py release-check

# Validate the public GitHub release channel before publishing/install docs:
python3 scripts/icontool.py release-channel-check
python3 scripts/icontool.py release-channel-check --write-status docs/release-channel.json

# Report Android developer verification readiness for sideload/store channels:
python3 scripts/icontool.py developer-verification-check

convertSvgSources accepts simple SVG paths and shapes (path, rect, circle, ellipse, line, polygon, polyline) and writes generated Android vectors under app/build/generated/res/svgProcessor/main/drawable. Gradients, paint servers, and transforms fail fast so source art is corrected before it enters the icon catalog.

See CONTRIBUTING.md for the full workflow, naming conventions, and PR checklist.

Credits

  • Dashboard: Blueprint by Jahir Fiquitiva
  • Built with Kotlin and the Android SDK

License

MIT — see LICENSE.

About

iOS-style icon pack for Android - every iOS generation in one app

Topics

Resources

License

Stars

2 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors