{"id":15660524,"url":"https://github.com/mygod/librootkotlinx","last_synced_at":"2026-04-27T02:00:47.314Z","repository":{"id":133644538,"uuid":"530866696","full_name":"Mygod/librootkotlinx","owner":"Mygod","description":"Run rooted Kotlin JVM code made easy with coroutines","archived":false,"fork":false,"pushed_at":"2026-04-26T03:50:36.000Z","size":358,"stargazers_count":35,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-04-26T05:30:41.442Z","etag":null,"topics":["android","coroutines-android"],"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/Mygod.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":["Mygod"]}},"created_at":"2022-08-30T23:28:07.000Z","updated_at":"2026-04-26T03:50:40.000Z","dependencies_parsed_at":"2023-09-01T03:01:28.990Z","dependency_job_id":"7c39955a-ac26-4d75-b448-06fa19dc95d7","html_url":"https://github.com/Mygod/librootkotlinx","commit_stats":{"total_commits":48,"total_committers":1,"mean_commits":48.0,"dds":0.0,"last_synced_commit":"108cf14da53448ef480253459d680ad6bfbd325e"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/Mygod/librootkotlinx","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mygod%2Flibrootkotlinx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mygod%2Flibrootkotlinx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mygod%2Flibrootkotlinx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mygod%2Flibrootkotlinx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mygod","download_url":"https://codeload.github.com/Mygod/librootkotlinx/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mygod%2Flibrootkotlinx/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32319560,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"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","coroutines-android"],"created_at":"2024-10-03T13:22:09.050Z","updated_at":"2026-04-27T02:00:47.298Z","avatar_url":"https://github.com/Mygod.png","language":"Kotlin","funding_links":["https://github.com/sponsors/Mygod"],"categories":[],"sub_categories":[],"readme":"# librootkotlinx\n\n[![CircleCI](https://circleci.com/gh/Mygod/librootkotlinx.svg?style=shield)](https://circleci.com/gh/Mygod/librootkotlinx)\n[![API](https://img.shields.io/badge/API-21%2B-brightgreen.svg?style=flat)](https://android-arsenal.com/api?level=21)\n[![Language: Kotlin](https://img.shields.io/github/languages/top/Mygod/librootkotlinx.svg)](https://github.com/Mygod/librootkotlinx/search?l=kotlin)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/ae00f3cc581f4222a126ffafeeb70987)](https://www.codacy.com/gh/Mygod/librootkotlinx/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=Mygod/librootkotlinx\u0026amp;utm_campaign=Badge_Grade)\n[![License](https://img.shields.io/github/license/Mygod/librootkotlinx.svg)](LICENSE)\n\nRun rooted Kotlin JVM code made super easy with coroutines and parcelize!\nCheck out demo at `app` to see just how easy it is.\nAlso check out more complicated demos:\n* [PoGo+LE](https://github.com/Mygod/pogoplusle)\n* [VPN Hotspot](https://github.com/Mygod/VPNHotspot) (how this library started)\n\nUse it now!\n`be.mygod.librootkotlinx:librootkotlinx:1.0.0+`\n(see Releases page for latest version)\n\n## Features\n\n* 100% Kotlin with coroutines and `Parcelize`! Easy to use and virtually no boilerplate code (no aidl)\n* Persistent root session that closes itself on inactive (optional and configurable)\n* Supports running native code (API 23+)\n\n## Comparison with [libsu](https://github.com/topjohnwu/libsu)\n\nThis project achieves morally the same thing as and ports compatibility code from libsu up to v6.0.0.\nWith that said, there are a few differences.\n\n* librootkotlinx supports only API 21+ instead of 19+ for libsu.\n* librootkotlinx is 100% Kotlin and much easier to use with coroutines,\n  whereas libsu uses AIDL which involves heavy boilerplate usages.\n* librootkotlinx is minimal and lightweight as additional features need to be manually enabled.\n* librootkotlinx is more reliable since it minimizes the amount of private APIs used (see listed below).\n  This is possible also because it does not enable all features by default.\n* Out of the box, librootkotlinx is more secure since it uses Unix pipe instead of AIDL for IPC.\n* librootkotlinx works around not able to `exec` on certain devices running API 21-25.\n  (See `RootServer.init#shouldRelocate` if you need this feature.)\n* libsu has some additional features such as remote file system and passing `ParcelFileDescriptor` which is not supported out-of-the-box here.\n\n## Private APIs used\n\nThe following private platform APIs are invoked if you use `shouldRelocate = true` on API 29+.\n(So never under normal circumstances.)\nAPI restrictions are updated up to [SHA-256 checksum `2886a24b6382be8751e86e3c355516c448987c3b0550eb8bb906a34490cfaa3c`](https://dl.google.com/developers/android/tm/non-sdk/hiddenapi-flags.csv).\n\n* (relocated mode, API 29+) `Landroid/os/SystemProperties;-\u003eget(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;,sdk,system-api,test-api`\n* (relocated mode, API 29+) `Landroid/os/SystemProperties;-\u003egetBoolean(Ljava/lang/String;Z)Z,sdk,system-api,test-api`\n* (for JNI) `Ldalvik/system/BaseDexClassLoader;-\u003epathList:Ldalvik/system/DexPathList;,unsupported`\n* (for JNI) `Ldalvik/system/DexPathList;-\u003enativeLibraryDirectories:Ljava/util/List;,unsupported`\n* (relocated mode, API 29+) `Ldalvik/system/VMRuntime;-\u003egetCurrentInstructionSet()Ljava/lang/String;,core-platform-api,unsupported`\n* (relocated mode, API 29+) `Ldalvik/system/VMRuntime;-\u003egetRuntime()Ldalvik/system/VMRuntime;,core-platform-api,unsupported`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmygod%2Flibrootkotlinx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmygod%2Flibrootkotlinx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmygod%2Flibrootkotlinx/lists"}