Не получается рутировать устройство не находит файл
su может кто подскажет как рутировать устройство?
package com.arturio.pan;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import java.io.DataOutputStream;
import java.io.File;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button buttonRoot = findViewById(R.id.button_root);
Button buttonUnroot = findViewById(R.id.button_unroot);
buttonRoot.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (rootDevice()) {
Toast.makeText(MainActivity.this, "Device Rooted", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this, "Root Failed", Toast.LENGTH_SHORT).show();
}
}
});
buttonUnroot.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (unrootDevice()) {
Toast.makeText(MainActivity.this, "Device Unrooted", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this, "Unroot Failed", Toast.LENGTH_SHORT).show();
}
}
});
}
private boolean rootDevice() {
if (!isSuAvailable()) {
Toast.makeText(MainActivity.this, "su binary not found", Toast.LENGTH_SHORT).show();
return false;
}
try {
Process process = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(process.getOutputStream());
os.writeBytes("mount -o remount,rw /system\n");
os.writeBytes("cp /path/to/su /system/bin/su\n");
os.writeBytes("chmod 6755 /system/bin/su\n");
os.writeBytes("exit\n");
os.flush();
process.waitFor();
return process.exitValue() == 0;
} catch (IOException | InterruptedException e) {
e.printStackTrace();
return false;
}
}
private boolean unrootDevice() {
try {
Process process = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(process.getOutputStream());
// Удаляем бинарник su из системной директории
os.writeBytes("rm /system/bin/su\n");
// Восстанавливаем права доступа и монтирование в режим только для чтения
os.writeBytes("mount -o remount,ro /system\n");
// Завершаем процесс
os.writeBytes("exit\n");
os.flush();
process.waitFor();
return process.exitValue() == 0;
} catch (IOException | InterruptedException e) {
e.printStackTrace();
return false;
}
}
private boolean isSuAvailable() {
String[] paths = {"/system/bin/", "/system/xbin/", "/sbin/", "/system/sbin/", "/vendor/bin/", "/su/bin/"};
for (String path : paths) {
File file = new File(path + "su");
if (file.exists()) {
return true;
}
}
return false;
}
}