Saturday, 10 October 2015

Long boot fix for CyanogenMod



I think that i have found the cause of 5 minute boot time on CyanogenMod that is discussed in official CM thread in development forum. Unfortunately i can not post there, so i will post here in hope that someone notices and reposts into that thread.

The loop is caused by this line of code:

https ://github.com/CyanogenMod/android_system_core/blob/cm-12.1/init/devices.c#L1081

I guess that this code tries to wait for /system to be mounted. It checks if it's mounted by checking whether /system/etc/firmware exists. That directory simply does not exist in flounder's system image. I am not sure whether the condition is wrong, or the directory should actually exist or some firmware file the system is searching for is missing.

Doing this


Code:


touch /system/etc/firmware

fixes the long boot and ANR dialog on boot up. Also you can put this


Code:


#!/sbin/sh

. /tmp/backuptool.functions

if [ "" == "restore" -a ! -e "$S/etc/firmware" ]; then
    touch "$S/etc/firmware"
fi


into /system/addon.d/50-long-boot-fix.sh and make it executable to make the fix persistent across system updates. Or, better, notify someone who can actually fix this.



No comments:

Post a Comment