如何在apk上添加.sh安装并执行它们



标题是这样说的,但问题是:

我有一个带有命令su touch /sdcard/test.txt的.sh文件,看看它是否有效。但我不知道当用户安装应用程序时如何包含它。我该如何添加?我考虑过使用这样的东西:

su
touch /sdcard/folder/path/test.sh
vi /sdcard/folder/path/test.sh

然后创建.sh文件,但我不知道如何将esc密钥发送到:wq,我知道如何执行该文件,是的,我的手机是root用户。我只需要知道如何在安装apk时包含它,和/或如何发送esc密钥来完成vi命令。

感谢

编辑:我创建了一个名为test.sh.sh文件,并创建了一款适用于root用户的应用程序。test.sh文件只有touch /sdcard/test.txt,只是为了看看我的java代码是否有效。我用一个按钮创建了一个简单的应用程序,在这个按钮里点击我有这个:

test.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
try
{
Process proc = Runtime.getRuntime().exec(new String[] {"su","-c","sh ./path where .sh will be/test.sh"});
proc.waitFor();
}
catch (Exception ex)
{
String TAG = null;
Log.i(TAG, "Doesn't work", ex);
}
}
});

但我不知道如何或在哪里添加我的test.sh文件,所以当用户安装我的应用程序时,文件就在那里。我试着包括

Process proc = Runtime.getRuntime().exec(new String[] {"su","-c","touch /sdcard/prueba.sh ; vi /sdcard/prubea.sh ; ****Don't know how to edit, use ESC key and :wq****});
proc.waitFor();

现在,当我点击按钮时,应用程序一直在运行,等待我结束vi命令,但我不知道该怎么做,因为我必须按下esc才能完成:wq。。。希望这能明确

如果您确定手机上安装了vi,只需查找ESC的ascii中的十六进制代码,并将其写入输入缓冲区。

这是一个很好的ASCII图表cppreference.com

听起来您正试图在安装时执行操作。这个如何在安装时启动android服务表明,这是不可能做到的。

最新更新