{"id":23048817,"url":"https://github.com/giacomoferretti/odex-patcher","last_synced_at":"2025-10-18T03:27:15.353Z","repository":{"id":53709749,"uuid":"293629531","full_name":"giacomoferretti/odex-patcher","owner":"giacomoferretti","description":"Run arbitrary code by patching OAT files","archived":false,"fork":false,"pushed_at":"2024-01-13T14:21:33.000Z","size":1946,"stargazers_count":70,"open_issues_count":10,"forks_count":12,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-01-13T23:57:06.673Z","etag":null,"topics":["android","android-app","android-art","android-modding","app","art","art-runtime","dalvik","kotlin","kotlin-android","modding","oat","oat-patcher","odex","odex-patcher","vdex","vdex-patcher"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","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/giacomoferretti.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":"giacomoferretti","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2020-09-07T20:48:51.000Z","updated_at":"2024-01-02T20:41:41.000Z","dependencies_parsed_at":"2023-02-10T16:25:20.806Z","dependency_job_id":null,"html_url":"https://github.com/giacomoferretti/odex-patcher","commit_stats":null,"previous_names":[],"tags_count":6,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giacomoferretti%2Fodex-patcher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giacomoferretti%2Fodex-patcher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giacomoferretti%2Fodex-patcher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giacomoferretti%2Fodex-patcher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/giacomoferretti","download_url":"https://codeload.github.com/giacomoferretti/odex-patcher/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229885867,"owners_count":18139383,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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-app","android-art","android-modding","app","art","art-runtime","dalvik","kotlin","kotlin-android","modding","oat","oat-patcher","odex","odex-patcher","vdex","vdex-patcher"],"created_at":"2024-12-15T22:56:30.946Z","updated_at":"2025-10-18T03:27:10.301Z","avatar_url":"https://github.com/giacomoferretti.png","language":"Kotlin","funding_links":["https://ko-fi.com/giacomoferretti"],"categories":["Tools"],"sub_categories":["Reverse Engineering"],"readme":"# ODEX Patcher\n\n[![GitHub all releases](https://img.shields.io/github/downloads/giacomoferretti/odex-patcher/total?color=success)](https://github.com/giacomoferretti/odex-patcher/releases/latest)\n[![GitHub release (latest by date including pre-releases)](https://img.shields.io/github/v/release/giacomoferretti/odex-patcher?include_prereleases)](https://github.com/giacomoferretti/odex-patcher/releases)\n![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/giacomoferretti/odex-patcher)\n[![GitHub](https://img.shields.io/github/license/giacomoferretti/odex-patcher?color=blue)](LICENSE)\n\n## Introduction\n\nODEX Patcher allows you to execute arbitrary code while maintaining the original signature of the target app.\nIt does this by patching the OAT (Ahead-of-Time) files that the ART runtime creates when an app is installed.\n\nThis tool can be useful when an app uses SafetyNet for example, as you cannot simply edit the app and sign it with your key.\n\n## Examples\n\n☺️ Coming soon...\n\n## Requirements\n\nAndroid 4.4+ devices with root access ([Magisk](https://github.com/topjohnwu/Magisk) is suggested)\n\n## Downloads\n\nLatest release: [2.0.0-rc1](https://github.com/giacomoferretti/odex-patcher/releases/tag/v2.0.0-rc1)\n\n## Building and Development\n\n- Clone sources: `git clone https://github.com/giacomoferretti/odex-patcher`\n- Open the project with Android Studio.\n  - Currently using: Android Studio Arctic Fox | 2020.3.1 Patch 3\n\n## Compatibility matrix\n\n\u003c!--\nTested on:\nAndroid Emulator 6.0 (23) x86\nLineage OS 17.1 (Android 10) arm\n--\u003e\n\n✅ = Working\n\n❌ = Not working\n\n❔ = Not tested, but should work\n\n\u003c!--\n| Android Version | Oat Version | Single Dex 32bit | Single Dex 64bit | Multi Dex 32bit | Multi Dex 64bit |\n|:---------------:|:-----------:|:----------------:|:----------------:|:---------------:|:---------------:|\n| 4.4 - 4.4.2     | 007         | ❔ | ❔ | ❌\u003csup\u003e(1)\u003c/sup\u003e | ❌\u003csup\u003e(1)\u003c/sup\u003e |\n| 4.4.3 - 4.4.4   | 008         | ❔ | ❔ | ❌\u003csup\u003e(1)\u003c/sup\u003e | ❌\u003csup\u003e(1)\u003c/sup\u003e |\n| 5.0 - 5.0.2     | 039         | ❔ | ❔ | ❔ | ❔ |\n| 5.1 - 5.1.1     | 045         | ❔ | ❔ | ❔ | ❔ |\n| 6.0 - 6.0.1     | 064         | ❔ | ❔ | ✅ | ✅ |\n| 7.0 - 7.1       | 079         | ❔ | ❔ | ❔ | ❔ |\n| 7.1.1 - 7.1.2   | 088         | ❔ | ❔ | ❔ | ❔ |\n| 8.0             | 124         | ❔ | ❔ | ❔ | ❔ |\n| 8.1             | 131         | ❔ | ❔ | ❔ | ❔ |\n| 9               | 138         | ❔ | ❔ | ❔ | ❔ |\n| 10              | 170         | ❔ | ❔ | ✅ | ❔ |\n| 11              | 183         | ❔ | ❔ | ❔ | ❔ |\n| 12              | 195         | ❔ | ❔ | ❔ | ❔ |\n| Sv2             | 199         | ❔ | ❔ | ❔ | ❔ |\n--\u003e\n\n\u003ctable\u003e\n    \u003cthead\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003cth colspan=\"2\"\u003e\u003c/th\u003e\n\t\t\t\u003cth colspan=\"2\"\u003eSingle Dex\u003c/th\u003e\n\t\t\t\u003cth colspan=\"2\"\u003eMulti Dex\u003c/th\u003e\n\t\t\u003c/tr\u003e\n        \u003ctr\u003e\n            \u003cth\u003eAndroid Version\u003c/th\u003e\n            \u003cth\u003eOat Version\u003c/th\u003e\n            \u003cth\u003e32bit\u003c/th\u003e\n            \u003cth\u003e64bit\u003c/th\u003e\n            \u003cth\u003e32bit\u003c/th\u003e\n            \u003cth\u003e64bit\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n\t\u003ctbody align=\"center\"\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e4.4 - 4.4.2\u003c/td\u003e\n\t\t\t\u003ctd\u003e007\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❌\u003csup\u003e(1)\u003c/sup\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e❌\u003csup\u003e(1)\u003c/sup\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e4.4.3 - 4.4.4\u003c/td\u003e\n\t\t\t\u003ctd\u003e008\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❌\u003csup\u003e(1)\u003c/sup\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e❌\u003csup\u003e(1)\u003c/sup\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e5.0 - 5.0.2\u003c/td\u003e\n\t\t\t\u003ctd\u003e039\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e5.1 - 5.1.1\u003c/td\u003e\n\t\t\t\u003ctd\u003e045\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e6.0 - 6.0.1\u003c/td\u003e\n\t\t\t\u003ctd\u003e064\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e✅\u003c/td\u003e\n\t\t\t\u003ctd\u003e✅\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e7.0 - 7.1\u003c/td\u003e\n\t\t\t\u003ctd\u003e079\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e7.1.1 - 7.1.2\u003c/td\u003e\n\t\t\t\u003ctd\u003e088\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e8.0\u003c/td\u003e\n\t\t\t\u003ctd\u003e124\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e8.1\u003c/td\u003e\n\t\t\t\u003ctd\u003e131\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e9\u003c/td\u003e\n\t\t\t\u003ctd\u003e138\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e10\u003c/td\u003e\n\t\t\t\u003ctd\u003e170\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e✅\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e11\u003c/td\u003e\n\t\t\t\u003ctd\u003e183\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e12\u003c/td\u003e\n\t\t\t\u003ctd\u003e195\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eSv2\u003c/td\u003e\n\t\t\t\u003ctd\u003e199\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\t\u003ctd\u003e❔\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003csup\u003e(1)\u003c/sup\u003e Follow [#6](https://github.com/giacomoferretti/odex-patcher/issues/6)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiacomoferretti%2Fodex-patcher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgiacomoferretti%2Fodex-patcher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiacomoferretti%2Fodex-patcher/lists"}