我在Android市场上有一个Android应用程序,这个应用程序是用sqlite数据库创建的,具有世界可读和可写模式。 SQLite数据库不存储任何用户特定信息。但是在root用户手机中如果我打开/ data / data / packagename / databases / 我可以看到这些文件是世界可读/可写的,几乎适用于所有应用程序。
现在我已将应用程序SQLite数据库更改为私有模式,之后该数据库文件权限更改为非全局可读/可写。但是“database-journal”文件权限没有改变。
这是一个android问题,任何时候应用程序升级数据库日志权限都不会改变使用私有模式创建的主数据库。
我是否需要担心日志文件权限,这个日志文件大部分时间都是空文件。修复上述问题的任何建议..?
答案 0 :(得分:2)
如果你创建了一个数据库MODE_WORLD_WRITEABLE
,那么你设备上的每个应用都可以删除它,打开它并插入/读取数据,复制它等等,即使该应用程序不拥有WRITE_EXTERNAL_STORAGE
权限。
日志由sqlite创建,sqlite没有理由在文件存在时更改文件的权限。删除数据库文件可能也不会删除日志,这可能是您遇到问题的原因。
如果您在打开数据库之前删除日记文件,或者chmod
/ File.setWritable()
根据您的需要删除日记文件,则应解决该问题。