<bool name="config_enableKeyguardService">true</bool>
To block the frames rendering to the primary display surfaceflinger is modified as below,
884void SurfaceFlinger::onMessageReceived(int32_t what) { 885 ATRACE_CALL(); 886 switch (what) { 887 case MessageQueue::TRANSACTION: { 888 handleMessageTransaction(); 889 break; 890 } 891 case MessageQueue::INVALIDATE: { 892 bool refreshNeeded = handleMessageTransaction(); 893 refreshNeeded |= handleMessageInvalidate(); 894 refreshNeeded |= mRepaintEverything; 895 if (refreshNeeded) { 896 // Signal a refresh if a transaction modified the window state, 897 // a new buffer was latched, or if HWC has requested a full 898 // repaint 899 signalRefresh(); 900 } 901 break; 902 } 903 case MessageQueue::REFRESH: {if (isToBeDisplayEnabled) //Condition to check when to start rendering 904 handleMessageRefresh();} 905 break; 906 } 907 } 908}I am setting the flag isTobeDisplayEnabled, in the function289void SurfaceFlinger::bootFinished() 290{ 291 const nsecs_t now = systemTime(); 292 const nsecs_t duration = now - mBootTime; 293 ALOGI("Boot is finished (%ld ms)", long(ns2ms(duration)) ); 294 mBootFinished = true; 295 296 // wait patiently for the window manager death 297 const String16 name("window"); 298 sp<IBinder> window(defaultServiceManager()->getService(name)); 299 if (window != 0) { 300 window->linkToDeath(static_cast<IBinder::DeathRecipient*>(this)); 301 } 302 303 // stop boot animation 304 // formerly we would just kill the process, but we now ask it to exit so it 305 // can choose where to stop the animation. 306 property_set("service.bootanim.exit", "1");isToBeDisplayEnabled = true;307}But what i am seeing is when transition happens from Bootloader to android homescreen,there is rotated screen or there is a blank screen displayed before the android homescreen is visible.What may be the problem here how to correct the problems,