The BlogX Chronicles
Android Chrome Bookmarks DisappearEvery-time I opened up my "Mobile bookmarks" on the latest version of Chrome for Android the bookmarks would appear for a few seconds then the screen would go white and they would disappear.
Windows 8.1 - "Secure Boot isn't configured correctly"I upgraded the Asus UX31A Ultrabook to Windows 8.1 and received the message watermarked on the desktop:
"Secure Boot isn't configured correctly"
I went into the BIOS (hold F2 as soon as you power it on) and confirmed that "Secure Boot Control" (under the "Security" tab) was "Enabled" (and couldn't find anything further on the Microsoft troubleshooting page).
The event log also erroneously said it was disabled:
"SecureBoot is currently disabled. Please enable SecureBoot through the system firmware."
However, playing with the option "Fast Boot" (under the "Boot" tab) and setting that to "Disabled" ended up fixing it.
The option for "Fast Boot" has a description of:
"Enables or disables boot with initialization of a minimal set of devices required to launch active boot option. Has no effect for BBS boot options."
Presumably "Fast Boot" skips the additional boot loader checks in the hope of making the computer boot faster. Windows 8.1 will however watermark the desktop if it cannot validate the authenticity of the boot loader.
Android Maximum Number Of SMS Messages / CursorWindow LimitI've been meaning to post this one for a while (well since 24th August 2012 to be precise) but I discovered a limitation in Android (evident particularly on my HTC Desire S where after around 6,000 SMS/Text messages I can no longer open up that contact's messages and was just stuck on the "Loading..." screen).
Further diagnostics (adb log) revealed the following:
E/CursorWindow( 1673): need to grow: mSize = 2097152, size = 243, freeSpace() = 53, numRows = 6205
E/CursorWindow( 1673): not growing since there are already 6205 row(s), max size 2097152
E/CursorWindow( 1673): The row failed, so back out the new row accounting from allocRowSlot 6204
This leads us to : how to load more than 1 MB data from sqlite db to android cursor?, Android SQLite and huge data sets and Do you delete old text messages?.
It turns out the SMS application that HTC created pulls back all the data when you select a contact instead of paging, which after 1 or 2MB (which happens to be approximately 6,000 text messages per contact and "max size" appears to vary based on the implementation of Android) it hits the limitations of the CursorWindow. 2097152 bytes = 2MB, whereas the StackOverflow post references 1048576 bytes = 1MB. The number of SMS messages this represents of course depends on how many of those messages are multi-part SMS and the size of the message.
Interesting that Android has this limitation in the first place (and most of the phones come with the default setting set to purge messages after a certain number presumably for this very reason) but definitely one to be aware of when developing your Android applications (i.e. you should be paging if you expect your application to scale!).
I found the relevant code in the Android source code in code as late as Android 4.0 Milestone Release 0 (git/libs/binder/CursorWindow.cpp):
LOGV("not growing since there are already %d row(s), max size %d", mHeader->numRows, mMaxSize);
the wording was then changed in the next commit, but similar code exists even today in Android master (it was relocated to git/libs/androidfw/CursorWindow.cpp in Jelly Bean):
ALOGW("Window is full: requested allocation %d bytes, " "free space %d bytes, window size %d bytes", size, freeSpace(), mSize);
So with this massive database that was now inaccessible what did I do?
Well, I archived off the text messages using the built in SMS backup option which archived it off into some proprietary HTC SMS format (not overly useful but guaranteed to contain all the data), SMS Backup (free) and SMS Backup & Restore Pro (currently £1.49) which I selected because they required the minimum of permissions (of concern when dealing with personal data like text messages).
SMS Backup logged the messages out of order but was free (not a deal-breaker as you can always sort it in other tools), SMS Backup & Restore logged them in the correct order but the backups may have taken longer because of it, it also supports a schedule. Finally to actually delete messages over a certain time period I used Delete old messages.
I love these applications for having got me out of this mess without needing to delete anything and have never looked back. At the time, the recipient and sender of the 5k+ messages was rather keen to point out that her iPhone did not have this limitation as it was paging them in the first place, I blissfully ignored that remark though .
This weeks random photo is from entry 629 "Aww Rubber Ducks!"
|Have a suggestion on what should go in the BlogX press? Contact our team of editors|