OpenDelta OTA for all phones

Search This thread

theapuv

Senior Member
Jul 2, 2012
85
62
Thiruvananthapuram
How can I build libopendelta.so?

I have never built anything in Eclipse before. Please bare with me.

Ok I built so file and apk and moved to system/lib and system/priv-app
But when I check for update I get update disabled. I have set the server here
http://theapu.in/opendelta/
 
Last edited:
  • Like
Reactions: theapuv

theapuv

Senior Member
Jul 2, 2012
85
62
Thiruvananthapuram
get a logcat while checking for update.

iam using a modified opendelta by team exodus:

https://github.com/sub77-du/packages_apps_OpenDelta.git
Update not possible because my build is unofficial. The code checks if the build name has string unofficial. So I am going to test with new builds without "UNOFFICIAL" string.

Did you use AndroidStudio or eclipse for compiling apk? I tried to compile exodus opendeta in eclipse but I get cardview related error. Cardview is installed in SDK but I don't know how to import it in eclipse. But I could compile and use chainfire's source.
 

theapuv

Senior Member
Jul 2, 2012
85
62
Thiruvananthapuram
you dont need to change the naming of the otapackage, just grep my source for DEEDS to find the config.

iam building in roms source tree, you can copy it to packages/apps/OpenDelta and add product package OpenDelta to device tree.
I built the opendelta in packages/app. Now when I check for updates I get
download problem.
http://dl.theapu.in/json.php

I have attached the logcat. It just says
05-22 22:11:38.623 D/OpenDelta( 6797): download: http://dl.theapu.in/json.php
05-22 22:11:38.623 I/OpenDelta( 6797): Failed to connect to server
05-22 22:11:38.628 D/OpenDelta( 6797): no latest build found at http://dl.theapu.in/json.php for bacon prefix cm-6.0.1

My device have internet access and I can see the json.php output in browser at http://dl.theapu.in/json.php

I have setup the server like this. in /var/www/opendelta I have bacon, delta/bacon and json.php directories. dl.theapu.in points to this directory. Is there any additional thing to do at server?
 

Attachments

  • logcat.log
    12.8 KB · Views: 12
I built the opendelta in packages/app. Now when I check for updates I get
download problem.
http://dl.theapu.in/json.php

I have attached the logcat. It just says
05-22 22:11:38.623 D/OpenDelta( 6797): download: http://dl.theapu.in/json.php
05-22 22:11:38.623 I/OpenDelta( 6797): Failed to connect to server
05-22 22:11:38.628 D/OpenDelta( 6797): no latest build found at http://dl.theapu.in/json.php for bacon prefix cm-6.0.1

My device have internet access and I can see the json.php output in browser at http://dl.theapu.in/json.php

I have setup the server like this. in /var/www/opendelta I have bacon, delta/bacon and json.php directories. dl.theapu.in points to this directory. Is there any additional thing to do at server?

I don't know how to fix it but the updater is looking for a file that reads cm-6.0.1 but looking at the json.php it shows a file with cm-13.0. the number strings need to be modified so they match up.
 
  • Like
Reactions: theapuv

theapuv

Senior Member
Jul 2, 2012
85
62
Thiruvananthapuram
I don't know how to fix it but the updater is looking for a file that reads cm-6.0.1 but looking at the json.php it shows a file with cm-13.0. the number strings need to be modified so they match up.

Ok. I fixed it. Now opendelta is fully functional in my cm 13 build.
Either change <string name="android_version">ro.build.version.release</string> to <string name="android_version"></string> in config.xml or change
res.getString(R.string.filename_base), android_version); to res.getString(R.string.filename_base), ""); in Config.java

These are the changes I done to make OpenDelta work in CM 13
https://github.com/omnirom/android_packages_apps_OpenDelta/compare/android-6.0...apuv:android-6.0

Also flashing from the app will work only if selinux policy is permissive. Since I build OpenDelta with the ROM I added OpenDelta to sepolicy/mac_permissions.xml and sepolicy/seapp_contexts

https://github.com/CyanogenMod/andr...ble/cm-13.0-ZNH2K...apuv:stable/cm-13.0-ZNH2K

Now OpenDelta is fully functional.
 

saintxseiya

