Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b4f9a5c2 authored by Mohammed Althaf T's avatar Mohammed Althaf T 😊
Browse files

Updater: Generate license ID for ota requests

parent 41422f74
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -20,6 +20,8 @@ to be updated. This will be fixed later
    <uses-permission android:name="android.permission.RECOVERY" />
    <uses-permission android:name="android.permission.RECOVERY" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />


    <application
    <application
        android:allowBackup="false"
        android:allowBackup="false"
+1 −0
Original line number Original line Diff line number Diff line
@@ -19,5 +19,6 @@
        <permission name="android.permission.ACCESS_CACHE_FILESYSTEM"/>
        <permission name="android.permission.ACCESS_CACHE_FILESYSTEM"/>
        <permission name="android.permission.REBOOT"/>
        <permission name="android.permission.REBOOT"/>
        <permission name="android.permission.RECOVERY"/>
        <permission name="android.permission.RECOVERY"/>
        <permission name="android.permission.WRITE_SECURE_SETTINGS"/>
    </privapp-permissions>
    </privapp-permissions>
</permissions>
</permissions>
+9 −0
Original line number Original line Diff line number Diff line
@@ -24,6 +24,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences;
import android.os.SystemClock;
import android.os.SystemClock;
import android.provider.Settings;
import android.util.Log;
import android.util.Log;


import androidx.core.app.NotificationCompat;
import androidx.core.app.NotificationCompat;
@@ -52,6 +53,14 @@ public class UpdatesCheckReceiver extends BroadcastReceiver {
    @Override
    @Override
    public void onReceive(final Context context, Intent intent) {
    public void onReceive(final Context context, Intent intent) {
        if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
        if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
            // Check if the current value is empty or null and set license id.
            String eLicenseID = Settings.Secure.getString(context.getContentResolver(),
                    Settings.Secure.E_LICENSE_ID);
            if (eLicenseID == null || eLicenseID.isEmpty()) {
                Settings.Secure.putString(context.getContentResolver(),
                        Settings.Secure.E_LICENSE_ID, Utils.generateRandomID());
            }

            Utils.cleanupDownloadsDir(context);
            Utils.cleanupDownloadsDir(context);
        }
        }


+13 −0
Original line number Original line Diff line number Diff line
@@ -58,6 +58,7 @@ import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Enumeration;
import java.util.List;
import java.util.List;
import java.util.Locale;
import java.util.Locale;
import java.util.UUID;
import java.util.regex.Pattern;
import java.util.regex.Pattern;
import java.util.zip.ZipEntry;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipFile;
@@ -94,6 +95,11 @@ public class Utils {
        return new File(context.getCacheDir(), "updates.json");
        return new File(context.getCacheDir(), "updates.json");
    }
    }


    public static String generateRandomID() {
        String uuid = UUID.randomUUID().toString().replace("-", "");
        return "anon" + uuid;
    }

    // This should really return an UpdateBaseInfo object, but currently this only
    // This should really return an UpdateBaseInfo object, but currently this only
    // used to initialize UpdateInfo objects
    // used to initialize UpdateInfo objects
    private static UpdateInfo parseJsonUpdate(JSONObject object) throws JSONException {
    private static UpdateInfo parseJsonUpdate(JSONObject object) throws JSONException {
@@ -214,6 +220,8 @@ public class Utils {
        String device = SystemProperties.get(Constants.PROP_NEXT_DEVICE,
        String device = SystemProperties.get(Constants.PROP_NEXT_DEVICE,
                SystemProperties.get(Constants.PROP_DEVICE));
                SystemProperties.get(Constants.PROP_DEVICE));
        String type = SystemProperties.get(Constants.PROP_RELEASE_TYPE).toLowerCase(Locale.ROOT);
        String type = SystemProperties.get(Constants.PROP_RELEASE_TYPE).toLowerCase(Locale.ROOT);
        String eLicenseID = Settings.Secure.getString(context.getContentResolver(),
                Settings.Secure.E_LICENSE_ID);


        String serverUrl = "";
        String serverUrl = "";
        if (retrieveStatus(context) != null) {
        if (retrieveStatus(context) != null) {
@@ -232,6 +240,11 @@ public class Utils {
        if (serverUrl.trim().isEmpty()) {
        if (serverUrl.trim().isEmpty()) {
            serverUrl = context.getString(R.string.updater_server_url);
            serverUrl = context.getString(R.string.updater_server_url);
        }
        }

        if (eLicenseID != null && !eLicenseID.isEmpty()) {
            serverUrl += "?license_id=" + eLicenseID;
        }

        return serverUrl.replace("{device}", device)
        return serverUrl.replace("{device}", device)
                .replace("{type}", type)
                .replace("{type}", type)
                .replace("{incr}", incrementalVersion);
                .replace("{incr}", incrementalVersion);