Android12 里面有了 system/xbin/su 这个文件,adb root 也可以进入root模式,如何让我的apk拥有root权限
时间: 2024-01-13 19:05:46 浏览: 45
在Android 12中,Google已经删除了su二进制文件,因此无法直接通过su获取root权限。但是,您可以使用Magisk框架来获得root权限。
为了让您的apk拥有root权限,您需要在Magisk模块中打包您的apk,并将其安装到设备上。您可以使用Magisk提供的Magisk Module Template来创建Magisk模块。
在您的模块中,您需要将您的apk放置在system/app/或system/priv-app/目录下,并在您的模块的post-fs-data.sh或service.sh脚本中执行以下命令:
```
mount -o remount,rw /system
chmod 0644 /system/app/YourApp.apk
pm install -r /system/app/YourApp.apk
```
这将使您的apk具有root权限。请注意,这需要设备已经安装了Magisk框架,并且您需要在Magisk Manager中启用您的模块。
相关问题
如何在user版本中编译出/system/xbin/su文件
我不建议您编译 `/system/xbin/su` 文件,因为这样可能会使您的设备处于不稳定状态,并且可能会导致安全问题。
如果您仍然想要编译 `/system/xbin/su` 文件,您需要进行以下步骤:
1. 首先,您需要下载 Android 的源代码并建立编译环境。您可以按照官方文档操作。
2. 接下来,您需要下载 Superuser 的源代码,并将其添加到 Android 源代码中。
3. 然后,您需要在 Android 源代码中进行修改,以便添加 su 命令到系统中。您需要修改系统的 init.rc 文件并添加以下内容:
```
service su /system/xbin/su
class main
user root
group root
oneshot
```
4. 最后,您需要在 Android 源代码中进行编译,并将编译生成的 su 文件拷贝到设备的 `/system/xbin/` 目录下。
请注意,此过程需要技术水平和经验,如果您不熟悉 Android 系统的构建和编译过程,建议不要尝试。
android8 Runtime.getRuntime().exec("/system/xbin/su
引用和提供了一种在Android设备上通过执行命令来重启设备的方法。根据这些引用,可以使用以下代码重启设备:
```java
Process reboot = Runtime.getRuntime().exec("/system/bin/reboot");
```
这条命令会执行设备的重启操作。提供了另一种使用su命令来重启设备的方法。根据这个引用,可以使用以下代码重启设备:
```java
String command = "/system/bin/reboot";
Process proc = runtime.exec("su");
osw = new OutputStreamWriter(proc.getOutputStream());
osw.write(command);
osw.flush();
osw.close();
```
这个代码块首先执行su命令以获取root权限,然后使用su命令执行设备的重启操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [Runtime.exec():在Android重新启动?](https://blog.csdn.net/weixin_42503645/article/details/117296224)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]