Blog - progress so far with the Samsung Galaxy S3

Well the galaxy s3 is now getting released in more and more regions and from the reports we've had I'm guessing lots of people have been buying them!
 
We got hold of the UK version of the phone at the end of May and the app works pretty well with it. At the moment the main issue on the GSM S3 is the talkback bug. I've spent the last several days in communication with Samsung and they have now passed the issue onto their development team to investigate.
 
As many will probably know the hardware in the US S3 is different. Dual code compared to Quad and some variants with LTE.
Not only is the processor and radio hardware different but controlling of the LEDs is also different. At the moment the US S3 seems to have its color matrix mixed up, so issuing a code of Red will come out a totally different color. Putting out the color black (which we use when there's no notifications) causes the phone to display green.
 
Now this is a real headache for controlling the phone. At first my guess was that there was a color shift going on and maybe a little code addition would shift those color codes back to the correct positions, but it doesn't seem like there's any pattern to the colors issued. This is another issue I've been in touch with Samsung over and I've offered to provide them sample code to highlight the problem - which they want me to send to their R&D team in Texas. At the moment I've only got a postal address for them, but I hope they decide to send me an e-mail contact to speed up the process.
 
In the mean time we've not been sitting back waiting for a fix from Samsung and we've been hard at work comparing control between the UK and the US versions.
 
There's some good news and bad news about this. With the help of a few people (you know who you are!) we are now able to control the led with the correct color and are able to set blink rates. It's not built into the app yet, but the good news is we now know it's possible. The method used is bypassing android completely and controlling the control files by dropping through to the underlying operating system (UNIX) and manipulating the files there.
 
Obviously this is great news and a good step forward, with the plan to add the required code to light flow soon. The negative about using this process is that root is required.
 
Hopefully Samsung will make the necessary changes to the software on the phone so all users can control the leds, but at least for the time being progress is being made.
 
I'll try to update the blog as more progress is made.
 
 
 
Small update: I've now got a US model ordered and it's in the process of being dispatched to the UK for me to focus on this more.
 
Ok, now it's in the UK waiting customs clearance....
 
25 July 2012 - it looks like it should arrive with me Friday or Saturday this week
 
29 July 2012 - I've now got the AT&T S3 and I'm making good progress for users with root access
 
30 July 2012 - Just to add a little to yesterdays comment. With root access I'm controlling the led in the correct color. You don't get the always on green led and you can set different flash speeds. At the moment the issues are around the UI part of the app hanging in a few places for up to 30 seconds and also everything gets reset at reboot time until I go back into the app and reset some new settings again. I'm not too worried about either as the main thing is that the led control itself is working. I'm pretty sure root will be required for any solution though (unless Samsung fix the actual driver to accept the alpha channels - which is where the problem stems from). I did find rooting to be a pretty simple process and it only took around 10 minutes.
 
31 July 2012 - The boot issues have now been resolved (and may also fix startup errors that others were having with other phones).
I've read the few comments regarding root down below :-) . I will continue to look for a solution that doesn't require Samsung but as they are transposing their data incorrectly it may be totally impossible to control directly via android without root. When not rooted we can only send data through the android API so unless shoe-horning some data into the led parts of the API manage to pass through the correct values I'll be pretty much stuck unless Samsung fix things. Trust me, I want it to work for non-rooted users too. My own Galaxy nexus (which is my main phone) isn't even rooted!

1 August 2012 - App sent to beta testers.

2 August 2012 - Some problems noticed when running with the charger not being plugged in causing the led flashing to freeze for long periods of time (even if controlled outside of the app). Therefore it looks like only solid (non flashing) will be available, but using another method there's some control of flashing the same colors that Samsung do when they control the phone, so red, blue and pulsing blue - like on boot.

3 August 2012 - Beta seems to be working well so far

4 August 2012 - Working on a couple of bootup bugs for root version of app. Created sample app and letter to send to samsung regarding Talkback issue and incorrect color mapping on non-rooted phones.

5 August 2012 - still working on the bootup issues, making some progress but lots of changes to make everything boot smoothly. I know a lot of people are keen to beta test, but for the time being I'm being kept busy enough with the current beta testers and I'm therefore not pushing the app out to a wider audience until these issues are sorted otherwise it'll only slow me down trying to reply to everyone. Thanks

6 August 2012 - new beta out to testers to see if the bootup issues are resolved. They seem to be for me from the testing I've done so far.

7 August 2012 - boot issues seem to be resolved. Added in root control for international version of S3 (GT-I9300) so users can have the led on when the screen is on. Adding in some new app support while beta testing continues.

8 August 2012 - fix for GT-I9300 settings in root mode. Updated translations files for new languages added. Testing on non S3 phones.  Added support for another 24 apps. Started to prepare build for next release to play store (this usually takes about 1-2 days depending on if any issues are identified in the "lite" version of the app as development is all done on the full version)

9 August 2012 - it's here. Version 3.0.5 of the app has just been uploaded to the market. It may take a few hours to show but you should start to see it soon. Note that it's still only adding functionality for rooted users for the time being.

For those of you wanting to root, I had planned on providing a guide, but I'm probably not the best person to do so (I don't get much time for this kind of thing nowadays). If anyone has preferences to which method to use, put a comment in the blog.

