Blog

Finding Its Way to Nightlies: The Oppo Find 7

Posted by on 1:45 am in android-4.4, Development, Devices

Finding Its Way to Nightlies: The Oppo Find 7

The Find 7 is the spectacular 2014 flagship from Oppo, a Chinese-based company already well-known for their great developer support across the custom Android firmware world. They have opened their arms to the aftermarket firmware projects, like ourselves, even going so far as encouraging its users to try out different ROMs through various posts and polls. To further that development, they provided numerous devices to the OmniROM project and two of our lead developers, Entropy512 and maxwen, began working on the device. The flagship seemed to have almost everything right: A big, beautiful 5.5in screen (1080p for the 7a, 2K for the 7), top-of-the-line specs, a very nice camera, and the gorgeous skyline LED notification light. Unfortunately, for all the good they have done, they did do one thing wrong: the internal storage is set up in the legacy Android fashion, with the /data partition separate from the user-accessible internal storage. This was a great peeve to most users who were accustomed to the unified internal storage solution Google introduced with the Galaxy Nexus and Ice Cream Sandwich 4.0. Oppo, if you’re reading this, please fix this for your next phone! This was also one of the issues that our devs wanted to tackle before officially pushing the Find 7 into nightlies. Now, after a few months of hard work fixing bugs and issues, Entropy512 and maxwen have deemed the device ready for the nightly roster, and have also provided a LVM-based solution that unifies the Find 7’s internal storage, for users who wish to proceed down that route. The nightly builds are now available for download, and are compatible with BOTH unified and non-unified internal storage formats. Please note that this is a unified build that is intended for BOTH the Find 7 and the 7a variant. Happy flashing! And remember to report any bugs you encounter to our JIRA instance. UPDATE: Entropy512 has also put together a very helpful reference for LVM Partition Mapping. We encourage you read it and become familiar with the...

read more

Adding Group Support for External Contact Sync Solutions

Posted by on 12:22 pm in android-4.4, Development, Features

Adding Group Support for External Contact Sync Solutions

We are all familiar with the AOSP contacts app, named People. One of its key features is the ability to create groups and to sort your contacts using said groups. However, this feature was coded in such a way to only work when the user is using a Google or an Exchange account, leaving users who use alternative, external contact sync solutions in the dust. Most of these alternate solutions implement CardDAV, an open protocol implemented by various solutions for use with contact data. Here at Omni, we embrace third-party opensource solutions, being one ourselves. So when community member CRCinAU raised awareness of this issue to Pulser, our team’s friendly security guy and opensource advocate, he promptly uploaded a patch resolving this, and it has been merged after testing. With the patch, all external contact sync solutions may take advantage of groups within the native Omni contacts app without hassle. One FOSS solution DAVdroid promptly tweeted this, showing their support. CRCinAU also wrote an article on the positive news. This feature has already been implemented into our nightly builds, so if you use such a solution, go check it out in the People app! The FOSS community has a place near and dear our hearts, and is of great importance to us. On behalf of all of us here at Omni, we are glad to be able to lend a helping hand to other FOSS projects and encourage others to do the...

read more

Gerrit Temporarily Unavailable [Back now!]

Posted by on 6:23 pm in General

Gerrit Temporarily Unavailable [Back now!]

Update: Gerrit has arisen once more from the ashes! We’ve also updated to Gerrit 2.9 during the time offline. Unfortunately, due to our server hosts’ datacenter not having suitable power redundancy in place we have had an outage on the Omni gerrit instance, which is taking a bit longer to recover from than expected. We’ve got plenty of backups, and we’re working to get it back up soon. Until then, here is a picture of a duckling, to entertain you while we hit the server with a...

read more

Translate All the Things! Omni Moves to Crowdin

Posted by on 12:44 am in Development, General

Translate All the Things! Omni Moves to Crowdin

Localization can make or break the user experience (UX): What good is the feature if the user cannot understand what it does? As such, we view translations as an important matter. Since the start of this project, we have been taking translations on our Gerrit instance, allowing anyone to upload translations for review. However, this has been non-ideal for several reasons: Only the core team have merge rights across all repositories requiring translations, and this adds more work on top of their already very busy schedules; Many people might make for excellent translators, but learning how Gerrit works and uploading patches might be beyond their capabilities; and Translators are currently required to be extremely careful with XML tags and to keep track of what strings had been added/modified/removed since the last time they updated their language, adding a lot of hassle to the job. Due to this, Omni starting looking for a separate system for handling translations. The requirements: One that is more streamlined, easy-to-manage, and puts less strain on our translators. With the suggestion of our community member Michael Bestas (mikeioannina) and his expertise on the matter, Omni has now successfully moved to using Crowdin to handle our translations. Crowdin will allow Omni users to contribute translations far easier than before, and this will lead to higher quality translations than we previously had, improving the UX on various localizations. You will find our Crowdin project here, and if you wish to contribute translations, you may get started by selecting your language and clicking “Join” to become a member of your language’s translation team. Please note that from now on, we will NOT be accepting new translations on Gerrit. All translations must go through...