Senior Member
Jul 3, 2008
434
134
Ok. I fixed it. Now opendelta is fully functional in my cm 13 build.
Either change <string name="android_version">ro.build.version.release</string> to <string name="android_version"></string> in config.xml or change
res.getString(R.string.filename_base), android_version); to res.getString(R.string.filename_base), ""); in Config.java

These are the changes I done to make OpenDelta work in CM 13
https://github.com/omnirom/android_packages_apps_OpenDelta/compare/android-6.0...apuv:android-6.0

Also flashing from the app will work only if selinux policy is permissive. Since I build OpenDelta with the ROM I added OpenDelta to sepolicy/mac_permissions.xml and sepolicy/seapp_contexts

https://github.com/CyanogenMod/andr...ble/cm-13.0-ZNH2K...apuv:stable/cm-13.0-ZNH2K

Now OpenDelta is fully functional.

Hi,

i am stuck. Maybe you are able to help me and we could write down a howto integrate OpenDelta.

What i did:

1. cloned the OpenDelta to packages/apps
2. edited all the files to point the config to the right server for the updates
3. copied the server folder of OpenDelta to somewhere else and edited the opendelta.sh script to the needs.
4. changed the values for the Java interpreter to 2Gig of memory as it gave me an error before and there was no .sign file.
5. That's were i am stuck at the moment, i have a Delta Folder on my server, but how do i get the Json file?
6. i have to do the deltas manually also, tried to do them automatically , but that fails.

Any advice?

:)

Cheers,

Saint.
 

theapuv

Senior Member
Jul 2, 2012
85
62
Thiruvananthapuram
Hi,

i am stuck. Maybe you are able to help me and we could write down a howto integrate OpenDelta.

What i did:

1. cloned the OpenDelta to packages/apps
2. edited all the files to point the config to the right server for the updates
3. copied the server folder of OpenDelta to somewhere else and edited the opendelta.sh script to the needs.
4. changed the values for the Java interpreter to 2Gig of memory as it gave me an error before and there was no .sign file.
5. That's were i am stuck at the moment, i have a Delta Folder on my server, but how do i get the Json file?
6. i have to do the deltas manually also, tried to do them automatically , but that fails.

Any advice?

:)

Cheers,

Saint.

I have attached the json.php that I use at my delta server. Please put it in the root of your delta folder. See my delta server setup here http://dl.theapu.in/

json.php is a php script which generates the json string automatically from the directory structure.
 

Attachments

  • json.zip
    459 bytes · Views: 60

saintxseiya

Senior Member
Jul 3, 2008
434
134
I have attached the json.php that I use at my delta server. Please put it in the root of your delta folder. See my delta server setup here http://dl.theapu.in/

json.php is a php script which generates the json string automatically from the directory structure.

By the way, where do i have to put those lines in?

<public type="string" name="system_update_settings_list_item_title" id="0x7f0c06d7" />
<public type="string" name="system_update_settings_list_item_summary" id="0x7f0c06d8" />

will try with the build tomorrow if it works, fingers crossed :eek:

Thnx for your help! Really appreciated!

Saint
 
Last edited:

theapuv

Senior Member
Jul 2, 2012
85
62
Thiruvananthapuram
By the way, where do i have to put those lines in?



will try with the build tomorrow if it works, fingers crossed :eek:

Thnx for your help! Really appreciated!

Saint

You need to add those lines only if you are editing the Settings.apk by decompiling it. That is to be added in res/values/public.xml

If you have forked the settings package for your ROM then only need to make changes in res/xml/device_info_settings.xml

If you want to replace CMupdater with opendelta updater like I did these are the changes to be done.

