Androi开发,应用程序需要往/data/local/tmp/内写入数据,权限不够,怎么解决,很着急的。谢谢 20
查看这个Stack Overflow上的帖子,
《Android: Permission denied for /data/local/tmp/*》网页链接
这里面说了曾经可以,而现在可以通过在/data/data/包名目录下执行,原文引文如下
If I understand the scenario correctly, you create the script on the fly, and use /data/local/tmp as an easy location that is both publicly writable and executable. Once, this was possible. But on recent versions of Android, security has been tightened.
Your app can execute files under /data/data/${your.package}. You can use getContext().getFilesDir() to reliably obtain the full path. Note that you still need to use chmod 500 to ensure that the file has executable permission.
总的来说,如果要动态释放so或者sh然后执行,解决方案是不在/data/local/tmp中释放,而放到getContext().getFilesDir()获取到的/data/data/${your.package}目录中执行,记得释放后手工加上运行权限
我是刚刚遇到这个问题搜索到这里的,贴在这里方便后来人
<!-- 在SDCard中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
不是sdcard。是data/local/tmp
不是sdcard。是data/local/tmp
在Mainifest里加一个这个,不知道可不可以,试一下
这个是往 sdcard里写,data还是写不进。还是谢谢你
这个是往 sdcard里写,data还是写不进。还是谢谢你