Android 文件系统中添加文件及添加系统属性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 文件系统中添加文件及添加系统属性相关的知识,希望对你有一定的参考价值。

在文件系统中添加文件,例如 sys/data/... 在这个路径下添加一个文件。如何在代码中实现,这个文件是文本格式,能否实现读写。
添加文件成功后,如何在代码中实现对此文件的读与写。 ril层,需要c或c++语言实现。
如何添加系统属性,例如:persist.test.test.... 请问如何在代码中实现此添加。

参考技术A android是linux系统,文件系统有很严格的权限设置,如果你的apk没有root权限那么你只能在有限的地方如sdcard目录下读写文件

至于读写文件的方法,最简答的在java上直接用FileInputStream类就可以
如果是ril层用c/c++的话,在ndk下直接用fopen fwrite就行了

所以核心问题是你的apk应用有没有权限来读写sys/data这个目录,如果想得到root权限,只能考虑使用一些本地权限提升漏洞的exploit来获得本回答被提问者和网友采纳
参考技术B File类能直接操作吗

添加特殊文件属性,linux系统服务器进行性能调优(IO)


chattr +A 特性, + A参数不记录系统访问时间,提升频繁些服务器性能,降低IO压力。
正常情况下系统建立一个文件后,会生成 Access、Modify、Change三个记录时间值,本次主要对Access访问时间进行调优。

1,我先建立了一个测试文件text.txt。
[root@Yunweiw kk]# lsattr text.txt  # lsattr 查看文件是否有特殊文件属性,-e 是ext4文件系统新增加的特性,
Extents:

  ext3系统都是用块映射表来记录数据块分配给那些文件的,对于大文件这样的话效率不高,特别是当删除文件或者插入数据时,因为块映射表是针对每一个块的,而大文件有很多块,块表将会变得非常大,现代操作系统引入了一个叫做extents的方法,一个extents包含一些连续集中的数据块,一个100MB的文件将被分配给一个 单独的Extents,这样就不用像Ext3那样新增25600个数据块的记录(一个数据块是4KB)。而超大型文件会被分解在多个extents里。这样可以提高性能。。

-------------e- text.txt

2 查看文件时间属性。

[root@Yunweiw kk]# stat text.txt
  File: `text.txt
  Size: 220446950         Blocks: 18352      IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 266118      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2012-08-02 18:02:02.018136155 +0800 #访问时间为 2012-08-02 18:02:02

Modify: 2012-08-02 18:07:21.068199183 +0800
Change: 2012-08-02 18:07:21.068199183 +0800

3 查看一下时间;
[root@Yunweiw kk]# date
Thu Aug  2 18:37:04 CST 2012

4 访问一下文件;
[root@Yunweiw kk]# more text.txt
196     ./lib/modules/2.6.32-220.el6.i686/kernel/drivers/net/wimax/i2400m

5 再次查看文件时间属性;
[root@Yunweiw kk]# stat text.txt
  File: `text.txt
  Size: 220446950       Blocks: 430568     IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 266118      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)

Access: 2012-08-02 18:37:06.003886986 +0800    #访问时间改变 18:37:06
Modify: 2012-08-02 18:35:01.631266778 +0800
Change: 2012-08-02 18:35:01.631266778 +0800

6 添加A 特殊文件属性;

[root@Yunweiw kk]# chattr +A text.txt

7 看一下文件属性,添加是否成功,有A参数标示成功。
[root@Yunweiw kk]# lsattr text.txt
-------A-----e- text.txt

8 再看一下,服务器时间;
[root@Yunweiw kk]# date
Thu Aug  2 18:40:12 CST 2012

9 访问一下文件;
[root@Yunweiw kk]# more text.txt

[root@Yunweiw kk]# stat text.txt
  File: `text.txt
  Size: 220447076       Blocks: 430568     IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 266118      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)

Access: 2012-08-02 18:37:06.003886986 +0800    #访问时间未改变和之前的最后访问时间相等;

Modify: 2012-08-02 18:41:01.547834829 +0800
Change: 2012-08-02 18:41:01.547834829 +0800

结论:通过添加+A 参数,服务器不在修改对文件访问的时间值,对于频繁些的服务器能够有效的为服务器降低一些压力。同时也可以根据需要对服务器的一些写比较频繁的文件添加此属性,降低磁盘IO,比如/var/log/下的文件等等,根据需要进行调整。

以上是关于Android 文件系统中添加文件及添加系统属性的主要内容,如果未能解决你的问题,请参考以下文章

Mac系统上如何添加文本文档

Android系统签名

Android 添加System权限

修改Linux系统打开文件数限制

android 添加系统服务

pycharm中以中文命名py文件不能正常运行解决办法