Merge "Fix issue #18827122: system server crashed on broadcasting..." into lmp-mr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
cb8d8e10b0
@@ -604,6 +604,7 @@ public abstract class BatteryStats implements Parcelable {
|
|||||||
public static final byte CMD_CURRENT_TIME = 5;
|
public static final byte CMD_CURRENT_TIME = 5;
|
||||||
public static final byte CMD_OVERFLOW = 6;
|
public static final byte CMD_OVERFLOW = 6;
|
||||||
public static final byte CMD_RESET = 7;
|
public static final byte CMD_RESET = 7;
|
||||||
|
public static final byte CMD_SHUTDOWN = 8;
|
||||||
|
|
||||||
public byte cmd = CMD_NULL;
|
public byte cmd = CMD_NULL;
|
||||||
|
|
||||||
@@ -3529,6 +3530,11 @@ public abstract class BatteryStats implements Parcelable {
|
|||||||
pw.println(DateFormat.format("yyyy-MM-dd-HH-mm-ss",
|
pw.println(DateFormat.format("yyyy-MM-dd-HH-mm-ss",
|
||||||
rec.currentTime).toString());
|
rec.currentTime).toString());
|
||||||
}
|
}
|
||||||
|
} else if (rec.cmd == HistoryItem.CMD_SHUTDOWN) {
|
||||||
|
if (checkin) {
|
||||||
|
pw.print(":");
|
||||||
|
}
|
||||||
|
pw.println("SHUTDOWN");
|
||||||
} else if (rec.cmd == HistoryItem.CMD_OVERFLOW) {
|
} else if (rec.cmd == HistoryItem.CMD_OVERFLOW) {
|
||||||
if (checkin) {
|
if (checkin) {
|
||||||
pw.print(":");
|
pw.print(":");
|
||||||
@@ -3849,7 +3855,8 @@ public abstract class BatteryStats implements Parcelable {
|
|||||||
if (histStart >= 0 && !printed) {
|
if (histStart >= 0 && !printed) {
|
||||||
if (rec.cmd == HistoryItem.CMD_CURRENT_TIME
|
if (rec.cmd == HistoryItem.CMD_CURRENT_TIME
|
||||||
|| rec.cmd == HistoryItem.CMD_RESET
|
|| rec.cmd == HistoryItem.CMD_RESET
|
||||||
|| rec.cmd == HistoryItem.CMD_START) {
|
|| rec.cmd == HistoryItem.CMD_START
|
||||||
|
|| rec.cmd == HistoryItem.CMD_SHUTDOWN) {
|
||||||
printed = true;
|
printed = true;
|
||||||
hprinter.printNextItem(pw, rec, baseTime, checkin,
|
hprinter.printNextItem(pw, rec, baseTime, checkin,
|
||||||
(flags&DUMP_VERBOSE) != 0);
|
(flags&DUMP_VERBOSE) != 0);
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ import android.net.Uri;
|
|||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
|
import android.util.Slog;
|
||||||
import com.android.internal.os.BackgroundThread;
|
import com.android.internal.os.BackgroundThread;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
@@ -279,8 +280,8 @@ public abstract class PackageMonitor extends android.content.BroadcastReceiver {
|
|||||||
mChangeUserId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE,
|
mChangeUserId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE,
|
||||||
UserHandle.USER_NULL);
|
UserHandle.USER_NULL);
|
||||||
if (mChangeUserId == UserHandle.USER_NULL) {
|
if (mChangeUserId == UserHandle.USER_NULL) {
|
||||||
throw new IllegalArgumentException(
|
Slog.w("PackageMonitor", "Intent broadcast does not contain user handle: " + intent);
|
||||||
"Intent broadcast does not contain user handle: " + intent);
|
return;
|
||||||
}
|
}
|
||||||
onBeginPackageChanges();
|
onBeginPackageChanges();
|
||||||
|
|
||||||
|
|||||||
@@ -6955,6 +6955,17 @@ public final class BatteryStatsImpl extends BatteryStats {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void recordShutdownLocked(final long elapsedRealtimeMs, final long uptimeMs) {
|
||||||
|
if (mRecordingHistory) {
|
||||||
|
mHistoryCur.currentTime = System.currentTimeMillis();
|
||||||
|
mLastRecordedClockTime = mHistoryCur.currentTime;
|
||||||
|
mLastRecordedClockRealtime = elapsedRealtimeMs;
|
||||||
|
addHistoryBufferLocked(elapsedRealtimeMs, uptimeMs, HistoryItem.CMD_SHUTDOWN,
|
||||||
|
mHistoryCur);
|
||||||
|
mHistoryCur.currentTime = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// This should probably be exposed in the API, though it's not critical
|
// This should probably be exposed in the API, though it's not critical
|
||||||
private static final int BATTERY_PLUGGED_NONE = 0;
|
private static final int BATTERY_PLUGGED_NONE = 0;
|
||||||
|
|
||||||
@@ -7627,6 +7638,7 @@ public final class BatteryStatsImpl extends BatteryStats {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void shutdownLocked() {
|
public void shutdownLocked() {
|
||||||
|
recordShutdownLocked(SystemClock.elapsedRealtime(), SystemClock.uptimeMillis());
|
||||||
writeSyncLocked();
|
writeSyncLocked();
|
||||||
mShuttingDown = true;
|
mShuttingDown = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -683,6 +683,9 @@ public class NotificationManagerService extends SystemService {
|
|||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
String action = intent.getAction();
|
String action = intent.getAction();
|
||||||
|
if (action == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
boolean queryRestart = false;
|
boolean queryRestart = false;
|
||||||
boolean queryRemove = false;
|
boolean queryRemove = false;
|
||||||
|
|||||||
@@ -320,6 +320,9 @@ public class UserManagerService extends IUserManager.Stub {
|
|||||||
checkManageUsersPermission("get the profile parent");
|
checkManageUsersPermission("get the profile parent");
|
||||||
synchronized (mPackagesLock) {
|
synchronized (mPackagesLock) {
|
||||||
UserInfo profile = getUserInfoLocked(userHandle);
|
UserInfo profile = getUserInfoLocked(userHandle);
|
||||||
|
if (profile == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
int parentUserId = profile.profileGroupId;
|
int parentUserId = profile.profileGroupId;
|
||||||
if (parentUserId == UserInfo.NO_PROFILE_GROUP_ID) {
|
if (parentUserId == UserInfo.NO_PROFILE_GROUP_ID) {
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
Reference in New Issue
Block a user