Edit #2 [2019.08.01]: Applications have closed and we have a new owner for the app! More details available very soon!
Edit #1 [2019.07.16]: Made a bit more clear that you should send a proposal about taking the app over. Offer was a bit misleading as this is not really a commercial project.
I'd like to share an important update to you all.
Some things are changing in my life and I'd like to inform you that I want to step down as owner and maintainer of the Oxygen Updater and Cyanogen Update Tracker projects. Yes, you've read that right. It has ben an awesome ride with you and I've learned lots of things from it. But sometimes things need to move on.
I'll be stopping with the Oxygen Updater and Cyanogen Update Tracker projects on November 1st, 2019. Someone else will be taking them over before that date.
Why am I leaving?
I have a few reasons. Shortly said, they are the following:
- Limited time due to my full-time job as software developer
- Other personal interests
- Challenges to maintain the project
To further explain these, let me tell you a background story about myself.
Me & my job
I'm Arjan. I'm 24 and am a Dutch software engineer. I'm currently working for a company called 42 B.V. It is a Dutch software company which focuses on enterprise software. We write mostly web-based applications. I work there since I graduated from my study in the summer of 2017. It's a fun place to work and they do lots of cool things.
Other personal interests (playing piano)
Besides my job, I love playing piano. I started taking keyboard lessons when I was 8 (that was in 2003) and switched to classical piano when I was 12. Nowadays, I play mostly classical music and am the pianist of a small church choir called "Trio Magnifique". My favorite composers are Beethoven and Bach.
More recently, I also joined another choir as a tenor singer. This choir is called "Praise" and we are mostly with people of around my age. We also sing in a church sometimes, especially out of town. What's cool is that they do various other things besides singing. For example, they have game nights sometimes.
The app’s technical background
You may wonder, why I prefer some other things above Oxygen Updater. Well, the cool thing is that I can talk with other people about those quite easily. But with Oxygen Updater, that's kind of a different story. The app serves a techy crowd and "Getting phone updates faster" is not something on most people's minds. Even most of my colleagues at 42 were not that much interested in the project.
Challenges to maintain the project
The Oxygen Updater app has become quite large and uses lots of technical components. Keeping all of these up-to-date is not-so-easy as it used to be anymore. Especially now that the updates cannot be imported from OnePlus and that we have multiple translations of the app.
As you may imagine, all things I do take up quite some time. And as I'd also like to watch a movie or some series occasionally, so there isn't much time left to maintain Oxygen Updater. Cyanogen Update Tracker does not need much maintenance but is located on the same servers as Oxygen Updater. That's why it's also included in this transfer.
Finally, I'm moving to my own appartment within a few months from now. I've lived at my parent's home until today and think it's about time to move out. And yes, that will reduce available time even further by a bit.
To summarize: I'd like to focus on other things in my life and am looking for a new owner, or perhaps a team of owners, for the project.
What will I (or my team) be taking over?
If you or your team is/ are the one(s) who wants to keep it alive, You will be taking over quite some things. A summary of what you'll be getting:
- A project serving a great community with thousands of OnePlus enthousiasts
- The apps and all their underlying software components, including the ability to gain revenue from ads and in-app-purchases which grant users an ad-free experience
- The servers on which everything is hosted, including a test environment to work safely on the project without interrupting users
- The domain names oxygenupdater.com and cyanogenupdatetracker.com
Below, I'll explain every part more in depth.
The project consists of multiple software components. All components can be built and developed on Windows, Mac and Linux systems. A 64-bit version of Windows (if using Windows) and at least 8GB of RAM are required on your development machine.
The Android apps and their website / public backend are open source. This is mostly for transparency and allows work to be done by other developers and translators. However, the database data and all administration tools are closed source. That makes the project still a valuable asset, because without the data and management tools it's very hard to maintain your own version.
It's important to know that some parts of the project have server-configurable Dutch texts. If you're not Dutch, this is not a problem, since our other administrator, AnonymousWP, is Dutch and thus is able to provide you with these texts. The code and database models, however, are fully in English.
The individual software components are listed below, each of them explained in terms of provided functionality and technologies involved. Higher-resolution photos are available here
- Android Apps (Open Source)
- This is what you're using right now. I don't think that needs much explanation :)
- Made with: Java (logic), XML (UI and texts), PRdownloader library, Libsuperuser library (root features), Firebase cloud messaging, Firebase analytics, Firebase ads, Google Play in-app billing. Target version: Android API 28 (Pie)
- Oxygen Updater contains various languages which are translated by volunteers. Almost all are active on our Discord
- App backends and websites (Open Source)
- Used for:
- Backend: The app uses the backend to retrieve data from the database and to submit data into the database. For example, this news story is obtained through the backend and is stored in the database. By reading it, you submit to the server that you've read this story, and this is submitted to the database.
- Website: The website is for informational purposes and to view the FAQ section on another device, such as a desktop. You may have seen it when first searching for this app
- Made with:
- Backend: PHP 7.2 (no frameworks, super-lightweight. It must be capable to handle high loads of traffic)
- Website: PHP 7.2 (Composer with Html purifier library), HTML5, CSS3, Bootstrap styling.
- Used for:
- Databases (Data not open source)
- Used for: The database contains all data used by the app, its website and the tools to manage everything. For example, all OxygenOS update changelogs are stored there.
- DBMS: MariaDB 10.2.
- Admin Portal, an administration tool and CMS (Closed source)
- Used for: This tool allows contributors to add new OxygenOS updates to the app and allows administrators to also create news posts, manage the FAQ section, add new devices, send push notifications and to view various logs.
- Made with: UI: HTML5, LESS (CSS variant) and AngularJS 1.7. Backend: Java 8 + Spring Boot Framework 1.5.x.
- Note: The admin portal also manages the database schema structure using Liquibase migrations
- Automator, a tool which imported updates from OnePlus' FOTA API (Closed source)
- Used for: This tool was used until October 2018 to automatically add new updates to the app. Whilst no longer used today, it is still useful as a framework in case a new method to automatically import updates arises.
- Made with: Java 8 + Spring Boot framework 1.3.x.
- Tool which keeps the admins up-to-date about OnePlus' forum postings (Closed source)
- Used for: This tool informs the admins about new forum posts made by various staff members, so they can anticipate on what's coming up.
- Made with: NodeJS 10.x + PM2 process manager
- Note: This tool was not made by me, but the original author left and said I could keep maintaining it myself. No copyrights involved!
- Kiosk, a real-time update installations dashboard (Closed source)
- Used for: Not really needed for anything, but was a fun project to learn React. Cool to run on a monitor on the wall, if you wish :)
- Made with: Webpack, React 16.2 and LESS (CSS variant). Not buildable on Windows sytems!
Servers and hosting
All software (except the Android apps themself) runs on a VPS server hosted by OVH. This is an up-to-date Ubuntu 18.04 LTS machine containing the Apache web server, PHP, MariaDB, Java and NodeJS runtimes and all the software mentioned above. It has monitoring tools (netdata) installed and is configured to backup databases and web directories automatically to a OneDrive account. Also, a similar VPS exists as test server. The test server has less RAM and storage but contains the same set of software as the production server.
The servers will be transferred to you or your team. You'll need an OVH account and a valid payment method to pay for the hosting (around EUR 25 / month). This project does not support Docker or Kubernetes clusters in its current state.
The domain name oxygenupdater.com is currently registered through a Dutch company (Strato) but can be transferred to you when it expires next year (July 2020). It costs about EUR 20 / year.
The Oxygen Updater and Cyanogen Update Tracker Android apps will be transferred to your Google Play developer account. A Google Play Developer account is required. You'll need a valid credit card to sign up for one if you don't have it right now ($25 to Google once). You'll also need to enable AdSense and Google Play billing on your account. The latter two can payout to a credit card or a local bank account.
Note for those wondering about Cyanogen Update Tracker: Cyanogen Update Tracker is basically the same as Oxygen Updater but then for legacy Cyanogen OS devices. It does not have a "news" section and has mostly not been updated since 2017. This because Cyanogen stopped making Android software. However, users can still download the existing firmware packages from its website and through the app (on an older device). Cyanogen Update Tracker will be shut down on the same date as Oxygen Updater if not taken over.
- - - -
Applications have closed. Stay tuned for an update about the new owner!
- - - -
Only proposals of people who are seriously interested will be considered!
You or your team must have a decent amount of knowledge in software development and must be willing to support the community behind this project. It's not possible for entry-level programmers to take over the project, as the software is just too complex for it. Also it's not under any circumstance allowed to offer Closed Betas of OxygenOS through this project, as these fall under an NDA of OnePlus and will get the project shutdown / legal action involved.