NoPssDrm/app/src/main/java/com/psmreborn/nopsmdrm/FixPermissions.java
2024-05-17 17:32:46 +12:00

54 lines
2.0 KiB
Java

package com.psmreborn.nopsmdrm;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.os.Environment;
import android.os.Handler;
import com.psmreborn.shared.Helper;
import com.psmreborn.shared.Root;
import java.io.File;
public class FixPermissions {
public static void changePermissionsToPsm(Activity ctx) {
ProgressDialog dialog = new ProgressDialog(ctx);
dialog.setTitle("Fixing permissions ...");
dialog.setMessage("Please Wait ...");
dialog.setIndeterminate(true);
dialog.setCancelable(false);
dialog.show();
new Thread(() -> {
Handler handler = new Handler(ctx.getMainLooper());
Helper.killPsm(ctx);
String androidDataFolder = new File(new File(Environment.getExternalStorageDirectory(), "Android"), "data").getAbsolutePath();
try {
String groupId = Root.getFileGroup(androidDataFolder);
String userId = String.valueOf(Helper.getPsmAppInfo(ctx).uid);
Root.chownRoot(new File(new File(new File(androidDataFolder, "com.playstation.psstore"), "files"), "psm").getAbsolutePath(), userId, groupId);
handler.post(() -> {
dialog.dismiss();
new AlertDialog.Builder((Activity)ctx)
.setTitle("Success!")
.setMessage("Successfully updated file permissions")
.setCancelable(false)
.setPositiveButton("Ok", null).show();
});
} catch (Exception e) {
handler.post(() -> {
dialog.dismiss();
new AlertDialog.Builder((Activity)ctx)
.setTitle("Failed.")
.setMessage(e.toString())
.setCancelable(false)
.setPositiveButton("Ok", null).show();
});
}
}).start();
}
}