10 August 2012 - ok, I think I've managed to get control of the LED for non rooted phones! It's a solid light, but it looks like the solid green light can be got rid of and then with some re-mapping of the incorrect color maps I may be able to get a real color list. I've had my phone running for about 9 hours now trying different combinations automatically at about 100 per second to come up with one that matches the command issued from the root version. It's also given me some insight into how the led color  has been mapped incorrectly by Samsung. It'll be a solid LED as the flashing has similar problems to root, but if I work out a way for root to make it flash I should be able to do similar for non-rooted phones.

11 August 2012 - I've managed to get the app working on non rooted phones. There's no solid green light when you've no notifications and when you select a color from the color list it shows the correct color. I've a bit more testing to do, but things are looking good.

At the moment the differences between the rooted and non-rooted version are:

  • Rooted version: the led stays on when the screen is on, not rooted it goes off (which is standard android default functionality)
  • The blue pulse and 2 flash colors are not available as there's no way to access this control file
  • If you use the "custom led color" option, those colors will be messed up as there's no way I'll be able to write that to issue the correct colors as the color matrix is too messed up, but the main default 18 colors all show up fine and you can still "play" with custom colors, just don't expect to get the color you chose!
12 August 2012 - Not much to report today, non rooted test still going well and I've been benchmarking the battery usage ready for trying to add in the flashing code (plus trying to work out in my head the best way to tackle flashing). Sounds simple, but it's quite tricky.
 
13 August 2012 - started work on the flashing code. I've got the led flashing, but there's still quite a lot to do to get it working, stopping and starting through the different color cycles.
 
14 August 2012 - making good progress on the flashing. Yesterday the flash color was incorrect (that's now fixed) plus now I'm managing to mix different flash rates with solid leds for different notifications (e.g. charging solid, gmail flashing etc) and actually make the flashing services stop when they need to. A few occurances where the state gets mixed up, so the solid will be off instead of on when it is its turn to show, but improving.
 
15 August 2012 - got flashing for root mode working, changed the flash rates to be better for less battery drain, added notification regarding more battery drain for flashing speeds. Default app to "Always on" for notifcations on USA S3's. USA S3 detected on startup of the new version and automatically set to the correct mode to work (unless you are already running in root mode). Now I just need to look into the "sleep mode" settings as they are getting ignored for s3's. Hope to have a beta very soon - but please don't send me lots of requests yet!
 
16 August 2012 - though I'd come across a show stopper for non-rooted users as the default blue flashing led that Samsung provide for missed events was overriding our notification (which is different to other apps raising notifications that I'd already tested). This meant things like gmail and missed calls were killing the app's control and Samsung's default behavior took over (another non-standard way to do things - thanks Samsung). Finally after a lot of scratching my head and having a play around I found a way to kill their blue light by cancelling it shortly after it's been raised. It's a real hack, but seems to work. For those familiar with android it's using a bit of "reflection" to access bits of android not normally accessible. Phew, after a day of worry, I think things are back on track!
 
17 August 2012 - I've been building yesterdays hack into the app and making sure it doesn't affect the user if the screen is on when a notification comes in. Due to the inconsistent timing of the blue led starting to flash after a notification it's been quite tricky, but seems to be working quite well now.
 
18 August 2012 - the app is now ready to go to beta testers for testing flashing for rooted users and also non-rooted functionality. All the required beta testers have been notified.
 
19 August 2012 - beta testing continues
 
20 August 2012 - beta2 issued to testers to try and fix a couple of issues and improve battery usage
 
21 August 2012 - positive reports from beta2 regarding the battery, beta3 issues to testers
 
22 August 2012 - finally I'm just in the process of releasing version 3.1 (based on beta3) into the market (erm I mean play store). This brings flashing for all colors for rooted users. Correct colors and no solid green light (plus flashing) for non-rooted users.
Things to note:
1. As expected battery drain is less with the led always on
2. When the screen is switched off it may take a few seconds for the leds to "settle down" (non-root users only)
3. There may be occasions where even if always on that the led will flash a few times temporarily. This is to work around the default "Missed event" notification that Samsung send to the phone. It's a bit of a battle to take back control and the way that works causes the leds to switch off for a brief moment. (non-root users only)
 
