1, device/qcom/common/rootdir/etc/init.qcom.rc 和 init.qcom.early_boot.sh, qcs605.mk优化,仅仅设置lcd 密度值为240,其他都删除掉,可以优化500ms
setprop vendor.display.lcd_density 240
2,fallbackhome: mHandler.sendEmptyMessageDelayed(0, 20);//caoyong,modify 轮询时间500ms->20ms
windowmanagerservice.java :private static final int BOOT_ANIMATION_POLL_INTERVAL = 10
3,avc权限优化
根据log开机时还缺如下权限:
allow init firmware_file:filesystem { getattr };
allow init bt_firmware_file:filesystem { getattr };
allow init sysfs_mmc_host:file { write };
allow vendor_init ipa_dev:file { create };
allow system_server sysfs:file { read };
allow system_server vendor_default_prop:file { read };
allow system_app vendor_default_prop:file { read };
allow platform_app vendor_display_notch_prop:file { read };
allow webview_zygote zygote_exec:file { read execute };
allow shell kernel:system { syslog_read };
allow hal_sensors_default hal_sensors_default:file { read };
allow hal_sensors_default sensors_prop:file { read };
allow hal_perf_default sysfs_kgsl_proc:dir { search };
4, launcher 配置为
android:defaultToDeviceProtectedStorage="true"
android:directBootAware="true"
revert:ActivityRecord.java和ActivityManagerService.java的改动
可以提前2s+启动
另外可以将fallbackhome的directBootAware=false
5,提前尽快unlockuser,
// User is first coming up.
public final static int STATE_BOOTING = 0;
// User is in the locked state.
public final static int STATE_RUNNING_LOCKED = 1;
// User is in the unlocking state.
public final static int STATE_RUNNING_UNLOCKING = 2;
// User is in the running state.
public final static int STATE_RUNNING_UNLOCKED = 3;