{"id":51333820,"url":"https://github.com/ziachi/android-override","last_synced_at":"2026-07-02T01:03:24.944Z","repository":{"id":364740945,"uuid":"1269025879","full_name":"ziachi/android-override","owner":"ziachi","description":"Device identity management framework for Android custom ROM development. Research \u0026 educational toolkit.","archived":false,"fork":false,"pushed_at":"2026-06-14T09:52:16.000Z","size":56,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-14T10:21:20.816Z","etag":null,"topics":["android","android-13","android-14","android-15","android-framework","aosp","attestation","custom-rom","device-identity","rom-development","security-research"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ziachi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-14T08:06:59.000Z","updated_at":"2026-06-14T09:52:20.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ziachi/android-override","commit_stats":null,"previous_names":["ziachi/android-override"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/ziachi/android-override","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ziachi%2Fandroid-override","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ziachi%2Fandroid-override/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ziachi%2Fandroid-override/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ziachi%2Fandroid-override/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ziachi","download_url":"https://codeload.github.com/ziachi/android-override/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ziachi%2Fandroid-override/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35028649,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-01T02:00:05.325Z","response_time":130,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","android-13","android-14","android-15","android-framework","aosp","attestation","custom-rom","device-identity","rom-development","security-research"],"created_at":"2026-07-02T01:03:20.809Z","updated_at":"2026-07-02T01:03:24.939Z","avatar_url":"https://github.com/ziachi.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Android Override\n\n\u003e Device identity management framework for Android custom ROM development.\n\u003e A research and development toolkit for ROM maintainers.\n\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)\n[![Android](https://img.shields.io/badge/Android-13%2B-green.svg)]()\n[![API](https://img.shields.io/badge/API-33%2B-brightgreen.svg)]()\n\n## ⚠️ Status: Untested\n\n\u003e **This repo targets Android 13+ (API 33+) and has NOT been built or tested yet.**\n\u003e\n\u003e The tested \u0026 working version is the Android 10 edition:\n\u003e **[android-override-a10](https://github.com/ziachi/android-override-a10)** — tested on keepQASSA Sisu v2.4_0.s (santoni)\n\n## ⚠️ Disclaimer\n\nThis project is provided **strictly for educational and research purposes**. It is intended for custom ROM developers and security researchers who need to understand and manage device identity properties in AOSP-based builds.\n\n**This project does NOT:**\n- Include any private keys, certificates, or keybox files\n- Distribute any proprietary or copyrighted material\n- Encourage or facilitate any violation of terms of service\n- Bypass any digital rights management (DRM) protections\n\n**Users are solely responsible** for how they use this framework and must comply with all applicable laws and terms of service in their jurisdiction. The authors assume no liability for misuse.\n\n## What is this?\n\nA modular, ROM-integrated framework for managing device identity properties at the system level — designed for custom ROM developers who need to configure `Build.*` fields, manage attestation certificates, and handle per-application device property configurations.\n\nThis is comparable to how custom ROM projects like LineageOS, ProtonAOSP, and others manage device identity in their source trees.\n\n**No keys included** — this is a tool only. Users must provide their own configuration.\n\n## Repos\n\n| Repo | Target | Status |\n|------|--------|--------|\n| [android-override](https://github.com/ziachi/android-override) | Android 13+ (API 33+) | ⚠️ Untested |\n| [android-override-a10](https://github.com/ziachi/android-override-a10) | Android 10 (API 29) | ✅ Tested |\n\n## Use Cases\n\n- **ROM Development \u0026 Testing** — Test how different device configurations affect app compatibility\n- **Security Research** — Study device attestation mechanisms and identity management\n- **Device Configuration** — Manage device properties for custom ROM builds\n- **Compatibility Testing** — Verify app behavior across different device profiles\n\n## Architecture\n\n```\n┌──────────────────────────────────────────────────┐\n│                  Settings UI                      │\n│        (OverrideSettings system app)              │\n│  ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌────────┐ │\n│  │Device│ │Cert  │ │PerApp│ │Profi-│ │System  │ │\n│  │Props │ │Mgmt  │ │Config│ │les   │ │Health  │ │\n│  └──┬───┘ └──┬───┘ └──┬───┘ └──┬───┘ └──┬─────┘ │\n└─────┼────────┼────────┼────────┼────────┼────────┘\n      │        │        │        │        │\n┌─────▼────────▼────────▼────────▼────────▼────────┐\n│              OverrideController                    │\n│         (Central config + state manager)           │\n│         /data/system/override/config.json          │\n└─────┬────────┬────────────────┬──────────────────┘\n      │        │                │\n┌─────▼──┐ ┌──▼──────────┐ ┌──▼──────────────────┐\n│Props   │ │Certificate  │ │Environment          │\n│Manager │ │Manager      │ │Manager              │\n│        │ │             │ │                      │\n│Build.* │ │• XML parse  │ │• Filter properties  │\n│field   │ │• PEM keys   │ │• Clean environment  │\n│config  │ │• Multi-slot │ │• Manage visibility   │\n│via     │ │• Health chk │ │• Suppress debug logs │\n│reflect │ │• Rotation   │ │                      │\n└─────┬──┘ └──┬──────────┘ └──────────────────────┘\n      │        │\n┌─────▼──┐ ┌──▼──────────┐\n│App     │ │Attestation  │\n│Process │ │Config       │\n│hook    │ │             │\n│point   │ │• TEE config │\n│        │ │• Boot state │\n│        │ │• Cert chain │\n└────────┘ └─────────────┘\n```\n\n## Features\n\n| Feature | Description |\n|---------|-------------|\n| 🔧 **Property Management** | Configure `Build.*` fields per-process for ROM development |\n| 📦 **Certificate Manager** | Import and manage attestation certificates (user-provided) |\n| 🛡️ **Attestation Config** | Configure attestation parameters (security level, boot state) |\n| 📱 **Per-App Configuration** | Different device properties per application for testing |\n| 💾 **Profiles** | Save/load/switch entire device configurations |\n| ✅ **Health Checker** | Built-in diagnostics for configuration validation |\n| 🔍 **Certificate Health** | Validate certificate chain integrity |\n| 📋 **Device Database** | Built-in device property presets (public build info) |\n| 🔄 **Auto-Rotation** | Rotate certificate slots on validation failure |\n| 💽 **OTA-Safe Config** | Persist in `/data/system/override/` — survives updates |\n\n## Quick Start\n\n### 1. Copy to ROM source\n\n```bash\ngit clone https://github.com/ziachi/android-override.git\n\n# Framework components\nmkdir -p frameworks/base/core/java/com/android/override/services\ncp android-override/patches/frameworks_base/core/*.java \\\n   frameworks/base/core/java/com/android/override/\ncp android-override/patches/frameworks_base/keystore/*.java \\\n   frameworks/base/core/java/com/android/override/\ncp android-override/patches/frameworks_base/services/*.java \\\n   frameworks/base/core/java/com/android/override/services/\n\n# Settings app\ncp -r android-override/packages/OverrideSettings packages/apps/\n\n# SEPolicy\ncp android-override/sepolicy/* device/YOUR_DEVICE/sepolicy/\n```\n\n### 2. Add hook to ActivityThread\n\n```java\n// frameworks/base/core/java/android/app/ActivityThread.java\n// In handleBindApplication(), before app.onCreate():\n\nimport com.android.override.PropsHooks;\n\nPropsHooks.onApplicationCreated(app, data.processName);\n```\n\n### 3. Add to device makefile\n\n```makefile\nPRODUCT_PACKAGES += OverrideSettings\nBOARD_SEPOLICY_DIRS += device/YOUR_DEVICE/sepolicy\n```\n\n### 4. Build\n\n```bash\nmka bacon\n```\n\n## Configuration\n\nAfter building, configure via **Settings → System → Override**:\n\n1. **Enable** master switch\n2. **Select device profile** from database or enter manually\n3. **Import certificates** (your own — not included)\n4. **Configure attestation** parameters\n5. **Run health checker** to validate configuration\n\n## Directory Structure\n\n```\nandroid-override/\n├── README.md\n├── LICENSE                          # Apache 2.0\n├── CHANGELOG.md\n├── patches/\n│   └── frameworks_base/\n│       ├── core/\n│       │   ├── OverrideController.java    # Central config manager\n│       │   └── PropsHooks.java            # Build.* field configuration\n│       ├── keystore/\n│       │   ├── KeyboxManager.java         # Certificate manager\n│       │   └── AttestationHooks.java      # Attestation configuration\n│       └── services/\n│           ├── AntiDetection.java         # Environment management\n│           └── IntegrityChecker.java      # Health diagnostics\n├── packages/\n│   └── OverrideSettings/                  # Settings UI app\n│       ├── Android.bp\n│       ├── AndroidManifest.xml\n│       ├── src/                           # Java sources\n│       └── res/                           # Layouts, strings, drawables\n├── config/\n│   ├── props_database.xml                 # Device property presets\n│   ├── default_config.xml                 # Config template\n│   └── example_profile.xml               # Example profile\n├── sepolicy/\n│   ├── override.te                        # SELinux policy\n│   └── file_contexts                      # File labels\n└── docs/\n    ├── integration-guide.md               # Full integration guide\n    ├── per-app-spoofing.md                # Per-app config guide\n    └── troubleshooting.md                 # Common issues + fixes\n```\n\n## Security Model\n\n- ✅ **No keys in repo** — certificates are user-provided via Settings UI\n- ✅ **No proprietary data** — device database contains only public build information\n- ✅ **Platform-signed** — runs as privileged system app\n- ✅ **SELinux enforcing** — targeted policy rules only\n- ✅ **Config in /data/** — not readable by untrusted apps\n\n## Android 10 vs 13+\n\n| Aspect | Android 13+ (this repo) | Android 10 ([a10](https://github.com/ziachi/android-override-a10)) |\n|--------|-------------------------|------|\n| Attestation HAL | KeyMint | Keymaster 4.x |\n| Verification API | Play Integrity | SafetyNet Attestation |\n| Target SDK | 33+ | 29 |\n| Base64 | java.util.Base64 | android.util.Base64 |\n| Storage | Scoped storage | READ/WRITE_EXTERNAL_STORAGE |\n| Status | ⚠️ Untested | ✅ Tested |\n\n## Contributing\n\nContributions are welcome. Please ensure all contributions follow the project's security model — no keys, certificates, or proprietary data.\n\n## License\n\n```\nCopyright 2025 Android Override Project\n\nLicensed under the Apache License, Version 2.0\n```\n\nSee [LICENSE](LICENSE) for full text.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fziachi%2Fandroid-override","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fziachi%2Fandroid-override","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fziachi%2Fandroid-override/lists"}