julianxhokaxhiu / LineageOTA

A simple OTA REST Server for LineageOS OTA Updater System Application
http://blog.julianxhokaxhiu.com/how-the-cm-ota-server-works-and-how-to-implement-and-use-ours
MIT License
220 stars 132 forks source link

Invoke Method error with Flight #19

Closed JoshuaDoes closed 7 years ago

JoshuaDoes commented 7 years ago

Hi,

Recently I started taking a look at making my own private LineageOS build server, and I decided I wanted to have some method to automatically receive new builds daily for my phone without having to manually check an actual file listing from Apache2 and try and find the one with the newest date modified somewhere in there. That's when I came across LineageOTA (formerly CMOta).

I set everything up as best as I could, and it's on a fresh Apache2 install using Let's Encrypt for SSL. However, I receive a 500 Internal Server Error from Composer when any update checks are done. The address of this can be found here and the error message provided is "Undefined offset: 0 (8)".

Thank you for your time creating an amazing reverse engineering of the OTA service used by the CMUpdater app, and thanks in advance for any help provided!

julianxhokaxhiu commented 7 years ago

Hey, first of all let me thank you :) It's my pleasure!

As I am also using this on a private environment to build myself Lineage now ( which I highly suggest to take a look at the CICD Docker for building in an easy fashion way ) I tryed to do my best providing a Docker for this project also, and making sure they work together. Therefore if you can, think really about Docker solution which is hassle-free and battle tested :)

Anyway, on your side I see that everything looks good, but the OTA ZIPs are placed in the wrong folder, you should move them here. Then retry the API and I'm sure it will work.

Best regards, Julian

JoshuaDoes commented 7 years ago

Thank you very much!

I used to use Docker all the time, but I'm afraid I want to try to keep this specific VPS as minimal as possible as to not impact performance on build times for LineageOS. Thank you for pointing me in the right direction though, and I'll be sure to give that a go now. I'll let you know how it goes!

Thanks for your time, Joshua

JoshuaDoes commented 7 years ago

I've finally gotten it to display "No new updates found", however I'm very certain that there is a new one. I compiled two separate LineageOS versions, and I made sure that the first build and the second build had at least one difference by constantly _repo sync_ing until a change was pulled before compiling the second build. If this isn't your area of expertise, don't mind me, however I'm led to believe that it could be the result of LineageOTA or I simply made a derp.

Thanks in advance, Joshua

julianxhokaxhiu commented 7 years ago

This is because you now moved all the files to /delta. Move back to /full only the non-ota files, such as lineage-14.1-20170224-UNOFFICIAL-t0lte.zip :)

JoshuaDoes commented 7 years ago

Files like lineage_t0lte-ota-def686cf6a.zip are now in /delta and files like lineage-14.1-20170224-UNOFFICIAL-t0lte.zip are now in /full, however the updater still returns with no new updates found. The update check is returning data that the app likes to see, at least.

I'm doing a test compile now to see if I've just derped somewhere with date modified stuff. I'll let you know how it goes when the update is finished compiling! (And there's definitely a ton of new changes.)

julianxhokaxhiu commented 7 years ago

Looks fine to me! https://lineageota.joshuadoes.com/api/v1/t0lte/nightly/def686cf6a

JoshuaDoes commented 7 years ago

I'm afraid that my phone is looking for the string unofficial rather than nightly using the latest version of CMUpdater from the LineageOS 14.1 repositories. Is this something that can be worked around?

julianxhokaxhiu commented 7 years ago

Sure, I'll patch the OTA tomorrow then :)

JoshuaDoes commented 7 years ago

Thank you very much!

Temporarily I decided to comment out the line in build.php that changes UNOFFICIAL to nightly and all is well. I'll keep watch for your method of fix to make this work.

Keep up the good work!

julianxhokaxhiu commented 7 years ago

Can you please try now? Just pull the latest status from master.

Best regards, Julian

julianxhokaxhiu commented 7 years ago

Hi @JoshuaDoes any feedback?

JoshuaDoes commented 7 years ago

I'm sorry, I don't usually check GitHub often. I'll pull the latest and see how it goes, as I just got done building an update.

JoshuaDoes commented 7 years ago

The only issue that I do have is that it takes around 15 seconds for the phone to receive a generated response, and I'm not sure if that's because the script is processing everything or not. And if it is because it's processing everything, it's not an issue to me.

The main issue from this thread is fixed however, so thank you for your time!