Skip to content

Commit

Permalink
fix: Dhizuku crash on failed to set DelegatedScopes
Browse files Browse the repository at this point in the history
  • Loading branch information
deltazefiro committed Feb 22, 2025
1 parent a69eb0f commit ca50960
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 5 deletions.
2 changes: 1 addition & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ dependencies {

implementation 'dev.rikka.rikkax.material:material-preference:2.0.0'
implementation 'dev.rikka.rikkax.appcompat:appcompat:1.6.1'
implementation 'io.github.iamr0s:Dhizuku-API:2.4'
implementation 'io.github.iamr0s:Dhizuku-API:2.5.3'
implementation 'com.github.getActivity:XXPermissions:20.0'
implementation 'com.github.getActivity:EasyWindow:10.62'
implementation 'com.github.heruoxin.Delegated-Scopes-Manager:client:master-SNAPSHOT'
Expand Down
18 changes: 14 additions & 4 deletions app/src/main/java/deltazero/amarok/apphider/DhizukuAppHider.java
Original file line number Diff line number Diff line change
Expand Up @@ -65,13 +65,23 @@ public void tryToActivate(ActivationCallbackListener activationCallbackListener)
Dhizuku.requestPermission(new DhizukuRequestPermissionListener() {
@Override
public void onRequestPermission(int grantResult) {
if (grantResult == PackageManager.PERMISSION_GRANTED) {
Log.d("DhizukuHider", "Permission granted.");
activationCallbackListener.onActivateCallback(DhizukuAppHider.class, true, 0);
} else {
if (grantResult != PackageManager.PERMISSION_GRANTED) {
Log.d("DhizukuHider", "Permission denied.");
activationCallbackListener.onActivateCallback(DhizukuAppHider.class, false, R.string.dhizuku_permission_denied);
return;
}
Log.d("DhizukuHider", "Permission granted.");

// SetDelegatedScopes may throw an SecurityException for some reason.
try {
setDelegatedScopes();
} catch (Exception e) {
Log.w("DhizukuHider", "Failed to set delegated scopes.", e);
activationCallbackListener.onActivateCallback(DhizukuAppHider.class, false, R.string.dhizuku_failed_to_set_delegated_scopes);
return;
}

activationCallbackListener.onActivateCallback(DhizukuAppHider.class, true, 0);
}
});
}
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values-zh-rCN/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -182,4 +182,5 @@
<string name="invert_tile_color_description">默认隐藏时控制中心开关为激活状态。启用开关以反转此行为。</string>
<string name="warning_system_apps">隐藏系统应用可能在部分设备上导致系统持续重启。请谨慎隐藏系统应用。</string>
<string name="warning_root_apps">Amarok 并非隐藏 Root 隐藏工具。使用其隐藏高权限应用可能导致 Root 权限丢失。如果您希望隐藏 Root,请考虑使用 Dr-TSNG/Hide-My-Applist 或其他类似工具。</string>
<string name="dhizuku_failed_to_set_delegated_scopes">Dhizuku: 无法获取 `DELEGATION_PACKAGE_ACCESS`。请尝试重新激活 Dhizuku。</string>
</resources>
1 change: 1 addition & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -188,4 +188,5 @@
<string name="invert_tile_color_description">By default, the quick settings tile appears activated when your privacy is visible. Toggle this option to reverse the behavior.</string>
<string name="warning_system_apps">Hiding system apps may cause system bootloop. Please be cautious when hiding system apps.</string>
<string name="warning_root_apps">Amarok is not designed for hiding root-related apps. It may cause root access loss. Consider using Dr-TSNG/Hide-My-Applist instead.</string>
<string name="dhizuku_failed_to_set_delegated_scopes">Dhizuku: Failed to grant `DELEGATION_PACKAGE_ACCESS`. Please try reactivating Dhizuku.</string>
</resources>

0 comments on commit ca50960

Please sign in to comment.