diff --git a/services/core/java/com/android/server/NativeDaemonConnector.java b/services/core/java/com/android/server/NativeDaemonConnector.java index f5f7732141..b5a8332375 100644 --- a/services/core/java/com/android/server/NativeDaemonConnector.java +++ b/services/core/java/com/android/server/NativeDaemonConnector.java @@ -24,11 +24,13 @@ import android.os.Looper; import android.os.Message; import android.os.PowerManager; import android.os.SystemClock; +import android.os.SystemProperties; import android.util.LocalLog; import android.util.Slog; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.util.Preconditions; +import com.android.server.power.ShutdownThread; import com.google.android.collect.Lists; import java.io.FileDescriptor; @@ -136,6 +138,12 @@ final class NativeDaemonConnector implements Runnable, Handler.Callback, Watchdo listenToSocket(); } catch (Exception e) { loge("Error in NativeDaemonConnector: " + e); + String shutdownAct = SystemProperties.get( + ShutdownThread.SHUTDOWN_ACTION_PROPERTY, ""); + if (shutdownAct != null && shutdownAct.length() > 0) { + // The device is in middle of shutdown. + break; + } SystemClock.sleep(5000); } }