am 22dad592: Merge change I6cae32c7 into eclair
Merge commit '22dad5928d1d1f2c791616d9d6ab3a3172cec62e' into eclair-mr2 * commit '22dad5928d1d1f2c791616d9d6ab3a3172cec62e': When upgrading packages with shared user ids make sure we are eliminating
This commit is contained in:
@@ -201,11 +201,11 @@ public class PackageParser {
|
|||||||
}
|
}
|
||||||
pi.activities = new ActivityInfo[num];
|
pi.activities = new ActivityInfo[num];
|
||||||
}
|
}
|
||||||
for (int i=0; i<N; i++) {
|
for (int i=0, j=0; i<N; i++) {
|
||||||
final Activity activity = p.activities.get(i);
|
final Activity activity = p.activities.get(i);
|
||||||
if (activity.info.enabled
|
if (activity.info.enabled
|
||||||
|| (flags&PackageManager.GET_DISABLED_COMPONENTS) != 0) {
|
|| (flags&PackageManager.GET_DISABLED_COMPONENTS) != 0) {
|
||||||
pi.activities[i] = generateActivityInfo(p.activities.get(i), flags);
|
pi.activities[j++] = generateActivityInfo(p.activities.get(i), flags);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -222,11 +222,11 @@ public class PackageParser {
|
|||||||
}
|
}
|
||||||
pi.receivers = new ActivityInfo[num];
|
pi.receivers = new ActivityInfo[num];
|
||||||
}
|
}
|
||||||
for (int i=0; i<N; i++) {
|
for (int i=0, j=0; i<N; i++) {
|
||||||
final Activity activity = p.receivers.get(i);
|
final Activity activity = p.receivers.get(i);
|
||||||
if (activity.info.enabled
|
if (activity.info.enabled
|
||||||
|| (flags&PackageManager.GET_DISABLED_COMPONENTS) != 0) {
|
|| (flags&PackageManager.GET_DISABLED_COMPONENTS) != 0) {
|
||||||
pi.receivers[i] = generateActivityInfo(p.receivers.get(i), flags);
|
pi.receivers[j++] = generateActivityInfo(p.receivers.get(i), flags);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -243,11 +243,11 @@ public class PackageParser {
|
|||||||
}
|
}
|
||||||
pi.services = new ServiceInfo[num];
|
pi.services = new ServiceInfo[num];
|
||||||
}
|
}
|
||||||
for (int i=0; i<N; i++) {
|
for (int i=0, j=0; i<N; i++) {
|
||||||
final Service service = p.services.get(i);
|
final Service service = p.services.get(i);
|
||||||
if (service.info.enabled
|
if (service.info.enabled
|
||||||
|| (flags&PackageManager.GET_DISABLED_COMPONENTS) != 0) {
|
|| (flags&PackageManager.GET_DISABLED_COMPONENTS) != 0) {
|
||||||
pi.services[i] = generateServiceInfo(p.services.get(i), flags);
|
pi.services[j++] = generateServiceInfo(p.services.get(i), flags);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -264,11 +264,11 @@ public class PackageParser {
|
|||||||
}
|
}
|
||||||
pi.providers = new ProviderInfo[num];
|
pi.providers = new ProviderInfo[num];
|
||||||
}
|
}
|
||||||
for (int i=0; i<N; i++) {
|
for (int i=0, j=0; i<N; i++) {
|
||||||
final Provider provider = p.providers.get(i);
|
final Provider provider = p.providers.get(i);
|
||||||
if (provider.info.enabled
|
if (provider.info.enabled
|
||||||
|| (flags&PackageManager.GET_DISABLED_COMPONENTS) != 0) {
|
|| (flags&PackageManager.GET_DISABLED_COMPONENTS) != 0) {
|
||||||
pi.providers[i] = generateProviderInfo(p.providers.get(i), flags);
|
pi.providers[j++] = generateProviderInfo(p.providers.get(i), flags);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -300,12 +300,10 @@ public class PackageParser {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ((flags&PackageManager.GET_SIGNATURES) != 0) {
|
if ((flags&PackageManager.GET_SIGNATURES) != 0) {
|
||||||
if (p.mSignatures != null) {
|
int N = (p.mSignatures != null) ? p.mSignatures.length : 0;
|
||||||
int N = p.mSignatures.length;
|
if (N > 0) {
|
||||||
if (N > 0) {
|
pi.signatures = new Signature[N];
|
||||||
pi.signatures = new Signature[N];
|
System.arraycopy(p.mSignatures, 0, pi.signatures, 0, N);
|
||||||
System.arraycopy(p.mSignatures, 0, pi.signatures, 0, N);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return pi;
|
return pi;
|
||||||
|
|||||||
@@ -6344,7 +6344,9 @@ class PackageManagerService extends IPackageManager.Stub {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
for (PackageSetting pkg:sus.packages) {
|
for (PackageSetting pkg:sus.packages) {
|
||||||
if (pkg.pkg.requestedPermissions.contains(eachPerm)) {
|
if (pkg.pkg != null &&
|
||||||
|
!pkg.pkg.packageName.equalsIgnoreCase(deletedPs.pkg.packageName) &&
|
||||||
|
pkg.pkg.requestedPermissions.contains(eachPerm)) {
|
||||||
used = true;
|
used = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -6359,7 +6361,9 @@ class PackageManagerService extends IPackageManager.Stub {
|
|||||||
int newGids[] = globalGids;
|
int newGids[] = globalGids;
|
||||||
for (String eachPerm : sus.grantedPermissions) {
|
for (String eachPerm : sus.grantedPermissions) {
|
||||||
BasePermission bp = mPermissions.get(eachPerm);
|
BasePermission bp = mPermissions.get(eachPerm);
|
||||||
newGids = appendInts(newGids, bp.gids);
|
if (bp != null) {
|
||||||
|
newGids = appendInts(newGids, bp.gids);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
sus.gids = newGids;
|
sus.gids = newGids;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user