[TOOL][OTA][Delta Updates] DeltaJen [CyboLabs]

Search This thread

kl3

Senior Member
Sep 9, 2013
145
175
Strange..
Did you have the right build on your device? Did you build the patch with the correct base zip?
No gapps have been installed ever. As I said, I used official OmniROM builds. Version 20140802 was installed on my device and has been taken as base zip, version 20140812 was the input zip.
 
Last edited:

cybojenix

Retired Forum Mod / Retired Recognized Developer
Apr 7, 2012
801
1,864
No gapps have been installed ever. As I said, I used official OmniROM builds. Version 20140802 was installed on my device and has been taken as base zip, version 20140812 was the input zip.

OK I'll look into it. Can you linger on freenode in an hour or so please? Link is in the first page
 

kl3

Senior Member
Sep 9, 2013
145
175
It would be nice if your script could support a kind of blacklist, so that you're able to ignore some files being compared/contained in the output zip. After every ROM update I run my own script to delete unwanted apks and other stuff. This feature made your work an even greater script!

# example list of files/folders to be ignored
system/app/LiveWallpapers.apk
system/app/NoiseField.apk
Then calling your script like that or something
Code:
./DeltaJen.py -b BASE.zip -i INPUT.zip -l IGNORE.lst -o OUTPUT.zip
 

poo706

Senior Member
Apr 8, 2011
2,295
2,290
Thanks again for creating this fabulous tool, my ROM users are really digging the deltajen updates I'm making for them!

[poo]
 

cybojenix

Retired Forum Mod / Retired Recognized Developer
Apr 7, 2012
801
1,864
Hey just a quick shout out. My Internet is being a pita atm, and it may not be fixed for another few weeks.

I've got some more features in the works, like a build prop patcher that will ignore user changes, and apply only the props which change.
 
  • Like
Reactions: eternal70

kl3

Senior Member
Sep 9, 2013
145
175
Hey just a quick shout out. My Internet is being a pita atm, and it may not be fixed for another few weeks.

I've got some more features in the works, like a build prop patcher that will ignore user changes, and apply only the props which change.
Well, that sounds like my project could help you/ be what you're looking for. You find the thread in my signature ;)
 

cybojenix

Retired Forum Mod / Retired Recognized Developer
Apr 7, 2012
801
1,864
Hello guy, terribly sorry about vanishing for a while. My Internet has been on the blink, and stuff has been happening behind the scenes.

In a week or two, I will be releasing.... Something else ;)
If someone wants to help out, then a front end Web designer would be fantastic
 

cybojenix

Retired Forum Mod / Retired Recognized Developer
Apr 7, 2012
801
1,864
Btw, have you ever considered using pip to make it easier to deploy or bundle this package with other softwares? It would be a nice addition.

yes I have. Releasing it as a pip package, I'd like to clean up the sources (the way it is now, it's just one file to make it easier to just run it).

I may look into it over the weekend
 
  • Like
Reactions: JulianXhokaxhiu

EnerJon

Senior Member
Jan 29, 2014
350
212
Great Work @cybojenix Sir :)
Few Months Back i Was Working On a Similar Tool To Make/Apply OTAs in PC, My Tool Was Using BSDIFF To Generate And BSPATCH To Apply OTAs, i Wanted it To Be More Efficient So i Started Looking For IMGDIFF & APPLYPATCH Ports For Windows But i Stopped Working On it Because These Tools For Windows Were Available Nowhere... Can i Use Your IMGDIFF Port?

And Please Check This Link, its Not Accessable... Thanks Alot For Your Hard Work :)
ftp://cybolabs.co.uk/DeltaJen/winblows/imgdiff.exe
 

cybojenix

Retired Forum Mod / Retired Recognized Developer
Apr 7, 2012
801
1,864
Great Work @cybojenix Sir :)
Few Months Back i Was Working On a Similar Tool To Make/Apply OTAs in PC, My Tool Was Using BSDIFF To Generate And BSPATCH To Apply OTAs, i Wanted it To Be More Efficient So i Started Looking For IMGDIFF & APPLYPATCH Ports For Windows But i Stopped Working On it Because These Tools For Windows Were Available Nowhere... Can i Use Your IMGDIFF Port?

And Please Check This Link, its Not Accessable... Thanks Alot For Your Hard Work :)
ftp://cybolabs.co.uk/DeltaJen/winblows/imgdiff.exe

