Android 修改系统默认onfiles
adb shell中执行ulimit -a可以查看进程最大文件数onfiles。系统默认为1024。有需求修改这个值。
XXX:/ # ulimit -a
time(cpu-seconds) unlimited
file(blocks) unlimited
coredump(blocks) 0
data(KiB) unlimited
stack(KiB) 8192
lockedmem(KiB) 65536
nofiles(descriptors) 1024
processes 6047
sigpending 6047
msgqueue(bytes) 819200
maxnice 40
maxrtprio 0
resident-set(KiB) unlimited
address-space(KiB) unlimited
查找到的方法基本都是针对Linux的,里面涉及修改的文件,例如:/etc/security/limits.conf,Android里面没有找到。
这是Android7项目,发现Android11的一个项目onfiles值并不是1024.
通过搜索代码,发现Android11在init.rc中有一句
# Allow up to 32K FDs per process
setrlimit nofile 32768 32768
兴高采烈把这句话放在乐Android7的同样位置。编译,烧录。900E。。。。
终于找到了这样一篇文章https://blog.csdn.net/cigogo/article/details/86023067
照着流程走了一遍,成功。
经过验证,只需要在Android7的system/core/rootdir/init.rc的on early-init中添加一句就可以修改默认onfiles
# Allow up to 32K FDs per process
setrlimit 7 32768 32768
成功修改
xxx:/ # ulimit -a
time(cpu-seconds) unlimited
file(blocks) unlimited
coredump(blocks) 0
data(KiB) unlimited
stack(KiB) 8192
lockedmem(KiB) 65536
nofiles(descriptors) 32768
processes 6047
sigpending 6047
msgqueue(bytes) 819200
maxnice 40
maxrtprio 0
resident-set(KiB) unlimited
address-space(KiB) unlimited
参考:
https://www.cnblogs.com/cncaptain/p/8629502.html
linux修改open files
https://blog.csdn.net/cigogo/article/details/86023067
Android 系统文件限制小探