1. Comment cmupdater and insert delta updater. (Add deltaupdate_settings_title in /res/values/strings.xml if you are using deltaupdate_settings_title. Or use cmupdate_settings_title

https://github.com/apuv/apuv_packag....0-ZNH2K/res/xml/device_info_settings.xml#L41

2. Comment CMupdater in src/com/android/settings/DeviceInfoSettings.java and replace it with opendelta

https://github.com/apuv/apuv_packag.../android/settings/DeviceInfoSettings.java#L91

https://github.com/apuv/apuv_packag...android/settings/DeviceInfoSettings.java#L161
 

saintxseiya

Senior Member
Jul 3, 2008
434
134
You need to add those lines only if you are editing the Settings.apk by decompiling it. That is to be added in res/values/public.xml

If you have forked the settings package for your ROM then only need to make changes in res/xml/device_info_settings.xml

If you want to replace CMupdater with opendelta updater like I did these are the changes to be done.

1. Comment cmupdater and insert delta updater. (Add deltaupdate_settings_title in /res/values/strings.xml if you are using deltaupdate_settings_title. Or use cmupdate_settings_title

https://github.com/apuv/apuv_packag....0-ZNH2K/res/xml/device_info_settings.xml#L41

2. Comment CMupdater in src/com/android/settings/DeviceInfoSettings.java and replace it with opendelta

https://github.com/apuv/apuv_packag.../android/settings/DeviceInfoSettings.java#L91

https://github.com/apuv/apuv_packag...android/settings/DeviceInfoSettings.java#L161

Thanks for those infos, but still it says, update deactivated using the update app ? :(

What's wrong with that?

catlog:

onReceive state = error_unofficial
 
Last edited:

saintxseiya

Senior Member
Jul 3, 2008
434
134
What is the name of the ROM zip file?

My build use the scheme cm-<cm version>-<build date>-<official_version_tag>-bacon.zip

Example: cm-13.1-20160621-STABLE-bacon.zip

So I set <string name="official_version_tag">STABLE</string> in config.xml

Hey,

thanks for your aptience, it still does not work i do not know:

1. Downloaded your git source
2. edited the config.xml to this
Code:
<?xml version="1.0" encoding="utf-8"?>
<resources>

        <!-- Output some debug strings -->
        <item name="debug_output" type="bool">true</item>

        <!-- Property to read for ROM version -->
        <string name="property_version">ro.tema.version</string>

        <!-- Property to read for device identifier -->
        <string name="property_device">ro.tema.device</string>

        <!-- %s is expanded to property_version value. .zip, .delta, .update, .sign extensions added when needed -->
        <string name="filename_base">cm-13.0-%s-UNOFFICIAL-oneplus3</string>

        <!-- Path deltas are stored, relative to sdcard root -->
        <string name="path_base">OpenDelta</string>

        <!-- URL base to find .delta files, %s is expanded to property_device value. Path is suffixed by (expanded) filename_base -->
        <string name="url_base_delta">http://phoenixrom.ddns.net:50472/CyanogenModOTA/builds/full/tema13/oneplus3/delta/%s/</string>

        <!-- URL base to find .update and .sign files, %s is expanded to property_device value. Path is suffixed by (expanded) filename_base -->
        <string name="url_base_update">http://phoenixrom.ddns.net:50472/CyanogenModOTA/builds/full/tema13/oneplus3/delta/%s/</string>

        <!-- URL base to find the full zip files, %s is expanded to property_device value. Path is suffixed by (expanded) filename_base -->
        <string name="url_base_full">http://phoenixrom.ddns.net:50472/CyanogenModOTA/builds/full/tema13/oneplus3/%s/</string>

        <!-- URL base to fetch all builds -->
        <string name="url_base_json">http://phoenixrom.ddns.net:50472/CyanogenModOTA/builds/full/tema13/json.php"</string>

        <!-- Applies whole-file signature delta. Adds one extra delta step. Required if recovery verifies signatures -->
        <item name="apply_signature" type="bool">false</item>

        <!-- (TWRP) Set this to false if the keys below aren't your ROM's -->
        <item name="inject_signature_enable" type="bool">false</item>

        <!-- (TWRP) Verification signatures to inject. Produced by 'dumpkey.jar' (out/host) of the platform.x509 key used to sign the ZIP file -->
        <string name="inject_signature_keys"><![CDATA[v2 {64,0x9d3ef4e7,{3451855145,2574857780,2212470067,2065828617,2220798544,1453138002,3035953543,349537325,3471576065,3709424322,1499657722,626083680,3508502098,135982109,2406850010,2674691998,3903782739,3673009508,3196976129,124737966,3727608735,3698514242,2926317182,2598715876,2200551045,3324466456,2027872794,1316834497,3538558575,4094723182,3091112109,152419065,961268200,2817719766,2542630774,735678394,2025086356,3319743251,3482513753,3754037486,2186326636,2162920719,1933319201,1362420666,3093979107,3944963833,3173846995,3307766644,4239176696,3380551792,3189093155,3679104199,4159403556,3373361362,737822358,2043192588,3446724037,2184123451,3680508975,492248740,1654088879,3739912969,188663922,4074712169},{2400585854,3884144496,312737665,3547448515,3596760612,2953776441,190371072,1980790627,3681130262,827104214,1597200957,1333455720,1391423898,4233042842,3284284880,50168935,2424437529,2771213818,3715896496,3320142743,3649069246,2702994054,839870558,1257344415,3116165843,4195920375,2497396347,1334871168,3550010104,64795091,3042249326,4155098628,123980023,3500559217,1825888674,443352554,3891428201,2484397377,4136956616,4201065713,2547196505,3411971111,2135688607,393830937,4198844531,3826748593,3979050977,1220766766,3592470842,2278136,1841247501,3507376964,3313320668,3849023694,2185649624,3043141327,1601153541,939583339,2083130022,3508853409,2068728550,3713282728,2402412627,1764295415}}]]></string>

        <!-- (TWRP) Add secure mode setting. Requires 'apply_signature' and 'inject_signature_enable'. Limits flashing to TWRP only, verifies ZIP signature in TWRP, disables auto-flashing of additional ZIPs -->
        <item name="secure_mode_enable" type="bool">false</item>

        <!-- (TWRP) Requires 'secure_mode_enable'. Decides whether the default setting for secure mode is enabled (true) or disabled (false) -->
        <item name="secure_mode_default" type="bool">false</item>

        <!--
        Devices (detected using property_device) which may crash while downloading/patching/verifying when the screen is off.
        This appears to be an issue with the fuse daemon, but the cause has not yet been found or fixed. Until the issue is
        repaired, this is a stop-gap solution.
        -->
        <string-array name="keep_screen_on_devices">
                <item>i9100</item>
                <item>n7000</item>
                <item>i777</item>
        </string-array>


        <string name="official_version_tag"></string>

        <string name="android_version">ro.build.version.release</string>
</resources>

3. edited my device.mk

Code:
PRODUCT_PROPERTY_OVERRIDES := \
    ro.tema.version=$(shell date +%Y%m%d)\
    ro.tema.device=oneplus3

PRODUCT_PACKAGES += \
    OpenDelta \
    libbypass

4. put the json.php in the root folder so structure is like this:

oneplus3/delta =the deltas
oneplus3/ =all full roms
json.php

5. still then the actualisation deactivated message pops up.

6. catlog error as before

rom name is like this cm-13.0-20160731-UNOFFICIAL-oneplus3.zip

any idea?


Cheers,

Saint!
 

theapuv

Senior Member
Jul 2, 2012
85
62
Thiruvananthapuram
Hey,

thanks for your aptience, it still does not work i do not know:

1. Downloaded your git source
2. edited the config.xml to this
Code:
<?xml version="1.0" encoding="utf-8"?>
<resources>

        <!-- Output some debug strings -->
        <item name="debug_output" type="bool">true</item>

        <!-- Property to read for ROM version -->
        <string name="property_version">ro.tema.version</string>

        <!-- Property to read for device identifier -->
        <string name="property_device">ro.tema.device</string>

        <!-- %s is expanded to property_version value. .zip, .delta, .update, .sign extensions added when needed -->
        <string name="filename_base">cm-13.0-%s-UNOFFICIAL-oneplus3</string>

        <!-- Path deltas are stored, relative to sdcard root -->
        <string name="path_base">OpenDelta</string>

        <!-- URL base to find .delta files, %s is expanded to property_device value. Path is suffixed by (expanded) filename_base -->
        <string name="url_base_delta">http://phoenixrom.ddns.net:50472/CyanogenModOTA/builds/full/tema13/oneplus3/delta/%s/</string>

        <!-- URL base to find .update and .sign files, %s is expanded to property_device value. Path is suffixed by (expanded) filename_base -->
        <string name="url_base_update">http://phoenixrom.ddns.net:50472/CyanogenModOTA/builds/full/tema13/oneplus3/delta/%s/</string>

        <!-- URL base to find the full zip files, %s is expanded to property_device value. Path is suffixed by (expanded) filename_base -->
        <string name="url_base_full">http://phoenixrom.ddns.net:50472/CyanogenModOTA/builds/full/tema13/oneplus3/%s/</string>

        <!-- URL base to fetch all builds -->
        <string name="url_base_json">http://phoenixrom.ddns.net:50472/CyanogenModOTA/builds/full/tema13/json.php"</string>

        <!-- Applies whole-file signature delta. Adds one extra delta step. Required if recovery verifies signatures -->
        <item name="apply_signature" type="bool">false</item>

        <!-- (TWRP) Set this to false if the keys below aren't your ROM's -->
        <item name="inject_signature_enable" type="bool">false</item>

        <!-- (TWRP) Verification signatures to inject. Produced by 'dumpkey.jar' (out/host) of the platform.x509 key used to sign the ZIP file -->
        <string name="inject_signature_keys"><![CDATA[v2 {64,0x9d3ef4e7,{3451855145,2574857780,2212470067,2065828617,2220798544,1453138002,3035953543,349537325,3471576065,3709424322,1499657722,626083680,3508502098,135982109,2406850010,2674691998,3903782739,3673009508,3196976129,124737966,3727608735,3698514242,2926317182,2598715876,2200551045,3324466456,2027872794,1316834497,3538558575,4094723182,3091112109,152419065,961268200,2817719766,2542630774,735678394,2025086356,3319743251,3482513753,3754037486,2186326636,2162920719,1933319201,1362420666,3093979107,3944963833,3173846995,3307766644,4239176696,3380551792,3189093155,3679104199,4159403556,3373361362,737822358,2043192588,3446724037,2184123451,3680508975,492248740,1654088879,3739912969,188663922,4074712169},{2400585854,3884144496,312737665,3547448515,3596760612,2953776441,190371072,1980790627,3681130262,827104214,1597200957,1333455720,1391423898,4233042842,3284284880,50168935,2424437529,2771213818,3715896496,3320142743,3649069246,2702994054,839870558,1257344415,3116165843,4195920375,2497396347,1334871168,3550010104,64795091,3042249326,4155098628,123980023,3500559217,1825888674,443352554,3891428201,2484397377,4136956616,4201065713,2547196505,3411971111,2135688607,393830937,4198844531,3826748593,3979050977,1220766766,3592470842,2278136,1841247501,3507376964,3313320668,3849023694,2185649624,3043141327,1601153541,939583339,2083130022,3508853409,2068728550,3713282728,2402412627,1764295415}}]]></string>

        <!-- (TWRP) Add secure mode setting. Requires 'apply_signature' and 'inject_signature_enable'. Limits flashing to TWRP only, verifies ZIP signature in TWRP, disables auto-flashing of additional ZIPs -->
        <item name="secure_mode_enable" type="bool">false</item>

        <!-- (TWRP) Requires 'secure_mode_enable'. Decides whether the default setting for secure mode is enabled (true) or disabled (false) -->
        <item name="secure_mode_default" type="bool">false</item>

        <!--
        Devices (detected using property_device) which may crash while downloading/patching/verifying when the screen is off.
        This appears to be an issue with the fuse daemon, but the cause has not yet been found or fixed. Until the issue is
        repaired, this is a stop-gap solution.
        -->
        <string-array name="keep_screen_on_devices">
                <item>i9100</item>
                <item>n7000</item>
                <item>i777</item>
        </string-array>


        <string name="official_version_tag"></string>

        <string name="android_version">ro.build.version.release</string>
</resources>

3. edited my device.mk

Code:
PRODUCT_PROPERTY_OVERRIDES := \
    ro.tema.version=$(shell date +%Y%m%d)\
    ro.tema.device=oneplus3

PRODUCT_PACKAGES += \
    OpenDelta \
    libbypass

4. put the json.php in the root folder so structure is like this:

oneplus3/delta =the deltas
oneplus3/ =all full roms
json.php

5. still then the actualisation deactivated message pops up.

6. catlog error as before

rom name is like this cm-13.0-20160731-UNOFFICIAL-oneplus3.zip

any idea?


Cheers,

Saint!

I could not find anything wrong in config.xml except a quote at the end of json.php

<string name="url_base_json">http://phoenixrom.ddns.net:50472/CyanogenModOTA/builds/full/tema13/json.php"</string>
 

saintxseiya

Senior Member
Jul 3, 2008
434
134
I could not find anything wrong in config.xml except a quote at the end of json.php

<string name="url_base_json">http://phoenixrom.ddns.net:50472/CyanogenModOTA/builds/full/tema13/json.php"</string>

hmmm didn't change a thing.

But something is strange, the delta files are always named after the OLD files, is that correct?

i put the let's say cm-13.0-20160802-UNOFFICIAL-oneplus3.zip in the OLD folder and the cm-13.0-20160803-UNOFFICIAL-oneplus3.zip in the new folder.

the deltas created are always named like the OLD files so in this case cm-13.0-20160802-UNOFFICIAL-oneplus3.update etc.

is that right?
 

theapuv

Senior Member
Jul 2, 2012
85
62
Thiruvananthapuram
hmmm didn't change a thing.

But something is strange, the delta files are always named after the OLD files, is that correct?

i put the let's say cm-13.0-20160802-UNOFFICIAL-oneplus3.zip in the OLD folder and the cm-13.0-20160803-UNOFFICIAL-oneplus3.zip in the new folder.

the deltas created are always named like the OLD files so in this case cm-13.0-20160802-UNOFFICIAL-oneplus3.update etc.

is that right?

Yes. Naming is correct. Delta files are named after the previous build. Could you try my naming scheme. I did not changed the default cm build prop variables like ro.cm.version . I have attached my build prop. May be comparing it with your build prop may help.

I thing using CM_BUILDTYPE set as UNOFFICIAL changes CM_VERSION to a value unacceptable to opendelta. Try changing CM_BUILDTYPE to NIGHTLY or STABLE.

In my case I have modified common.mk to change CM_VERSION and CM_BUILDTYPE (From lines 230 to 281)

https://github.com/apuv/android_vendor_apuv/blob/stable/cm-13.0-ZNH2K/config/common.mk#L230
 

Attachments

  • build.prop.zip
    2.2 KB · Views: 15

Top Liked Posts

  • There are no posts matching your filters.
  • 17
    Hi i have tested a lot of OTA apps and configs and they are very annoying until i stop thinking for a moment and I find a solution for having true OTAS updates and not depending from other users just like Nexus Devices OTAS.
    Ok we started:
    First of all we need to download Android Bundle with contains SDK and Eclipse
    Here it is:
    http://developer.android.com/sdk/index.html?hl=sk#download
    After it is download and installed.
    You are going to download my fixed source for supporting from Android 4.1.2 to 4.4.2.
    https://github.com/werty100/OpenDelta
    And Click on:
    download.png

    Them open Eclipse...
    Go to file/Import:
    select.png

    Next and locate were is the download source
    choose.png

    Then Finish...
    Wait until it is import....
    Go to res folder, values and open config.xml:
    config.png

    Here are the important values for making work your OTA in your phone.
    Code:
     <!-- Property to read for ROM version -->
        <string name="property_version">ro.delta.version</string>
    
        <!-- Property to read for device identifier -->
        <string name="property_device">ro.delta.device</string>
    This should be put in build.prop:
    Ex:
    ro.delta.version=1.0.2
    ro.delta.device=i9000

    You can modificated all values but you should modificate this ones:
    Code:
     <!-- URL base to find .delta files, %s is expanded to property_device value. Path is suffixed by (expanded) filename_base -->
        <string name="url_base_delta">https://delta.omnirom.org/nightlies/%s/</string>
    
        <!-- URL base to find .update and .sign files, %s is expanded to property_device value. Path is suffixed by (expanded) filename_base -->
        <string name="url_base_update">http://delta.omnirom.org/nightlies/%s/</string>
    
        <!-- URL base to find the full zip files, %s is expanded to property_device value. Path is suffixed by (expanded) filename_base -->
        <string name="url_base_full">http://dl.omnirom.org/%s/</string>
    Indicates where to find the ZIP for your phone...

    Also you can modificate all UI and values....
    After the essentials modifications you will need to compile APK:
    Go here and click on selected item..
    sign.png

    You will need to create your own KeyStores
    keystore.png

    Rellenate also this:
    https://dl.dropboxusercontent.com/u/26870831/rellenate.png
    Them just put destination and click finish:
    finish.png

    After all of this you have to modificate the Settings.apk of your rom:
    Decompile with the script/tool you like more and go to:
    In res/values:
    String.xml
    Add this:
    Code:
     <string name="system_update_settings_list_item_title">System updates</string>
    <string name="system_update_settings_list_item_summary" />
    Paste it near baseband_version string kernel_version string etc...
    Then go to public and paste this near device_info_settings:
    Code:
    <public type="string" name="system_update_settings_list_item_title" id="0x7f0c06d7" />
    <public type="string" name="system_update_settings_list_item_summary" id="0x7f0c06d8" />
    Then go to xml/device_info_settings.xml:
    And copy this in the firs lines after:
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <PreferenceScreen android:title="@string/about_settings"
      xmlns:android="http://schemas.android.com/apk/res/android">
    Paste this:
    Code:
    <PreferenceScreen android:title="@string/system_update_settings_list_item_title" android:key="system_update_settings" android:summary="@string/system_update_settings_list_item_summary">
            <intent android:action="android.settings.SYSTEM_UPDATE_SETTINGS" />
        </PreferenceScreen>
        <PreferenceScreen android:title="@string/additional_system_update_settings_list_item_title" android:key="additional_system_update_settings">
            <intent android:targetPackage="@string/additional_system_update" android:action="android.intent.action.MAIN" android:targetClass="@string/additional_system_update_menu" />
        </PreferenceScreen>
    After Compiling Settings.apk you will have full OTAS
    8
    Howdy! Some general stuff:
    You should credit original developer of OpenDelta (that's Chainfire @ OmniROM)
    Proper way to make own, patched version is Pulling the original repository (easiest way is using "Pull" button on GitHub there: https://github.com/omnirom/android_packages_apps_OpenDelta) and then patching it - this way you preserve all the commits history (and credits to original authors)

    You can't use this for any other ROM because we don't know what we should had on .delta & .update & .sign files
    There we got with an example:
    https://delta.omnirom.org/nightlies/i9300/omni-4.4.3-20140605-i9300-NIGHTLY.sign
    https://delta.omnirom.org/nightlies/i9300/omni-4.4.3-20140605-i9300-NIGHTLY.update
    https://delta.omnirom.org/nightlies/i9300/omni-4.4.3-20140605-i9300-NIGHTLY.delta

    .delta file is JSON
    .sign is binary signature
    .delta is binary delta data

    ...and
    GUESS WHAT! There's an opensource stuff to generate ALL of the above.
    Completely! Automagically!
    https://github.com/omnirom/android_packages_apps_OpenDelta/tree/android-4.4/server/
    3
    I don't know how to fix it but the updater is looking for a file that reads cm-6.0.1 but looking at the json.php it shows a file with cm-13.0. the number strings need to be modified so they match up.

    Ok. I fixed it. Now opendelta is fully functional in my cm 13 build.
    Either change <string name="android_version">ro.build.version.release</string> to <string name="android_version"></string> in config.xml or change
    res.getString(R.string.filename_base), android_version); to res.getString(R.string.filename_base), ""); in Config.java

    These are the changes I done to make OpenDelta work in CM 13
    https://github.com/omnirom/android_packages_apps_OpenDelta/compare/android-6.0...apuv:android-6.0

    Also flashing from the app will work only if selinux policy is permissive. Since I build OpenDelta with the ROM I added OpenDelta to sepolicy/mac_permissions.xml and sepolicy/seapp_contexts

    https://github.com/CyanogenMod/andr...ble/cm-13.0-ZNH2K...apuv:stable/cm-13.0-ZNH2K

    Now OpenDelta is fully functional.
    3
    Just a quick question:
    Code:
    [B] <!-- URL base to find .delta files, %s is expanded to property_device value. Path is suffixed by (expanded) filename_base -->
        <string name="url_base_delta">https://delta.omnirom.org/nightlies/%s/</string>
    
        <!-- URL base to find .update and .sign files, %s is expanded to property_device value. Path is suffixed by (expanded) filename_base -->
        <string name="url_base_update"http://delta.omnirom.org/nightlies/%s/</string>[/B]
    
        <!-- URL base to find the full zip files, %s is expanded to property_device value. Path is suffixed by (expanded) filename_base -->
        <string name="url_base_full">http://dl.omnirom.org/%s/</string>

    If we want to configure it to our directory, what should we inclue on .delta files & .update and .sing files?
    2
    With this OTA guide will I have to boot into recovery to flash a OTA?