standardize on lowercase SHA-256 hashes
fdroidserver produces lowercase hashes, so its easiest to just mimic that. This makes hash comparisons easy.
This commit is contained in:
parent
fdec402837
commit
e77bde2cfa
@ -386,7 +386,7 @@ public final class Utils {
|
||||
}
|
||||
|
||||
byte[] mdbytes = md.digest();
|
||||
return toHexString(mdbytes);
|
||||
return toHexString(mdbytes).toLowerCase(Locale.ENGLISH);
|
||||
} catch (IOException e) {
|
||||
Log.e(TAG, "Error reading \"" + apk.getAbsolutePath()
|
||||
+ "\" to compute " + algo + " hash.", e);
|
||||
|
@ -25,7 +25,7 @@ public class Apk extends ValueObject implements Comparable<Apk>, Parcelable {
|
||||
public int versionCode;
|
||||
public int size; // Size in bytes - 0 means we don't know!
|
||||
public long repo; // ID of the repo it comes from
|
||||
public String hash;
|
||||
public String hash; // checksum of the APK, in lowercase hex
|
||||
public String hashType;
|
||||
public int minSdkVersion = SDK_VERSION_MIN_VALUE; // 0 if unknown
|
||||
public int targetSdkVersion = SDK_VERSION_MIN_VALUE; // 0 if unknown
|
||||
|
@ -120,7 +120,7 @@ class DBHelper extends SQLiteOpenHelper {
|
||||
+ " );";
|
||||
private static final String DROP_TABLE_INSTALLED_APP = "DROP TABLE " + InstalledAppTable.NAME + ";";
|
||||
|
||||
private static final int DB_VERSION = 60;
|
||||
private static final int DB_VERSION = 61;
|
||||
|
||||
private final Context context;
|
||||
|
||||
@ -327,6 +327,16 @@ class DBHelper extends SQLiteOpenHelper {
|
||||
migrateAppPrimaryKeyToRowId(db, oldVersion);
|
||||
removeApkPackageNameColumn(db, oldVersion);
|
||||
addAppPrefsTable(db, oldVersion);
|
||||
lowerCaseApkHashes(db, oldVersion);
|
||||
}
|
||||
|
||||
private void lowerCaseApkHashes(SQLiteDatabase db, int oldVersion) {
|
||||
if (oldVersion >= 61) {
|
||||
return;
|
||||
}
|
||||
Utils.debugLog(TAG, "Lowercasing all APK hashes");
|
||||
db.execSQL("UPDATE " + InstalledAppTable.NAME + " SET " + InstalledAppTable.Cols.HASH
|
||||
+ " = lower(" + InstalledAppTable.Cols.HASH + ")");
|
||||
}
|
||||
|
||||
private void addAppPrefsTable(SQLiteDatabase db, int oldVersion) {
|
||||
|
@ -470,7 +470,7 @@ public final class LocalRepoManager {
|
||||
private void tagHash(App app) throws IOException {
|
||||
serializer.startTag("", "hash");
|
||||
serializer.attribute("", "type", app.installedApk.hashType);
|
||||
serializer.text(app.installedApk.hash.toLowerCase(Locale.US));
|
||||
serializer.text(app.installedApk.hash);
|
||||
serializer.endTag("", "hash");
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user