summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cryptfs.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/cryptfs.c b/cryptfs.c
index 67533a4..bcacc39 100644
--- a/cryptfs.c
+++ b/cryptfs.c
@@ -688,8 +688,12 @@ int cryptfs_restart(void)
property_set("vold.decrypt", "trigger_reset_main");
SLOGD("Just asked init to shut down class main\n");
- /* Give everything a chance to shutdown */
- sleep(1);
+ /* Ugh, shutting down the framework is not synchronous, so until it
+ * can be fixed, this horrible hack will wait a moment for it all to
+ * shut down before proceeding. Without it, some devices cannot
+ * restart the graphics services.
+ */
+ sleep(2);
/* Now that the framework is shutdown, we should be able to umount()
* the tmpfs filesystem, and mount the real one.
@@ -1275,6 +1279,13 @@ int cryptfs_enable(char *howarg, char *passwd)
goto error_shutting_down;
}
+ /* Ugh, shutting down the framework is not synchronous, so until it
+ * can be fixed, this horrible hack will wait a moment for it all to
+ * shut down before proceeding. Without it, some devices cannot
+ * restart the graphics services.
+ */
+ sleep(2);
+
/* startup service classes main and late_start */
property_set("vold.decrypt", "trigger_restart_min_framework");
SLOGD("Just triggered restart_min_framework\n");