Sure go ahead.

Strange.. My ftpdaemon has gone down... I'll see if I can get that for you. The sources are all available on the repo though
 
  • Like
Reactions: EnerJon

EnerJon

Senior Member
Jan 29, 2014
350
212
Ftp back up. Sorry forgot I'd done a refresh, so host file wasn't set up properly.

its Working Like a Charm Bro, Thanks Alot :highfive:
Now The Only Thing i Need is "applypatch" port for Windows, Because i Think The Patches Generated With IMGDIFF Can't Be Applied On a PC Easily Like We Can Apply BSDIFF Patches Using BSPATCH On a PC... if applypatch/Alternative Port is Available For Windows Anywhere On The Web, Please Notify Me... Thanks :)
 

Attachments

  • Patch_Generated.png
    Patch_Generated.png
    50.7 KB · Views: 84
Last edited:
  • Like
Reactions: avi3230

Top Liked Posts

  • There are no posts matching your filters.
  • 44
    What is DeltaJen?
    DeltaJen is a tool for quickly making an incremental update based on two update zips. It is simple to use, and easy to extend for devices that don't use a straight up method of flashing a rom.

    Why should I use it?
    Have you ever hated having to download a full rom just to do a simple update? This tool can take a 200mb rom, take out all the changes, and squish the final package to less than 10mb.

    But what if I use CWM instead of TWRP?
    No issues here. DeltaJen produces updates that even your stock recovery can apply.

    The Geeky parts

    The script uses two binaries to efficiently build an update zip. bsdiff and imgdiff. bsdiff can also be replaced by the python module bsdiff4.
    No threading or multiprocessing is used currently. as it stands, barely any cpu is used, so threading will be a huge bonus.
    Hooks have been added to allow you to easily change how the script adds files, or to add extra lines in the updater-script


    How do I use this?
    For a straight update zip, which has no extra files or scripts other than what is in /system and boot.img, you run this.
    Note that this will change when I update the cli function.
    Code:
    python DeltaJen.py -b <base_zip> -i <new_zip> -o <output_zip>
    
    # Or from python
    
    from DeltaJen import DeltaJen
    dj = DeltaJen("<old_zip.zip>", "<new_zip.zip>", "<output_zip.zip>")
    dj.generate()

    I want to include this in the build steps of a custom rom
    I'm working on it for a team already

    Requirements
    • Linux (untested on OSX but should work)
    • python 2.7 or python 3.2+ (all other versions are untested and may not work)
    • imgdiff (supplied below or build from source)
    • bsdiff (sudo apt-get install bsdiff) or python module bsdiff4 (sudo pip install bsdiff4)
    • at least 500mb free ram (sorry, it dumps the files to ram. sorting it out soon).

    It does NOT fully support windows yet, due imgdiff not supporting it. You can still run it, but it will only use bsdiff

    More detailed instructions will be included soon, and the docs will be improved.

    If you want direct help/to contribute/generally chat, come on down to the freenode channel #CyboLabs

    last but not leased.
    The source

    XDA:DevDB Information
    DeltaJen, Tool/Utility for all devices (see above for details)

    Contributors
    cybojenix, @GermainZ

    Version Information
    Status: Alpha

    Created 2014-08-06
    Last Updated 2014-08-09
    11
    Reserved

    Dependencies

    Linux
    Windows

    System Requirements
    • A supported OS
    • Enough ram to hold both zips (two 100mb zips would need 200+mb ram)
    • Enough storage to hold both zips
    4
    aannnddd gapps survivable updates incoming ;)

    it's only a rough list, so please if you find any files that I missed, let me know

    https://github.com/CyboLabs/DeltaJen/commit/6e985feaa4ffff21e2f0c2c2f922a7dd45b73802
    3
    tmp file handling updated to work on windows and linux vm's (which solves the above errors).
    Thank you @kantjer for bringing up the linux vm issue.

    also fixed verbose mode in windows and vm's.


    for reference to other people working with tmp files and python, check this commit
    https://github.com/CyboLabs/DeltaJen/commit/be4b5b53712fc5648160dbcbf3de6e3d6f0916c0
    2
    May I suggest jojodiff?

    In my testing it blows away both xdelta and bsdiff

    bsdiff gives better compression on libs, and no differ will match imgdiff due to the way it works