diff --git a/app/build.gradle b/app/build.gradle index e983fbfa..755897b7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -104,7 +104,7 @@ android { } repositories { maven { - url 'https://gitlab.com/api/v4/projects/8817162/packages/maven' + url 'https://jitpack.io' } mavenCentral() jcenter() @@ -116,8 +116,7 @@ dependencies { implementation 'com.mikhaellopez:circularprogressbar:3.0.3' implementation 'org.jsoup:jsoup:1.14.1' // https://gitlab.com/eyeo/distpartners/libadblockplus-android/-/tags - implementation 'org.adblockplus:adblock-android-webview:5.0.1' - implementation 'com.github.ihimanshurawat:Hasher:1.2' + implementation 'org.adblockplus:adblock-android-webview:4.4.0' implementation 'androidx.navigation:navigation-fragment:2.5.2' implementation 'androidx.navigation:navigation-ui:2.5.2' implementation 'com.google.code.gson:gson:2.8.9' diff --git a/app/src/main/java/com/cylonid/nativealpha/model/DataManager.java b/app/src/main/java/com/cylonid/nativealpha/model/DataManager.java index 3aeb4704..6456af21 100644 --- a/app/src/main/java/com/cylonid/nativealpha/model/DataManager.java +++ b/app/src/main/java/com/cylonid/nativealpha/model/DataManager.java @@ -16,15 +16,16 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; -import com.himanshurawat.hasher.HashType; -import com.himanshurawat.hasher.Hasher; - import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; +import java.nio.charset.StandardCharsets; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; import java.util.ArrayList; +import java.util.Arrays; import java.util.Map; import java.util.TreeMap; @@ -275,7 +276,11 @@ public boolean saveSharedPreferencesToFile(Uri uri) { appdata = App.getAppContext().getSharedPreferences(SHARED_PREF_KEY, MODE_PRIVATE); TreeMap shared_pref_map = new TreeMap<>(appdata.getAll()); - oos.writeObject(Hasher.Companion.hash(shared_pref_map.toString(), HashType.SHA_256)); + MessageDigest digest = MessageDigest.getInstance("SHA-256"); + byte[] encodedhash = digest.digest( + shared_pref_map.toString().getBytes(StandardCharsets.UTF_8)); + String hashString = Arrays.toString(encodedhash); + oos.writeObject(hashString); oos.writeObject(shared_pref_map); result = true; @@ -296,7 +301,10 @@ public boolean loadSharedPreferencesFromFile(Uri uri){ prefEdit.clear(); String checksum = (String) ois.readObject(); TreeMap shared_pref_map = ((TreeMap) ois.readObject()); - String new_checksum = Hasher.Companion.hash(shared_pref_map.toString(), HashType.SHA_256); + MessageDigest digest = MessageDigest.getInstance("SHA-256"); + byte[] encodedhash = digest.digest( + shared_pref_map.toString().getBytes(StandardCharsets.UTF_8)); + String new_checksum = Arrays.toString(encodedhash); if (!checksum.equals(new_checksum)) throw new InvalidChecksumException("Checksums between backup and restored settings do not match."); @@ -318,7 +326,7 @@ else if (v instanceof String) prefEdit.apply(); result = true; - } catch (InvalidChecksumException | IOException | ClassNotFoundException e) { + } catch (InvalidChecksumException | IOException | ClassNotFoundException | NoSuchAlgorithmException e) { e.printStackTrace(); } diff --git a/build.gradle b/build.gradle index 1ff56861..9fa2d68b 100644 --- a/build.gradle +++ b/build.gradle @@ -10,6 +10,7 @@ buildscript { maven { url "https://plugins.gradle.org/m2/" } + mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:7.2.2' @@ -27,6 +28,7 @@ allprojects { google() jcenter() maven { url 'https://jitpack.io' } + mavenCentral() } }