read more

Completing the Galaxy Nexus Family: Sprint Variant (toroplus) Now Added To Nightlies

Posted by on 2:27 pm in android-4.4, Development, Devices

Completing the Galaxy Nexus Family: Sprint Variant (toroplus) Now Added To Nightlies

The Galaxy Nexus was, and some might argue still is, a venerable device. Launched by Google as the first phone to showcase Android 4.0, AKA Ice Cream Sandwich, it boasted a variety of new features that one would consider commonplace today, but was not previously available. This included a 720p HD display and a zero shutter lag camera. Unfortunately, Google decided that it was not worthy of the 4.4 KitKat treatment, and so official AOSP support for it was dropped with 4.3 Jellybean. However, the custom ROM community was not just going to take this lying down. Through some hard work by dedicated devs and community members, the Galaxy Nexus remains alive today. For months now here at Omni, we have supported the GSM variant (maguro) and the Verizon LTE variant (toro), but not the Sprint LTE variant (toroplus). This was because we lacked a proper Galaxy Nexus maintainer, and even though we supported the former two, we considered them on “life support” because of this. This all changed recently when community member MWisBest stepped up to be our new maintainer. Thanks to his work, Galaxy Nexus devices have received several optimizations and fixes, and the Sprint LTE variant is now fully supported by Omni and added to nightlies. Head over to the download page if you own a Sprint Galaxy Nexus to start enjoying some Omni goodness! As always, bug reports are welcomed on our JIRA...

read more

OmniROM Nightlies Land on the Sony Xperia L

Posted by on 10:08 pm in android-4.4, Development, Devices

OmniROM Nightlies Land on the Sony Xperia L

In the custom ROM community, we find that developers focus mainly on high-end devices while the lower-end device often go ignored. Most of the time it is not because these devices are not capable enough to run custom firmware, but simply because there is a lack of interest. However, that is not the case with the Sony Xperia L. Codenamed “taoshan”, the L has a 1GHz dual-core Qualcomm MSM8230 with Adreno 305 graphics. Nightlies have been kicked off for this device as of today, thanks to the efforts by community member Olivier. Community members are a crucial part of Omni, and we always welcome new members into the Omni family, whether you are a user or a developer. This also serves as a reminder that just because newer and greater devices have come out, we do not simply neglect older, less capable devices. Owners of the Xperia L may head to the download page to get started on enjoying some OmniROM KitKat goodness! As always, updates later on will be available through our OpenDelta incremental updater, as this is now an officially supported device. Lastly, should you have issues, please feel free to report them to our JIRA...

read more

OmniROM Nightly 4.4.3 Builds Incoming

Posted by on 3:02 am in Development, Releases

OmniROM Nightly 4.4.3 Builds Incoming

It’s that time of the release cycle again – Google has released Android 4.4.3 to AOSP. Thanks to the tireless work of our own Xplodwild, Omni has now merged the changes to Android 4.4.3, and these will be rolling out in nightly builds for the 5th June. As I write this, builds are scheduled to start in around 20 minutes or so, and will appear at our download pages once they are completed. They will also be available through Omni’s inbuilt delta OTA updater, as always. Our merged code is on our Github, as always – hopefully it may save other developers time in getting Android 4.4.3 merged into their trees. This rollout should go smoothly, but as always, with big upstream changes, there could be the odd hiccup here and there with some devices. We hope you enjoy a first taste of Android 4.4.3 in a custom ROM. And thanks once again to Xplodwild for his stellar job in getting the merge completed in record-quick...

read more

Custom Hotwords From the Home Screen

Posted by on 8:59 pm in Development, Features

Custom Hotwords From the Home Screen

Google Now has become a great tool for those who like to have information quickly at their fingertips. The ability to use your voice to search without having to type it out, much less think about it, is appealing to many. The list of commands you can either tell Google Now, or have automatically available via contextual analysis, continues to grow with each new release. That list of voice commands, however, is something already pre-determined by Google – and for some that just isn’t good enough. Omni Developer XpLoDWilD has been working on a new feature (appropriately named Custom Hotword) which gives you the control you probably desire. Via the AOSP Launcher3 (different from the Google Now Launcher) XpLoDWilD has provided a way for the user to create custom hotwords which can be used to setup a phrase to startup Chrome, dial your spouse, or bring up the camera – all from an unlocked screen. No need to first say “Ok Google” – instead just go into the Launcher Settings (long press open space on the home screen and choose Settings), scroll down to Hotwords, and Customize hotwords. You can setup as many hotwords and as many actions as you can imagine. And since this isn’t a wakeup command like “Hey Snapdragon”, the only battery consumption is when the screen is on the home screen – just like Google Now. When the screen is off, there’s no consumption. See the video below for a demonstration. You should be able to make use of this feature as early as tomorrow’s nightlies (May 28). And stay tuned for more to come as we break our long radio...

read more

Tips to Getting Your Code Merged

Posted by on 8:42 pm in Development, Features, General

Tips to Getting Your Code Merged

[Note: the below is adapted from a post on Google+ by one of Omni’s Lead Developers, Andrew Dodd aka Entropy512.] While we have previously have included on the wiki a few notes about contributing to Omni, here are just a few observations regarding Omni code contribution, and some tips on getting your stuff merged: Indicate in the review comments what a patch is supposed to fix and, ideally, how to reproduce the problem or test the patch.  We personally hate blind-merging stuff that hasn’t been tested to actually do something. If it’s device-specific, indicate what issue on that device it’s supposed to fix. If it’s a cherry-pick from elsewhere, DO NOT edit the commit message.  Just put in a review comment after uploading. If you put a patch up and don’t add reviewers with merge rights, it’s probably not going anywhere.  Unfortunately it can sometimes be difficult to tell who to add to review. A safe bet is to add a few people from the Contributors list. If you put up a lot of patches at once, you might overload the reviewers.  If you put up a lot of patches that don’t actually depend on each other into a gerrit dependency chain, you’re going to cause massive delays if some of your patches are good but one of the earlier patches has issues.  As an example, right now there’s a good patch which is marked as having a dependency on a completely broken one that breaks the build.  The patch doesn’t actually depend on the other one and should have been put into a separate topic branch when it was uploaded so it could be merged on its own. DO NOT put someone else’s existing patch into a dependency chain after one of your own patches without talking to them or catching one of those with merge rights on IRC.  Seriously, just do NOT do it.  Someone mass-submitted 30+ patches to Gerrit all at once two weeks ago, and took other people’s patches and inserted them at the end of the dependency chain.  Many of that submitter’s patches were questionable/high-risk so it delayed the less-risky patches. Regarding PM’s on IRC: Please do not PM a developer without first pinging them in a public channel to see if they’re there.  Also, when asking if you can PM them, ask yourself, “does this really need to be private”? Most of the things people contact developers about don’t need to be a PM, and if they ping them when they’re asleep, they won’t be helped while someone else could have helped them in IRC.  Plus one of the biggest goals of Omni is transparency with developers and users, so it’s better if conversations occur in public unless they REALLY have a good reason to be private. Image courtesy of...

read more

Easily Switch Between Apps With OmniSwitch

Posted by on 3:49 pm in Features

Easily Switch Between Apps With OmniSwitch

Android presents a relatively easy way to switch between running apps and ending apps, but there isn’t a great way to keep favorites readily available while at the same time giving you complete control over running apps. And that’s where OmniSwitch from Omni Developer maxwen comes into play. OmniSwitch is an open source, recent apps switcher with support for application control and favorites. The idea behind OmniSwitch was to make application switching as easy as possible due to that function becoming more and more important in Android as RAM continues to grow in new phones. In theory, you should be able to do nearly all of your switching between apps using OmniSwitch with a single swipe and click. OmniSwitch can be opened by swiping a drag handle that can be freely placed on either side of the screen, and opens as an overlay which contains three parts: Action Buttons – for application control like “kill all”, “kill others” or “switch to last app” Recent apps – a horizontal list of recent apps where swiping up or down will stop the app Favorites – a horizontal list of apps which can be configured Overlay with Application Control and Recent Apps Utilizing the tray for Favorite Apps As Omni is about freedom of choice, we chose (swidt?) to implement this as a standalone application (link coming soon) so that if you don’t like it, or don’t want to use it, you will have absolutely no side-effects to your experience. Most of the features, except for application control, will work fine. However for controlling applications like killing them, OmniSwitch needs special permissions that are only available if it is installed as a system app. It is for this reason that we chose (grin) to include it inside of the build. Note: the application control features will only work on Android 4.4.x and when the app is placed in /system/app-priv. Most of the configuration options should be self-explanatory, consisting of settings to define location, look of the drag handle, the overlay, and the favorite applications list and their order. One noteworthy setting is “Auto-hide.” In order to prevent accidentally triggering the OmniSwitch, this will change it to a two-step activation mechanism. The first swipe will show the drag handle for 3 seconds, and the second swipe with activate it. OmniSwitch Settings Favorite Apps and Order Application Control Buttons Handle Location and Size OmniSwitch is of course an ongoing project, and we welcome involvement. A few of the things that are already on the TODO list are: allow using as a replacement of the AOSP recents view enhanced favorites support e.g. support of favorite folders to structure favorites or something like an app drawer to start any app OmniSwitch is up on our github, so feel free to contribute via...

read more