爱意满满的作品展示区。
amrnxcdt

尝试修复 andoid 开机缓慢的脚本

  •  
  •   amrnxcdt · Mar 7, 2022 · 2023 views
    This topic created in 1548 days ago, the information mentioned may be changed or developed.

    前文:Android 开机时重设 selinux 规则导致系统开机非常慢

    尝试手动补丁修改了系统的 init.rc 文件,发现开机速度大幅度提升了。

    从抓取的日志上看开机原本需要 200s 以上才能到启动 Boot completed ,现在只需要 30s 左右即可。

    具体文件和说明丢 github:https://github.com/Seshiria/init_accelerator

    一句话说明:直接修改 init.rc 文件跳过 /data/media/0 (用户的内置储存)的 selinux context reset ,这样在用户很多文件的情况下,加速开机。

    4 replies    2022-03-09 21:59:31 +08:00
    SupperMary
        1
    SupperMary  
       Mar 8, 2022
    github 是私有状态吗,点进去 404 了
    amrnxcdt
        2
    amrnxcdt  
    OP
       Mar 8, 2022
    @SupperMary #1 默认是私人的,忘了公开,现在可以了。
    kile
        3
    kile  
       Mar 8, 2022
    我不理解为什么谷歌不跳过,必须强制 selinux context reset 的意义在哪
    amrnxcdt
        4
    amrnxcdt  
    OP
       Mar 9, 2022   ❤️ 1
    @kile #3 下面是我的看法:
    如果说的是 /data 的话,Android 开机时候 init 会在 /data 内放置很多内容,毕竟 /data 才是可以持久化数据的地方,可以看到 init.rc 的 post-fs-data 有不少的 mkdir 操作,为了完整的 context 有必要重置这部分。

    然后 /data/data 和 /data/user 这部分可以看具体的实现是跳过了这两个文件夹的 reset ,官方说法是:

    This method helps in identifying paths that refer to users' app data. Labeling for app data is
    based on seapp_contexts and seinfo assignments rather than file_contexts and is managed by
    installd rather than by init.

    对应源码: https://cs.android.com/android/platform/superproject/+/master:external/selinux/libselinux/src/android/android_platform.c;drc=master;l=1147

    文档是在这里: https://source.android.com/security/selinux/implement?hl=zh-cn
    这部分不是很懂,但是应该不是由 init 进程进行处理的。

    检查源码之后可以发现类似的操作最早在 5.0 就引入了: https://cs.android.com/android/_/android/platform/system/core/+/refs/tags/android-5.0.0_r1:rootdir/init.rc;drc=7e58899bcfd83152581867b05bb012c5c4ec4b46;l=322

    可能的是为了方便就直接一把梭直接 restorecon /data ,在 android 的 issue 发现有针对 /data 下目录的优化: https://issuetracker.google.com/issues/124858106

    至于 /data/media/0 这个目录还没有找到有反应的,可能大家比较少在内置储存卡放大量文件 or 少用 WeChat 这样的聊天工具 or 没人在意开机速度。也没看见有类似的反馈就一直没处理这个路径。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3386 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 11:12 · PVG 19:12 · LAX 04:12 · JFK 07:12
    ♥ Do have faith in what you're doing.