现在,我正在执行以下操作,以root身份执行命令。但是整个过程似乎有点手动,所以我用Google搜索了一下并找到了roottools。是推荐的方式还是有更好的选择?
我希望能够等待命令完成,读取输出并重新设置val。
public static void deleteSystemApp(Context context, String app)
{
final String MOUNT_RW = "mount -o remount,rw -t rfs /dev/stl5 /system; \n";
final String MOUNT_RO = "mount -o remount,ro -t rfs /dev/stl5 /system; \n";
final String RM_APP = "rm -rf " + app + "; \n";
Process process;
try
{
process = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(process.getOutputStream());
os.writeBytes(MOUNT_RW);
Toast.makeText(context, RM_APP, Toast.LENGTH_SHORT).show();
//os.writeBytes(RM_APP);
os.writeBytes(MOUNT_RO);
}
catch(IOException e)
{
e.printStackTrace();
}
}
关于克里斯·斯特拉顿指出的问题的最新消息:
我已经对我的应用程序参数进行了urlencoding,以确保没有人可以传递“诸如rm -rf /”或“ && rm -rf /”之类的东西并擦除设备。但是经过进一步的考虑,我完全放弃了清理论点的想法。并删除了我的部分代码。为什么?
为什么有人要对自己的设备执行此操作?
如果其他人能够传递恶意参数,则该设备已经受到威胁。
最佳答案
原始说明:
RootTools为扎根开发人员提供了一套标准化的工具,用于
用于生根应用程序的开发。最后,我们将
通过为开发人员提供强大,易于使用的功能来实现这一目标
库将大大缩短开发时间并
促进代码重用。该项目对任何经过验证的开发人员开放
觉得他们有贡献。通过共同参与,我们
可以简化我们自己的流程,提高我们的效率
应用,学习新技术并为我们提供更好的体验
用户。
您可能了解到,RootTools为有根的开发人员提供了一套标准化的工具,用于在有根应用程序的开发中使用。如果您需要自己的非标准工具,或者修改RootTools的源代码。通常,此库将满足您的所有需求。我在几个项目中使用了它,对此感到非常高兴。
祝好运。