高通如何优化FFBM启动时间
2017-03-09 20:08
1211 查看
我们知道,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构建。
高效。 这里有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构建。
相关文章推荐
- 关于如何优化eclipse启动时间
- iOS 如何优化 App 的启动时间
- Facebook iOS App如何优化启动时间
- 如何优化 App 的启动时间
- Android如何优化启动时间(boot time)
- app性能优化之如何计算apk的启动时间
- Linux启动时间的极限优化
- linux启动优化:mdev -s自从创建节点,启动时间比较长(大概5-6s)解决办法(原创)
- Linux下如何查看系统启动时间和运行时间
- Linux下如何查看系统启动时间和运行时间
- Embedded Linux 启动时间优化
- ANR、内存泄漏、启动时间优化
- linux内核启动时间简单优化
- Linux下如何查看系统启动时间和运行时间
- Linux启动时间的极限优化
- Android内核开发之六:如何统计系统的启动时间
- Android性能优化之app启动时间测量
- Tomcat 启动慢 如何优化?
- iOS App性能优化之启动时间、内存
- Linux启动时间的极限优化