我们可以从Android应用程序的内部存储执行make吗?

时间:2017-06-24 12:40:44

标签: android shell makefile

我正在尝试从应用程序的内部存储器/data/data/%package%/..)运行makefile。生成文件由存储在内部存储器中特定于应用程序的文件夹中的run.sh文件触发。

Shell脚本

06-24 17:14:16.893 E/File Manager: Shell: #!/system/bin/sh 
06-24 17:14:16.893 E/File Manager: Shell: /data/data/com.mkmv.playground/files/appfldr/make -f /data/data/com.mkmv.playground/files/appfldr/tmp/Makefile

和日志

06-24 17:14:16.956 E/File Manager: Execution Error: /system/bin/sh: sed: not found
                                   /system/bin/sh: sed: not found
                                   /system/bin/sh: sed: not found
                                   /system/bin/sh: sed: not found
                                   /system/bin/sh: sed: not found

chmod 777中所有文件的appfldr,只是徒劳无功。

另外,尝试添加

"cd " + this.getFilesDir().getAbsolutePath() + "/appfldr \n";

到shell脚本,在执行makefile之前,没有任何反应。

当我尝试在root手机上运行相同功能时,即使没有要求超级用户访问,无论有没有cd,它都能正常工作。但在无根设备中却没有。就我对该主题的研究而言,应用程序应该能够从其私有文件夹执行。我哪里错了?

谢谢!

1 个答案:

答案 0 :(得分:0)

最后,回答我自己的问题。

我对终端的不熟悉是主要问题。 问题是sed无效。正如我猜测的那样,应用程序在访问内部目录时没有任何问题。在root设备中,busybox已将sed添加到$PATH,因此工作正常。管理也可以在无根设备中添加sed,并且工作正常![/ p>

谢谢,无论谁试图帮助我!