23 August 2012 - seems to be working for some people more than others. Fixing one or two bugs and investigating others. Note I've only one more day left to look at this before going on vacation (being from the UK I would call it a holiday :)   ) for a couple of weeks. Hopefully I'll manage to get another release out to fix some issues before then.
 
24 August 2012 - Anyone familiar with logcat who's got the blue flashing light issue?
If so I would love some logcat output. Go into light flow, tools, logging and select "console logging". Then run logcat, get a notification and wait for the blue light to start flashing (after probably initially having the correct color). Then send me through the logs to the e-mail address shown on the market. Thanks
 
It seems like the blue light issue is related to what method of security you have on your lock screen. If you have no security it seems to work, other methods seem to cause it to allow the default blue to flash. I think our code that's running behind the scenes it maybe not allowed to run that clears the blue light when the screen is locked.
 
26 August 2012 - a little update pushed out to fix a couple of minor issues, but now I'm off on vacation for a couple of weeks. Lets see where things are then (hopefully samsung may have pushed out their fix!) if they have, just switch off the s3 option in the settings menu.
 
12 September 2012 - I'm back and catching up with the current state of things skim reading e-mails and support requests I got over the last two weeks to look for patterns of issues and what to focus on. Battery use seems to be the main thing with the wake locks - I'll probably look at that first before looking into ways to stop the blue light if you have a pin/unlock screen set up.
 
27 September 2012 - I'm aware of the AT&T update that's been pushed out. It's causing the app to hang at the moment, but initial tests look like they have fixed the color issues, so once I've got the hang fixed fingers crossed the app should be back on track without all the s3 hacks!
 
Update 2 of the day: I've just sent out a beta version to testers which seems to be working without using the s3 hack (for AT&T I747 models). Therefore custom colors work, plus custom flash rates without using all the hacks previously in place. It'll also have the advantage of not hitting the battery trying to work around the issues.
 
15 October 2012: for anyone having issues with battery drain and familiar with "adb" could you try issue the following command:
       adb shell dumpsys alarm > dump.txt
when you have no outstanding notification, but still any wakelock issues? Then get in touch as I'm keen on seeing the dump.txt results and it will probably help speed the issue of fixing it up.
 
18 October 2012: Could people getting high battery drain try switching off "run in foreground" from light flow-> settings and see if that helps. I've had one report of this and seen the battery stats also.
 
25 October 2012: Progress being made towards the next release, translations for other languages in progress. I've also spotted that the external libraries that we use for wake locks have been updated significantly since we started using them, so I'm going to update the project to use these, hopefully this with a few other little changes made will help with the wake lock issues some users have.
 
31 October 2012: I think the battery drain issue has been found. Well actually there looks like 2 of them that users were coming across. Thanks for those who've sent logs as I couldn't have found them without them. I've got a couple of people testing them out at the moment and the results look very positive.
 
5 November 2012: Release 3.2.0 has now been put onto the play store and androidpit.
 
7 November 2012: Please don't post to the link below (unless you are the author of an android app that uses the accessibility service), but see the thread here http://developer.samsung.com/forum/thread/samsung-devices-and-accessibility-services/77/204387 for the progress on reporting the talkback and keyboard issues to samsung.
 
22 December 2012: Most USA & Canada S3's have now got jelly bean available for them (including Verizon). From reports I've had the app seems to generally work well with the following settings in Jelly bean.
 
- Firstly you've upgraded, go into your phone settings->accessibility and switch off and back on lightflow
- Go into phone settings->display->led indicators and make sure only "notifications" is checked.
- Go into ligthflow->settings and make sure "direct mode", "s3 root mode" and "USA/Canada s3 mode" are all switched OFF
Hopefully these sequence of settings should get things working.
 
30 December 2012: For those still on ice cream sandwich that are using AT&T or Verizon phones here are the links to upgrading:
 
Verizon - http://news.verizonwireless.com/news/2012/12/samsung-galaxy-s-III-android-jelly-bean.html
AT&T -     http://www.samsung.com/us/support/SupportOwnersFAQPopup.do?faq_id=FAQ00050358&fm_seq=55362
 
Breaking news - 25 Feb 2013
It seems like the upcoming version of android for the S3 should fix the talkback issue. I've just installed the leaked version (only available currently for the GT-i9300) onto my i9300 S3 and the talkback issues and keyboard issues seem to be fixed. Look out for an update coming soon from Samsung.