Merge "Dedupe timestamp in PackageSettings" into gingerbread
This commit is contained in:
@@ -2546,7 +2546,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
|||||||
if (GET_CERTIFICATES) {
|
if (GET_CERTIFICATES) {
|
||||||
if (ps != null
|
if (ps != null
|
||||||
&& ps.codePath.equals(srcFile)
|
&& ps.codePath.equals(srcFile)
|
||||||
&& ps.getTimeStamp() == srcFile.lastModified()) {
|
&& ps.timeStamp == srcFile.lastModified()) {
|
||||||
if (ps.signatures.mSignatures != null
|
if (ps.signatures.mSignatures != null
|
||||||
&& ps.signatures.mSignatures.length != 0) {
|
&& ps.signatures.mSignatures.length != 0) {
|
||||||
// Optimization: reuse the existing cached certificates
|
// Optimization: reuse the existing cached certificates
|
||||||
@@ -3139,7 +3139,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
|||||||
|
|
||||||
long scanFileTime = scanFile.lastModified();
|
long scanFileTime = scanFile.lastModified();
|
||||||
final boolean forceDex = (scanMode&SCAN_FORCE_DEX) != 0;
|
final boolean forceDex = (scanMode&SCAN_FORCE_DEX) != 0;
|
||||||
final boolean scanFileNewer = forceDex || scanFileTime != pkgSetting.getTimeStamp();
|
final boolean scanFileNewer = forceDex || scanFileTime != pkgSetting.timeStamp;
|
||||||
pkg.applicationInfo.processName = fixProcessName(
|
pkg.applicationInfo.processName = fixProcessName(
|
||||||
pkg.applicationInfo.packageName,
|
pkg.applicationInfo.packageName,
|
||||||
pkg.applicationInfo.processName,
|
pkg.applicationInfo.processName,
|
||||||
@@ -7007,7 +7007,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
pw.println("]");
|
pw.println("]");
|
||||||
pw.print(" timeStamp="); pw.println(ps.getTimeStampStr());
|
pw.print(" timeStamp="); pw.println(String.valueOf(ps.timeStamp));
|
||||||
pw.print(" signatures="); pw.println(ps.signatures);
|
pw.print(" signatures="); pw.println(ps.signatures);
|
||||||
pw.print(" permissionsFixed="); pw.print(ps.permissionsFixed);
|
pw.print(" permissionsFixed="); pw.print(ps.permissionsFixed);
|
||||||
pw.print(" haveGids="); pw.println(ps.haveGids);
|
pw.print(" haveGids="); pw.println(ps.haveGids);
|
||||||
@@ -7532,8 +7532,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
|||||||
String resourcePathString;
|
String resourcePathString;
|
||||||
String nativeLibraryPathString;
|
String nativeLibraryPathString;
|
||||||
String obbPathString;
|
String obbPathString;
|
||||||
private long timeStamp;
|
long timeStamp;
|
||||||
private String timeStampString = "0";
|
|
||||||
int versionCode;
|
int versionCode;
|
||||||
|
|
||||||
boolean uidError;
|
boolean uidError;
|
||||||
@@ -7590,23 +7589,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setTimeStamp(long newStamp) {
|
public void setTimeStamp(long newStamp) {
|
||||||
if (newStamp != timeStamp) {
|
|
||||||
timeStamp = newStamp;
|
|
||||||
timeStampString = Long.toString(newStamp);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTimeStamp(long newStamp, String newStampStr) {
|
|
||||||
timeStamp = newStamp;
|
timeStamp = newStamp;
|
||||||
timeStampString = newStampStr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public long getTimeStamp() {
|
|
||||||
return timeStamp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getTimeStampStr() {
|
|
||||||
return timeStampString;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void copyFrom(PackageSettingBase base) {
|
public void copyFrom(PackageSettingBase base) {
|
||||||
@@ -7614,7 +7597,6 @@ class PackageManagerService extends IPackageManager.Stub {
|
|||||||
gids = base.gids;
|
gids = base.gids;
|
||||||
|
|
||||||
timeStamp = base.timeStamp;
|
timeStamp = base.timeStamp;
|
||||||
timeStampString = base.timeStampString;
|
|
||||||
signatures = base.signatures;
|
signatures = base.signatures;
|
||||||
permissionsFixed = base.permissionsFixed;
|
permissionsFixed = base.permissionsFixed;
|
||||||
haveGids = base.haveGids;
|
haveGids = base.haveGids;
|
||||||
@@ -8476,7 +8458,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
|||||||
serializer.attribute(null, "realName", pkg.realName);
|
serializer.attribute(null, "realName", pkg.realName);
|
||||||
}
|
}
|
||||||
serializer.attribute(null, "codePath", pkg.codePathString);
|
serializer.attribute(null, "codePath", pkg.codePathString);
|
||||||
serializer.attribute(null, "ts", pkg.getTimeStampStr());
|
serializer.attribute(null, "ts", String.valueOf(pkg.timeStamp));
|
||||||
serializer.attribute(null, "version", String.valueOf(pkg.versionCode));
|
serializer.attribute(null, "version", String.valueOf(pkg.versionCode));
|
||||||
if (!pkg.resourcePathString.equals(pkg.codePathString)) {
|
if (!pkg.resourcePathString.equals(pkg.codePathString)) {
|
||||||
serializer.attribute(null, "resourcePath", pkg.resourcePathString);
|
serializer.attribute(null, "resourcePath", pkg.resourcePathString);
|
||||||
@@ -8528,7 +8510,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
|||||||
}
|
}
|
||||||
serializer.attribute(null, "flags",
|
serializer.attribute(null, "flags",
|
||||||
Integer.toString(pkg.pkgFlags));
|
Integer.toString(pkg.pkgFlags));
|
||||||
serializer.attribute(null, "ts", pkg.getTimeStampStr());
|
serializer.attribute(null, "ts", String.valueOf(pkg.timeStamp));
|
||||||
serializer.attribute(null, "version", String.valueOf(pkg.versionCode));
|
serializer.attribute(null, "version", String.valueOf(pkg.versionCode));
|
||||||
if (pkg.sharedUser == null) {
|
if (pkg.sharedUser == null) {
|
||||||
serializer.attribute(null, "userId",
|
serializer.attribute(null, "userId",
|
||||||
@@ -8888,7 +8870,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
|||||||
if (timeStampStr != null) {
|
if (timeStampStr != null) {
|
||||||
try {
|
try {
|
||||||
long timeStamp = Long.parseLong(timeStampStr);
|
long timeStamp = Long.parseLong(timeStampStr);
|
||||||
ps.setTimeStamp(timeStamp, timeStampStr);
|
ps.setTimeStamp(timeStamp);
|
||||||
} catch (NumberFormatException e) {
|
} catch (NumberFormatException e) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -8936,7 +8918,6 @@ class PackageManagerService extends IPackageManager.Stub {
|
|||||||
String installerPackageName = null;
|
String installerPackageName = null;
|
||||||
String uidError = null;
|
String uidError = null;
|
||||||
int pkgFlags = 0;
|
int pkgFlags = 0;
|
||||||
String timeStampStr;
|
|
||||||
long timeStamp = 0;
|
long timeStamp = 0;
|
||||||
PackageSettingBase packageSetting = null;
|
PackageSettingBase packageSetting = null;
|
||||||
String version = null;
|
String version = null;
|
||||||
@@ -8977,7 +8958,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
|||||||
pkgFlags |= ApplicationInfo.FLAG_SYSTEM;
|
pkgFlags |= ApplicationInfo.FLAG_SYSTEM;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
timeStampStr = parser.getAttributeValue(null, "ts");
|
final String timeStampStr = parser.getAttributeValue(null, "ts");
|
||||||
if (timeStampStr != null) {
|
if (timeStampStr != null) {
|
||||||
try {
|
try {
|
||||||
timeStamp = Long.parseLong(timeStampStr);
|
timeStamp = Long.parseLong(timeStampStr);
|
||||||
@@ -9013,7 +8994,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
|||||||
+ " while parsing settings at "
|
+ " while parsing settings at "
|
||||||
+ parser.getPositionDescription());
|
+ parser.getPositionDescription());
|
||||||
} else {
|
} else {
|
||||||
packageSetting.setTimeStamp(timeStamp, timeStampStr);
|
packageSetting.setTimeStamp(timeStamp);
|
||||||
}
|
}
|
||||||
} else if (sharedIdStr != null) {
|
} else if (sharedIdStr != null) {
|
||||||
userId = sharedIdStr != null
|
userId = sharedIdStr != null
|
||||||
@@ -9022,7 +9003,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
|||||||
packageSetting = new PendingPackage(name.intern(), realName,
|
packageSetting = new PendingPackage(name.intern(), realName,
|
||||||
new File(codePathStr), new File(resourcePathStr),
|
new File(codePathStr), new File(resourcePathStr),
|
||||||
nativeLibraryPathStr, userId, versionCode, pkgFlags);
|
nativeLibraryPathStr, userId, versionCode, pkgFlags);
|
||||||
packageSetting.setTimeStamp(timeStamp, timeStampStr);
|
packageSetting.setTimeStamp(timeStamp);
|
||||||
mPendingPackages.add((PendingPackage) packageSetting);
|
mPendingPackages.add((PendingPackage) packageSetting);
|
||||||
if (DEBUG_SETTINGS) Log.i(TAG, "Reading package " + name
|
if (DEBUG_SETTINGS) Log.i(TAG, "Reading package " + name
|
||||||
+ ": sharedUserId=" + userId + " pkg="
|
+ ": sharedUserId=" + userId + " pkg="
|
||||||
|
|||||||
Reference in New Issue
Block a user