Merge "Start enforcing explicit intents for Context.bindService()"

This commit is contained in:
Dianne Hackborn
2014-03-17 19:30:43 +00:00
committed by Android (Google) Code Review
4 changed files with 22 additions and 10 deletions

View File

@@ -18617,6 +18617,7 @@ package android.os {
field public static final int JELLY_BEAN_MR1 = 17; // 0x11
field public static final int JELLY_BEAN_MR2 = 18; // 0x12
field public static final int KITKAT = 19; // 0x13
field public static final int L = 10000; // 0x2710
}
public final class Bundle implements java.lang.Cloneable android.os.Parcelable {

View File

@@ -1479,13 +1479,13 @@ class ContextImpl extends Context {
private void validateServiceIntent(Intent service) {
if (service.getComponent() == null && service.getPackage() == null) {
if (true || getApplicationInfo().targetSdkVersion >= Build.VERSION_CODES.KITKAT) {
if (getApplicationInfo().targetSdkVersion >= Build.VERSION_CODES.L) {
IllegalArgumentException ex = new IllegalArgumentException(
"Service Intent must be explicit: " + service);
throw ex;
} else {
Log.w(TAG, "Implicit intents with startService are not safe: " + service
+ " " + Debug.getCallers(2, 3));
//IllegalArgumentException ex = new IllegalArgumentException(
// "Service Intent must be explicit: " + service);
//Log.e(TAG, "This will become an error", ex);
//throw ex;
}
}
}

View File

@@ -467,6 +467,19 @@ public class Build {
* </ul>
*/
public static final int KITKAT = 19;
/**
* L!
*
* <p>Applications targeting this or a later release will get these
* new changes in behavior:</p>
* <ul>
* <li> {@link android.content.Context#bindService Context.bindService} now
* requires an explicit Intent, and will throw an exception if given an explicit
* Intent.</li>
* </ul>
*/
public static final int L = CUR_DEVELOPMENT;
}
/** The type of build, like "user" or "eng". */

View File

@@ -234,9 +234,7 @@ public class UserManagerService extends IUserManager.Stub {
}
void systemReady() {
final Context context = ActivityThread.systemMain().getSystemContext();
mUserPackageMonitor.register(context,
null, UserHandle.ALL, false);
mUserPackageMonitor.register(mContext, null, UserHandle.ALL, false);
userForeground(UserHandle.USER_OWNER);
}
@@ -457,7 +455,7 @@ public class UserManagerService extends IUserManager.Stub {
/**
* Enforces that only the system UID or root's UID or apps that have the
* {@link android.Manifest.permission.MANAGE_USERS MANAGE_USERS}
* {@link android.Manifest.permission#MANAGE_USERS MANAGE_USERS}
* permission can make certain calls to the UserManager.
*
* @param message used as message if SecurityException is thrown
@@ -1046,7 +1044,7 @@ public class UserManagerService extends IUserManager.Stub {
/**
* Removes a user and all data directories created for that user. This method should be called
* after the user's processes have been terminated.
* @param id the user's id
* @param userHandle the user's id
*/
public boolean removeUser(int userHandle) {
checkManageUsersPermission("Only the system can remove users");