我正在尝试从应用程序的内部存储器/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
,它都能正常工作。但在无根设备中却没有。就我对该主题的研究而言,应用程序应该能够从其私有文件夹执行。我哪里错了?
谢谢!
答案 0 :(得分:0)
最后,回答我自己的问题。
我对终端的不熟悉是主要问题。 问题是sed
无效。正如我猜测的那样,应用程序在访问内部目录时没有任何问题。在root设备中,busybox已将sed
添加到$PATH
,因此工作正常。管理也可以在无根设备中添加sed
,并且工作正常![/ p>
谢谢,无论谁试图帮助我!