高通如何优化FFBM启动时间

    xiaoxiao2021-03-25  86

    我们知道,FFBM(工厂快速启动模式)是用来提高生产效率,所以较少的启动时间,更多 高效。 这里有4种优化FFBM引导时间的方法。 1.当设备引导到FFBM时,跳过LK的5秒延迟。 (仅适用于Android M及更高版本) int boot_linux_from_mmc(void) { ... #if VERIFIED_BOOT if((boot_verify_get_state() == ORANGE) && (!boot_into_ffbm)) { #if FBCON_DISPLAY_MSG display_bootverify_menu(DISPLAY_MENU_ORANGE); wait_for_users_action(); #else dprintf(CRITICAL, "Your device has been unlocked and can't be trusted.\nWait for 5 seconds before proceeding\n"); mdelay(5000); #endif } #endif ... } 2.移动servicemanager,surfaceflinger,fastmmi服务到init.qcom.factory.rc的头 rootdir\etc\init.qcom.factory.rc on mmi # ======================================================== # This is FFBM only settings. # ======================================================== #mkdir for factory data files. mkdir /cache/FTM_AP 0750 root root #Start the following services needed for fftm start servicemanager start surfaceflinger start fastmmi start qcom-usb-sh start logd start debuggerd start debuggerd64 start servicemanager//删掉 start surfaceflinger//删掉 start per_mgr start qcom-sh start ril-daemon start config_bluetooth start sensors start media start fastmmi//删掉 start wcnss-service start qcom-post-boot start rmt_storage start qcom-c_main-sh start irsc_util start qcamerasvr start qcomsysd start ptt_ffbm start tftp_server 3.首先创建draw_thread,因为创建输入线程将延迟1秒。 static int start_threads() { int retval = -1; MMI_ALOGI("start create threads"); #ifdef ANDROID //retval = create_input_threads(); //if(retval < 0) { // MMI_ALOGE("create input threads fail."); // return -1; //} retval = pthread_create(&g_draw_tid, NULL, draw_thread, NULL); if(retval < 0) { MMI_ALOGE("create thread fail, error=%s", strerror(errno)); return -1; } MMI_ALOGD("create draw thread(thread id=%lu) for draw screen\n", g_draw_tid); retval = create_input_threads(); if(retval < 0) { MMI_ALOGE("create input threads fail."); return -1; } #endif .... } 4.确保使用用户构建,而不是userdebug / eng构建。
    转载请注明原文地址: https://ju.6miu.com/read-15520.html

    最新回复(0)