{"id":13718488,"url":"https://github.com/BinTianqi/OwnDroid","last_synced_at":"2025-05-07T10:32:18.452Z","repository":{"id":217130971,"uuid":"742825375","full_name":"BinTianqi/OwnDroid","owner":"BinTianqi","description":"使用安卓Device owner特权管理你的设备。Use Android Device owner privilege to manage your device.","archived":false,"fork":false,"pushed_at":"2025-05-05T04:52:55.000Z","size":2361,"stargazers_count":649,"open_issues_count":8,"forks_count":27,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-05-05T05:32:41.615Z","etag":null,"topics":["android","device-owner"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BinTianqi.png","metadata":{"files":{"readme":"Readme-en.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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}},"created_at":"2024-01-13T13:37:40.000Z","updated_at":"2025-05-03T10:39:52.000Z","dependencies_parsed_at":"2024-03-10T10:38:34.193Z","dependency_job_id":"6b8c46c2-126c-4688-a001-64ad3595237e","html_url":"https://github.com/BinTianqi/OwnDroid","commit_stats":null,"previous_names":["bintianqi/androidowner","bintianqi/owndroid"],"tags_count":40,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BinTianqi%2FOwnDroid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BinTianqi%2FOwnDroid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BinTianqi%2FOwnDroid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BinTianqi%2FOwnDroid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BinTianqi","download_url":"https://codeload.github.com/BinTianqi/OwnDroid/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252859886,"owners_count":21815425,"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","device-owner"],"created_at":"2024-08-03T01:00:29.301Z","updated_at":"2025-05-07T10:32:18.444Z","avatar_url":"https://github.com/BinTianqi.png","language":"Kotlin","funding_links":[],"categories":["Apps","Kotlin","Dec 23, 2025"],"sub_categories":["Device owner (DPM)"],"readme":"[日本語](Readme-ja.md) | [简体中文](Readme.md)\n\n# OwnDroid\n\nUse Android Device owner privilege to manage your device.\n\n## Download\n\n- [IzzyOnDroid F-Droid Repository](https://apt.izzysoft.de/fdroid/index/apk/com.bintianqi.owndroid)\n- [Releases on GitHub](https://github.com/BinTianqi/OwnDroid/releases)\n\n\u003e [!NOTE]\n\u003e ColorOS users should download testkey version from releases on GitHub\n\n## Features\n\n- System\n  - Options: disable camera, disable screenshot, master volume mute, disable USB signal...\n  - Manage CA certificates\n  - _Wipe data_\n  - ...\n- Network\n  - Add/modify/delete Wi-Fi\n  - Network stats\n  - Minimum Wi-Fi security level\n  - Always-on VPN\n  - Network logging\n  - ...\n- Work profile\n  - Create work profile\n  - Suspend personal apps\n  - ...\n- Applications\n  - Suspend/hide app\n  - Block app uninstallation\n  - Install/uninstall app\n  - Grant/revoke permissions\n  - ...\n- User restriction\n  - Network: disable configuring mobile network, disable configuring Wi-Fi, disable SMS, disable outgoing calls...\n  - Connection: disable bluetooth, disable configuring location, disable USB file transfer, disable printing...\n  - Applications: disable installing/uninstalling app...\n  - Users: disable adding/removing/switching user...\n  - Media: disable configuring brightness, disable adjusting volume...\n  - Other: disable modifying accounts, disable configuring locale, disable factory reset, disable debug features...\n- User manager\n  - User information\n  - Start/switch/stop/delete user\n  - Create user\n  - ...\n- Password and keyguard\n  - _Reset password_\n  - Require password complexity\n  - Set screen timeout\n  - ...\n\n## Activate\n\n- Shizuku (recommended)\n- Execute command in adb shell: `dpm set-device-owner com.bintianqi.owndroid/.Receiver`\n\n## FAQ\n\n### Activating\n\n#### Already some accounts on the device\n\n```text\njava.lang.IllegalStateException: Not allowed to set the device owner because there are already some accounts on the device\n```\n\nSolutions:\n- Freeze apps who hold those accounts.\n- Delete these accounts.\n- Use LSPosed module [HookDPM](https://github.com/BinTianqi/HookDPM).\n\n#### Already several users on the device\n\n```text\njava.lang.IllegalStateException: Not allowed to set the device owner because there are already several users on the device\n```\n\nSolutions:\n- Delete secondary users.\n- Use LSPosed module [HookDPM](https://github.com/BinTianqi/HookDPM).\n\n\u003e [!NOTE]\n\u003e Some systems have features such as app cloning and children space, which are usually users.\n\n#### MIUI\n\n```text\njava.lang.SecurityException: Neither user 2000 nor current process has android.permission.MANAGE_DEVICE_ADMINS.\n```\n\nSolutions:\n- Enable `USB debugging (Security setting)` in developer options.\n- Execute activating command in root shell.\n\n#### ColorOS\n\n```text\njava.lang.IllegalStateException: Unexpected @ProvisioningPreCondition\n```\n\nSolution: Use OwnDroid testkey version\n\n## API\n\n| ID                     | Extras        | Minimum Android version |\n|------------------------|---------------|:-----------------------:|\n| HIDE                   | `package`     |                         |\n| UNHIDE                 | `package`     |                         |\n| SUSPEND                | `package`     |            7            |\n| UNSUSPEND              | `package`     |            7            |\n| ADD_USER_RESTRICTION   | `restriction` |                         |\n| CLEAR_USER_RESTRICTION | `restriction` |                         |\n| LOCK                   |               |                         |\n\n[Available user restrictions](https://developer.android.com/reference/android/os/UserManager#constants_1)\n\n```shell\n# An example of hiding app in ADB shell\nam broadcast -a com.bintianqi.owndroid.action.HIDE -n com.bintianqi.owndroid/.ApiReceiver --es key abcdefg --es package com.example.app\n```\n\n```kotlin\n// An example of hiding app in Kotlin\nval intent = Intent(\"com.bintianqi.owndroid.action.HIDE\")\n    .setComponent(ComponentName(\"com.bintianqi.owndroid\", \"com.bintianqi.owndroid.ApiReceiver\"))\n    .putExtra(\"key\", \"abcdefg\")\n    .putExtra(\"package\", \"com.example.app\")\ncontext.sendBroadcast(intent)\n```\n\n## Build\n\nYou can use Gradle in command line to build OwnDroid.\n```shell\n# Use testkey for signing (default)\n./gradlew build\n# Use your custom .jks key for signing\n./gradlew build -PStoreFile=\"/path/to/your/jks/file\" -PStorePassword=\"YOUR_KEYSTORE_PASSWORD\" -PKeyPassword=\"YOUR_KEY_PASSWORD\" -PKeyAlias=\"YOUR_KEY_ALIAS\"\n```\n(Use `./gradlew.bat` instead on Windows)\n\n## License\n\n[License.md](LICENSE.md)\n\n\u003e Copyright (C)  2024  BinTianqi\n\u003e\n\u003e This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\n\u003e\n\u003e This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.\n\u003e\n\u003e You should have received a copy of the GNU General Public License along with this program.  If not, see \u003chttps://www.gnu.org/licenses/\u003e.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBinTianqi%2FOwnDroid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FBinTianqi%2FOwnDroid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBinTianqi%2FOwnDroid/lists"}