Skip to content

Instantly share code, notes, and snippets.

@invisiblek
Created January 10, 2017 19:46
Show Gist options
  • Save invisiblek/39244d6c1374850f85ffe57b7b261bec to your computer and use it in GitHub Desktop.
Save invisiblek/39244d6c1374850f85ffe57b7b261bec to your computer and use it in GitHub Desktop.
diff --git a/res/values/config.xml b/res/values/config.xml
index bc83480..4bf4c1c 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -10,4 +10,8 @@
<!-- CMUpdate Config Strings -->
<string name="conf_update_server_url_def" translatable="false">http://192.168.0.6:5000/api</string>
<string name="conf_changelog_url" translatable="false">http://localhost/changelog.xml</string>
+
+ <!-- Whether or not the device uses A/B OTA updates -->
+ <bool name="config_use_ab_ota_update">false</bool>
+
</resources>
diff --git a/src/com/cyanogenmod/updater/UpdatesSettings.java b/src/com/cyanogenmod/updater/UpdatesSettings.java
index 51837d0..23444b5 100644
--- a/src/com/cyanogenmod/updater/UpdatesSettings.java
+++ b/src/com/cyanogenmod/updater/UpdatesSettings.java
@@ -26,6 +26,7 @@ import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Parcelable;
+import android.os.UpdateEngine;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
@@ -753,6 +754,29 @@ public class UpdatesSettings extends PreferenceFragment implements
@Override
public void onStartUpdate(UpdatePreference pref) {
+ if (mContext.getResources().getBoolean(R.bool.config_use_ab_ota_update)) {
+ startABUpdate(pref);
+ } else {
+ startRecoveryUpdate(pref);
+ }
+ }
+
+ private void startABUpdate(UpdatePreference pref) {
+ final UpdateInfo updateInfo = pref.getUpdateInfo();
+
+ // TODO - figure out where the fuck these things come from...
+ UpdateEngine mUpdateEngine = new UpdateEngine();
+ long offset = 0;
+ long size = 0;
+ String[] headerKeyValuePairs = new String[2];
+ // END TODO
+
+ mUpdateEngine.applyPayload(updateInfo.getFileName(), offset, size, headerKeyValuePairs);
+ // \_____________________/
+ // \_,--I "think" a URI is needed here, need to look into it
+ }
+
+ private void startRecoveryUpdate(UpdatePreference pref) {
final UpdateInfo updateInfo = pref.getUpdateInfo();
// Prevent the dialog from being triggered more than once
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment