Category Archives: Developer Blog

Dev-Blog: The Long Goodnight…

Hi All!

It’s been a while since the developer’s blog has been updated, with one thing or another taking precedence over the immediate need to  use this space.

This, overall, is a good thing.  Nothing to post about usually means nothing to lament over.

We’ll have to see how this one goes.

OctOs has seen many changes and iterations over the past few years.  We’ve had false starts and failures in some things, success and triumph in others, but we’ve always been forward looking and adamant in sticking to the core values we established when we started.

And what a journey it has been!  We’ve seen 3 new major revisions of Android, numerous minor revisions, changes to the codebase we use, and an explosion in users who enjoy OctOs.

We’ve opened the code to the community builders and those builders have shown that the concept of open, and freely shared, code can be successful in ways we couldn’t have imagined when we started.

The OctOs code has reached outside the neighborhood we started with and will continue to grow, evolve, and with small luck, prosper.

But, even the good times have to end.   The sun sets no matter how much we prop up the sky or fervently wish and hope otherwise.  Time passes, and sometimes, that long darkness has to be acknowledged, addressed, and endured.  Conditions and situations force our hands in life, and it is never easy or pleasant – just the way it is.

OctOs started out as a ROM for the Galaxy S4 platform.  Everyone had one, that beautiful flagship for the Galaxy line.  We quickly expanded to the Galaxy S3, because that little device was so ubiquitous it would have been silly not to.  Indeed, so widespread was the reach of the Galaxy S3 it is still being sold today.

Problem: People wonder why some devices get all the love, while others do not.  The Galaxy S3 for Straight-Talk/TracFone, for example, is identical to the Galaxy S3 for Verizon, except for the SIM card, but no one developed a working recovery or ROM for it.  Why?

Short answer?  Developer’s want to develop for devices they have.  The advantages of being able to have the device in-hand means being able to troubleshoot issues without waiting or relying on the knowledge and capabilities of an outside tester.  We feel we can work around this by selecting testers who fit our criteria – we have faith in them, they have faith in us – and its worked so far.

However, it means having those testers to test.  As time passes, devices change, testers move on, and the ability to do the full-flight testing we require before releasing anything to the public falls off.  Simply put, no testers = no ROM releases.

There are a few devices that are failing to meet our testing needs, and we are considering dropping those devices from our build list.  As in life, everything has to end.  There will come a time where the device has to be put on the the shelf, like many of our other toys, and remembered fondly and with good cheer; but only as a relic of the past.

Some of the devices simply do not have the userbase they once had.  The Galaxy S4 VZW and AT&T models had their bootloaders and kernels locked by the carriers, making it impossible to enjoy custom ROMs after a certain baseband.  The XDA threads for those devices are full of custom TouchWiz ROMs, but not much else.  The desire hasn’t dwindled, just the ability to fulfill the need.

Other devices have the userbase,  just not the exposure.  The Galaxy S4 in the International, T-Mobile, and Sprint editions come to mind.  Those devices have the ability to continue using custom ROMs; but  the lack of testers prevent us from releasing ROMs.  There is only so much time and effort that can be split among the devices, and these devices are ones the team no longer have.

We are calling on those who enjoy OctOs to get the word out for finding potential testers for the Galaxy S4 devices.  We can give it a little more time, but we are willing to close the entry on that chapter of the OctOs history.

Unfortunately, those chapters of OctOs history aren’t limited to devices.  This will, in all likelihood, be my last post to the Dev Blog, or indeed, to the Team OctOs community.  I will try to finish up some projects I have in process, but I can’t promise anything.  Circumstances change, and the long goodnight applies to all.  The entropy of life is inescapable and is applied evenly across all demographics.  If you’ve read this far (tl;dr), you already know such a decision isn’t made lightly and without cause.  It isn’t a team thing.  It isn’t a tester thing.  It’s simply a life thing.  Just know I’d be here if I could 🙂

For those in the US, I hope you had a safe and happy 4th of July.  Anytime we get to handle explosives en-mass, it can’t be all bad!

As always,

Toodles!
– Grommish

There be Dragons here…. Pt 2

In the previous blog post, we touched on some of the inherent dangers with playing with a very expensive, technical toy.

In the end, everything worked out alright, but some have asked and it’s honestly one of the more… interesting?… adventures I’ve been on.

It was the initial build for a device.  Bad things happen (see previous entry), and the guy is left with a system bootloop.  Wouldn’t boot, it happens.  Somewhere in the flash process, he managed to corrupt his recovery.  Again, reference the previous post.  The ROM does not contain a recovery image and cannot touch the recovery partition in the flash package.

This was a Samsung device, so break out the ODIN and get it working again.

Download TWRP, load ODIN, flash.  We’ve all been there.

What?  The PC doesn’t recognize the device?  Did you try the back ports?  Change cables?  Other devices work?  I think your USB port is hosed.

Had a bad USB port.  Never used USB to transfer files and it was charging.

Ok..  So, you need to replace the USB port.  It sucks, but you gotta do it.  So he goes to a local shop and explains the situation.  Sure, sure! We’ll fix it, come back in 2 hours.

* two hours later *

Here you go.  Sorry, the port was all kinds of jacked up (haha get it!), melted, etc.  So we tossed it.  What? You wanted it? Sorry man, you couldn’t have used it anyway.

Turns out, the shop screwed him.  Told him they did the work and probably never even cracked the phone.  When he told the shop what happened, they figured it was bootlooping and he wouldn’t ever get it fixed anyway, so why not?

He took it to another shop, who actually did the work, and the PC once again began recognizing the device.

Reflashed TWRP, and it didn’t take.  My suspicion is that something broke the partitions.

So, we had to track down a stock TAR-ball image, get it pulled and then flashed.  Flashed without issue.  Then reflashed TWRP and he was back in business.

Oh, did I mention the user was half-way around the world?  10.5 hours ahead of eastern US time.  Everyone all around had to really want it.

This situation turned out OK.  I’ve had some devices fight me, but I’ve not had a super-brick moment.  I am, however, aware it can happen at any time.

Flash safe in the New Years!

Toodles!
– Grommish

There be Dragons here….

Recently,  Team OctOs put the word out for testers.   As part of the standard warning,  we often remind people we are looking for testers who can recover their phone should the worse happen.  At times, I use the analogy “melt your phone” and others (I believe its CM) talks about the ROM “eating your cat”.

Hyperbole, but only just.

It seems to me that people tend to treat their mobile devices much different than their normal PCs.  People who will refuse automatic updates on Windows because they want to comb through the changes and make sure things aren’t going to break have no issues testing new releases of Android in general, and I’m not just talking about the tin-foil hat crowd who thinks Microsoft wants to capture videos of your reaction to “The Fap’pening” leaks.

Your phone/tablet/wearable generally costs twice as much as a modern mid-level PC, yet people give it no thought.

Testing, in any environment, has inherent risks and dangers and requires knowledge and skill in the mitigation of these risks.  People use the terms “Brick”, “Soft brick”, and “Hard brick” often interchangeably (and incorrectly).

Soft brick means the phone does not function as intended due to a software issue.  This could be a bad flash, corrupt ROM, etc.  These types of situations are recoverable by whatever low-level functionality the device has for it (ODIN for Samsung, for example.  nvflash is another).

Hard brick means the device is dead and beyond recovery, like when you have a device-specific partition that you delete without a backup *cough Dubbsy cough*.  These types of bricks are just what it sounds like.  You’re device is now a brick, and usually usable for parts.

Our Android testers assume much of the risk by testing our builds prior to public release.  They go in knowing the dangers that can happen and are confident in their ability to re-mediate the situation should the worse occur.  But there is ALWAYS a danger when flashing devices, as much as we’d like to minimize it.  Bad downloads, the nature of how the flashing process works, bad luck and karma of the user, a vengeful Odin tossing lightening-bolts to your local power grid, etc.  Your Android device isn’t Johnny5 and “anomalies” are almost never synergistic.

I cannot stress this enough.   If you flash your phone, you run the risk of bad things happening, period.   If you are not prepared to handle the consequences, you should not be flashing your phone.  This goes for any ROM, including restoring to OEM Stock.  I’ve seen ODIN flashes go bad.

We appreciate the people who test for us.  I’ve written our love-letter to our testers in the past because of this, and we still mean it.  For the devices we own, we test prior to letting even the testers have it, because if I’m going to break a device, I want it to be mine – I can usually fix what I break and am in a better position to do so than most.

I’ve heard concern from some of the Team about posting this, afraid I might chase away people from the ROM.  To this I say “Good”.  Know the risks, if you are not willing or able to handle the fallout, you shouldn’t be doing it.

Toodles!
-Grommish

 

Deathmatch has a whole new meaning…

Normally, these are Team OctOs ROM and/or team related, or at the very least Android related.

This will not be one of those posts.  So, if you have no interest, SKIIIIP.

Ok.. For the rest of us.

https://www.kickstarter.com/projects/1246820613/blood-sport-the-ultimate-in-immersive-gaming

and the Polygon article I found it at.

For the tl;dr crowd: Electronics that turn the rumble pack in your console controller into a switch for a venipuncture machine.

It’s stupidly simple. Remember the rumble pack? Well, nowadays most video game controllers rumble when you get shot in the game. That rumbling means that an electrical signal is being sent to the controller to let you know you’ve been hit. All we’re doing is re-routing that same electrical signal and using it to turn on the blood collection system.

Yeah, I can’t wait!  What? Oh, the kickerstarter gas been suspended.  Shocker!

Imagine: World Game Championships for all your favorite combat games!  CoD, Battlefield, Guacamelee!  Can you set variable draw rates?  Can you give a handicap to Pro players who mix it up at a Pro-Am?  Cap it at standard pint, test it (no “enhancements” allowed! Your “athletes” now. Quite bitchin’), and donate it like the plan suggests.  Have all of it overseen by medical staff and trained phlebotomists administering the whole deal.

Have the Red Cross hook up with some corporate sponsors and give the winning individual $250,000 after tax, call it an “awareness campaign” and everyone wins.

Have you’re qualifying rounds at the local, regional, semi-final levels.. Collect $25 at each level, straight play, no blood draw.  They go into this knowing the final one will be “live”.

There will be no end of amount of people who would want to “bring it”.  You could have 2 or 3 a year.

You fill the pint, your out!  You faint, you’re out.  Everyone plays standing, so literally last person standing wins.

Throw it on Twitch for a premium.

This is really what we’ve come too.  Ah, well.

Canada probably wouldn’t allow it – I bet the US would!

I’d watch.

Toodles!
– Grommish

Busy as… What We’ve Been Up To.

In the past, we’ve publicly stated our team mission was to create the ROM we’d want to run.  To get there, we’ve dealt with compatibility and code issues, long work, and luck.  We did this with the caveat of offering a vanilla AOSP experience, with the ability to customize to the level of the users comfort.

When dealing with a project of any significant size, from time to time you have to stop, take stock, and amend.  Does the project still meet the intended results?  It was taking more and more effort, time, and energy to justify the expense, and then suddenly it didn’t.

People have asked what was going on, as it’s been a long time since we’ve had a release.   And I’m here to tell you what we’ve been doing.

We’ve rebased Team OctOs OctoKat to use CarbonROM, and will continue to do so moving forward.

In doing this, we are able to extend and build on the fantastic work put our by CarbonROM.  It also allows us to work on the ROM proper, rather than trying to merge upstream changes and seeing that they don’t break.  With the change to using CarbonROM as a base, CarbonROM maintains the source code repositories for the vast majority of the nuts and bolts code, leaving us with the User Experience.  For the technical, we maintain a list of the repositories locally kept (meaning, not CarbonROM’s) are found on our GitHub.

Many of the common device files CarbonROM uses are part of the larger CyanogenMOD format, which means we gain access to many device repositories maintained and updated by people other than us.  Also means we can actually make use of those devices.  The rebase also opened up the ability to create custom recoveries for virtually every device we support.

But most importantly, it allows us to even begin bringing OctOs Goodness to Android 5 (I refuse to call it “loli”).  Without this rebasing, we saw no good way to quickly and reliably get from where we were pre-rebase to A5, logistically or otherwise.   Rebasing allows us to do that, and I refuse to apologize for it.

We make, in my ultimately biased opinion, one of the best user experience ROMs to the devices we support.  We just allowed that to be better.

We have been privately testing the new builds in-house, and will be releasing the rebased code to the testers here shortly.  While we feel it’s ready to go, our testers are very good at breaking things for no reason.  I wouldn’t expect them to have it long before giving it the go ahead for public distribution.  Keep watching our Google Plus Community, Twitter, and Facebook page, as we’ll post there first.

Questions, Comments, etc?  Hit me up on Google Hangouts or email me at grommish@teamoctos.com

Toodles!
~ Grommish

BECAUSE THAT’S HOW WE ROLL…. (Pt 2)

As promised in the last Dev-Blog (found here), we went all out to work on a “proper” photoshop image of Dubbsy and Trekken, as the original photo was accused to being a cheap one.  Here now, is what we came up with.

Originally posted “photoshopped” photo:

OctOS.Conference2

Newly Improved Photoshopped version:

OctOs

We work hard to produce quality works, and thanks to an Anonymous comment, we felt we needed to uphold that.

In the future, we will do better.   Promise!

Toodles!
– Grommish

Because That’s How We Roll….

As promised, public replies to feedback.


Sender Name: Anonymous
Sender Email: Happytohelp@gmail.com
Sender IP Address: xxx.xxx.xxx.xxx (Find location for this IP)

Definitely not trying to be a dick. The picture on the “roots” tab on the website is totally photoshoped, I’d look into replacing it you want people to take you serious. BTW great Rom keep up the awesome work.


Dear Anonymous,

While we appreciate the comments, the lack of vital return contact information means, unfortunately, we are unable to actually reply.  While I have no issue with saying “this is from me”, you seem to.  I understand, completely, the compulsive need to hide behind a shield for something like this.  After all, with the NSA listening, the riots in Ferguson, MO., the earthquakes in wine country (estimated $4 billion lost), and the Emmy awards being too close to call (this is being written 8/25/14 @ 8pm EDT), I can totally get the angst you must feel when looking at a picture of 2 grown manly-men in a conference room and access to a projector, just makes you grind your teeth and swear at the universe.

We get it.  It makes us swear inexplicably as well.  Truth!

Unfortunately, it is with a heavy heart, sad tones, and saggy testicles that I must inform you, and the rest of the world, that we simply aren’t professional enough to Photoshop  that picture.  At the time, we figured reality was enough, and it bit us in the ass Sharknado™-style.  For this, we apologize.

Luckily, we own up to our mistakes.  When the security bug for FakeID was publicly announced, we immediately pulled all of our builds from the public and got it fixed (Reference http://bit.ly/1vHMXlw and http://bit.ly/1t7DxS9).

For this, gentle Anonymous Internet denizen, we will do no less.

 

OctOS.Conference2

This is the picture in question.   For those who follow our antics, on photo-left is Dubbsy, and photo-right is Trekken.  Behind them is a conference room.  At the top is the projector and, at least in this picture, it was running.

Now, given the fact that the OctOs logo was created by the team, for the team, it was trivial to get the vector image  Yes, as you can see, we can’t always agree about OctOs vs OctOS vs Octos, but we manage.

We are currently dropping everything to create a photochopped image consistent with our level of standards.  In a true test of the Internet, see if you can spot the changes.  It won’t be easy, but nothing worth doing ever is.

And remember, anytime you have to preface what you say with “Not trying to be”, you probably are.

Toodles!
– Grommish

Ads? As If…

We frequently get questions regarding why we decide to go in a given direction.  We follow the concept of Bayesian probability/inference.  This tells us that as new information becomes available, we should re-evaluate the situation.  We always are willing to do this, but it doesn’t mean the stance changes, only that we are always willing to listen to arguments for or against it.

Ads and ad blocking has consistently been one of these topics.

So, this will help clarify our position – for now – regarding this.

We do not include facilities for ad blocking, including modifications to the HOSTS files.  The monetization of applications or webpages is a necessary process these days, and we do not begrudge developers who use this route.  Indeed,  I’ve recently added advertising to this website.  It isn’t much, but anything that helps offset the costs is worth it.

Developers have the choice and various tools to serve advertising in what they create.  Some do, some don’t.  Recently I saw a theme on the Google PlayStore that put, in the app’s description, if you didn’t want it to force close you needed to PAY for the full version.  This smacks of lazy devs in my mind.  My solution?  I don’t use it.

You have the choice to do what you want with your device.  There are plenty of third-party hacks, mods, or applications that can block advertising and you, as the individual user, are welcome to use them as your needs see fit.

We won’t put in the ability for you to block these ads out of the box.  If you don’t like the advertising for a site or app, simply don’t use it.  If the developer has 15 ads per page, pop-ups and pop-unders, then don’t go there.  Or, alleviate the situation on your own – We just won’t include it in the ROM.

There are tools available to you do this yourself if you choose, just not from us.

Do you have specific questions about why we do things?  Send me an email: grommish@teamoctos.com

Toodles!
– Grommish

God is an Iron…

God is an iron,” I said. “Did you know that?”

I turned to look at her and she was staring. She laughed experimentally, stopped when I failed to join in. “And I’m a pair of pants with a hole scorched through the ass?”

“If a person who indulges in gluttony is a glutton, and a person who commits a felony is a felon, then God is an iron.”

– Spider Robinson, God Is An Iron (1977)

This is what I get for tempting fate.  The last entry was about the sanctity of the repo; Anyone want to guess what happened to it?

*double facepalm*

For the past 3 days, we’ve been toiling mightily on getting the code-base back to a build-able state.   In order to build, one must destroy – but I digress.

We’ve revamped the build system, and a few other things, to keep up to date with the goings-on in the Android world.   Some things are fixed, others are still in the works, and a third category to encompass “things that are yet to be” (meaning, they are on the back burner).  New devices are coming, as we get them working.  As well, existing ones are getting overhauled and updated to bring them into spec with others.

At this point, we’ve semi-formally implemented a modification freeze, pending updating and verification of existing devices.  Of course, this doesn’t stop us from reading suggestions, but it does mean that the pace of things might calm down a little.  The belt and braces model of things dictate getting the house built, then remodeling.

Now that the housekeeping has been taken care of…


 

My Anti Anti-CM Harangue

CyanogenMOD (CM) is a very polarizing topic – Either you love it or hate it.

Yes, I consider it a topic rather than simply an Android ROM.

Too many folks consider CM to either be the digital second-coming, or the bastion of (feckless) evil.  It’s neither.

For the first crowd, anything not CM related is probably worthless and will eat your cat.  For the second, CM will still eat your cat, but will cackle mercilessly while doing it.  Let’s face it, CM is the Gold Standard for custom Android Platforms.  I’m not reluctant to say this publicly.

CM has the sheer scope in numbers and background to manage fixes and enhancements beyond what Google provides.  Quick Settings, for example, with the awful long-press to activate setting in AOSP is atrocious in practice.  I can’t even begin to wonder what was going through the minds of the original devs who decided this was going to be a great idea.  Its ass-backwards and counter-intuitive.  Someone along the line inverted it on the CM platform, and life was good (TouchWiz also provides this, never checked on Sense).  Indeed, it was such a wonderful thing we’ve included the option of selecting which style you want in OctOs.  Does the fact the original idea (but not the implementation) originated with CM?  No, not at all.  Somewhere, sometime, someone said “I want this” and made it happen.

CM isn’t evil.  They, like us, do their own thing – and do it well.

If you want to pick a cause to roust yourself out of chair for, here are a couple of suggestions.

Repo Etiquette

7-11-2014 10-53-24 AM

Repository.

In Android, we use definition three to define a self-contained storage vessel for code.  The ROM is nothing more than a collection of smaller, individual projects that all come together to create the single ROM proper.  These repos, in our case, are kept on our Github.

Repos are sacred.  They represent the code we work hard for, in its raw state.   We do our best to make sure the repos are intact for anyone who wants to build OctOs.

As a PSA, I find it distasteful when someone outright demands push access, and then throws a fit when I say “No”.  In my head, its akin to walking up to someone and saying “Nice to meet you.  Can I bang your girlfriend/boyfriend/spouse/SO?”  It’s uncouth, to say the least.

The proper  way to handle the situation is this:

  1. Fork the repo you want to use to your GitHub – This is true if its our repos or from someone else.
  2. git clone your repo locally
  3. Make whatever changes you need to get the device/change to work
  4. Push modified repo to your Github repo after testing
  5. Submit pull request.

We will either pull your changes, or simply fork your repo back (as appropriate).  In either case, we’ll put you front and center with things dealing with your repos.

We are reorganizing how we do things.  We are working on a Gerrit site, but it will be down the line.  Gerrit is a great tool for people adding blobs anonymously, or simply outside the Team.  But, right now we want to know who is sending us stuff, get to know them, etc.  This seems to be best way to deal with it given current circumstances and situations.

Questions? Comments?  Hit me up grommish@teamoctos.com

Toodles!
– Grommish