π Shizuku API Flutter Plugin
Access the Shizuku API seamlessly in your Flutter apps! π
π About
This plugin powers my Play Store application System App Remover, which allows users to remove system apps (bloatware) effortlessly without requiring root access or a computer(Android 10 and below still needs computer to run Shizuku).
β‘ Installation
Add the plugin to your project:
flutter pub add shizuku_api
π Requirements
- π± Shizuku app should be installed and running
π§ Configuration
π app/build.gradle
- minSdk should be >= 24
π AndroidManifest.xml add this inside application tag:
<application>
<provider
android:name="rikka.shizuku.ShizukuProvider"
android:authorities="${applicationId}.shizuku"
android:multiprocess="false"
android:enabled="true"
android:exported="true"
android:permission="android.permission.INTERACT_ACROSS_USERS_FULL" />
</application>
π Usage
- β οΈ Important: DO THIS BEFORE CALLING ANY OTHER PLUGIN FEATURES
- !! Shizuku should be installed
- β Check if Shizuku is running first
bool isBinderRunning = await _shizukuApiPlugin.pingBinder() ?? false; // tries to ping shizuku
-
π οΈ check Shizuku Permission
final _shizukuApiPlugin = ShizukuApi(); // checks if shizuku permission granted by user //returns true if previously allowed permission or false if permission declined /never requested bool checkPermission = await _shizukuApiPlugin.checkPermission(); print(checkPermission); -
π οΈ request Shizuku Permission
final _shizukuApiPlugin = ShizukuApi(); // triggers shizuku popup //returns true if Permission allowed or false if declined bool requestPermission = await _shizukuApiPlugin.requestPermission(); print(requestPermission); -
π» Run Commands
- β‘ Root environment (su) is not tested
- β Can run ADB shell commands (working fine)
String command = 'pm uninstall --user 0 com.android.chrome'; await _shizukuApiPlugin.runCommand(command); // returns success if Uninstalled system app / Failure if failed