Make FYT/Joying apps fit for split-screen mode - Android Head-Units

Hi,
Like I mentioned in "my" Joying PX5 review thread, I was (and still am) happy with the Joying PX5 and the nicely functioning split-screen on Android 8 like I mentioned in my video review on youtube.
What I didn't like at all was that the FYT/Joying apps lack the split-screen functionality (see here), which is so easy to accomplish, like I explain a little later.
It only requires one line in the AndroidManifest.xml.
I also mentioned that the Joying/FYT apks are signed which made it impossible to hack them because a changed AndroidManifest makes the signing invalid, which is why I can't do this..
Wrong!
By completely internally renaming them inside every smali file (for example from com.syu.bt to com.syu.btss -> ss for splitscreen), recompiling them and giving them a completely different signing it works. It took me only 15-20 minutes per apk. Of course I used some linux commands to do this for me. On Windows this would have taken much longer.
See images attached. I hacked the radio app and the BT app.
I'm the first to admit that in their current state they look horrible as the layout is not designed for split-screen, but that is not the point. Android also gives you easy options for your layout.xml files on how to behave in splitscreen mode: almost automatically.
Anyway: Making them ready for split-screen was the easy part. Reworking the layout files to adapt automatically to split-screen will take more time, which I don't have at the moment but it is a nice target to go for.

Nice!
I am looking forward to the day when this mod is incorporated into JET.

Related

[Q] Real-Phone AVDs for download?

I'm semi-adept at programming, and I've got a pretty good game on the Market (Porcupine Assassin, if you wanna check it out).
Long story:
Problem is, some features work on a "grid" system, which generates it's layout on startup based on the phone's physical properties. Now, I only have a G1 and the grid system works fine on it. But a user has received an FC caused by "Array Index out of bounds" which means the grid system was trying to access a section of the grid that was not generated. It wasn't generated because the user's phone has a difference screen size than mine, and obviously the grid failed to adapt properly.
Short story:
I need a way to download emulator AVDs that are identical to real-life phones. I don't have the know-how to reproduce them myself (I use a basic AVD for all my testing). Is there a site that has custom AVDs for download?
I seem to recall an option when installing my AVD to set the screen resolution. I poked around and didn't find any way to change it once it's installed though.
With my x10 I went to the se dev site and there was a preconfigured avd. I'm assuming other companies do the same. Hope it helps

[CODE] HTML5: toDataURL on Android browser

Can't believe that it almost took me a day to implement a tiny rendering change in my Vexed/HTML5 port. A little backstory:
I know there's already a good Vexed port for Android, but since I needed a web version, making it compatible with Android seemed like a good idea. It's still missing a lot of details, like a menu, manual or win/lose messages, but if you want you can play it here:
http://www.tapper-ware.net/data/devel/web/games/JS.Vexed/
The buttons used to be rendered using CSS3 border-images, which work on Android (at least 2.3+, haven't tested any other versions yet), BUT they are slow as hell. Apparently it's hitting a fallback path that renders the element much like you'd do on legacy-IE with behaviors... meaning that there's also a lot of tearing since the element that you apply the border-image to basically becomes a set of 9 image elements as far as rendering is concerned.
So I decided to implement my own border-image using Canvas (you can find it at line 168 of the HTML file: HTMLImageElement.prototype.renderAsButton)... after all, drawing border-images isn't exactly rocket science.
So far so good: it was working beautifully, but somehow I couldn't get it into my CSS... after basically checking every part of the chain with manually created data urls it really didn't make any more sense, so out of pure desperation I decided to take a look at the data url returned by HTMLCanvasElement.prototype.toDataURL, which was a ... surprise. This thing is wrong on so many levels it never should have shown up in any code. Not only does it not throw and ERR_NOT_IMPLEMENTED, it even returns data to cover the fact that it's not implemented, namely "data:," which doesn't throw an error when used as an image source.
The general workaround seems to be that people use a custom toDataURL implementation that outputs a Windows BMP file... which would be great, if Android supported 32-bit RGBA BMP files. However they usually end up as if they were 24-bit RGB files.
So if I wanted RGBA, i had to create PNG files.
The PNG spec is really very readable and makes it easy to implement a PNG encoder... but there are two shortcomings:
1. The only filter method available requires a filter byte at the beginning of every row. So you can't use the return data of getImageData directly (Array.prototype.splice doesn't work on ImageData, you have to copy it first).
2. It doesn't support uncompressed data directly... and compressing in JS seems like a bad idea. Instead you are supposed to use and ZLIB stream with raw blocks
It also has CRC checks which are annoying for our purposes, but not that hard to implement (you can find my implementation at line 94: Array.prototype.crc32). Costs a bit of performance, but wouldn't be a major problem by itself.
But the reliance on ZLIB proved to be a major annoyance, because the documentation (RFC1950 & RFC1951) is lacking... to put it mildly (the relationship between those two documents is never really mentioned, meaning that you're always guessing if a header belongs to the stream or the block). The endianess is also switched from what PNG uses, meaning that you end up with two different types of integers in the same file. I ended up mostly analyzing THE GIMP's output for uncompressed PNGs (and could have finished everything much earlier if I hadn't tried to work my way through the spec first). The most important part from the spec is the definition of the ADLER32 checksum (line 85: Array.prototype.adler32), which sadly is required for each ZLIB block, meaning that creating a PNG involves calculating two different checksums for (mostly) identical data.
But my little PNG encoder is working now, and in difference to other implementations that I've found, there's no 64kb limit as my implementation splits every stream into 32k blocks correctly. However, it's not as fast as it could be and if there's interest I'll happily put the code in a project if other people want to help improve it or maybe even add proper compression.
EDIT: THE CODE IS NOW PART OF AN OSS PROJECT, SEE THE NEXT POST
I might not check this forum at the time, but you can always reach me at [email protected]
I've published the Javascript-PNG-encoder workaround over at http://code.google.com/p/todataurl-png-js/ under the GNU Affero General Public License, version 3 license in case anybody wants to join and add compression or just general optimization. Just drop me a line if you want to be added to the user directory.

[REPO] The library thread

Hello everyone,
Based on the release of the new forums here, and the seemingly enthusiastic response, I have decided to create a repository of libraries that are useful to Android developers.
Libraries:
AChartEngine : This is a library that lets you make and display all kinds of charts, from line to bar to scatter charts. A very good solution, should you need charts.
Uses: Well... Charts!
Made by 4ViewSoft.
ActionBarSherlock: This library will help you in maintaining an easy-to-use and consistent UI across all version of Android above 2.1.
On Android 3.0+, it will use the native ActionBar, and below that, a backport of the 4.x native ActionBar has been used. Note that this is not needed if you want to target APIs that support the AB natively.
Made by Jake Wharton.
aFileChooser: The basic version of Android File Chooser, it features somewhat less graphical hints about, for example, your current folder, but does provide a somewhat cleaner UI.
Uses include a simple file chooser for opening a file from a specific folder.
Made by Paul Burke.
android-hybridchoice: A ListView that lets users open a single list item, while also letting you select one or more other items. This way, you can (for example) view a mail while selecting others to throw away, instead of having to do that separately.
Uses: Making any app with items that have detailed info in a ListView that can be changed.
Made by Kiran Rao.
android-lockpattern: A library for you to include a lock pattern in your app. It was adapted straight from Android source code, and is very useful for keeping data secure.
Uses: Root apps, apps with sensitive data or other apps that could hurt one's phone.
Made by Hai Bison.
Android FileChooser: Helps you in letting the user select a file. A visual GUI is made available to you and the user, through which the user can navigate to select a folder.
Use cases: A file explorer, a downloading action, moving/copying files, etc.
Made by Hai Bison.
Android Maps Extensions: A library that extends a number of Google Maps API v2 features. It features things like marker grouping, where it won't display individual markers when there's a lot of them together.
Can be used in an application with a Maps View, to make it clearer and easier to understand.
Made by Maciek G
Android Proxy Library: This lets you provide an easy and better (than Google's) solution to the Android Issue 1273 (OF DOOOOOOOM!). It allows you to easily get the proxy settings of an Android device.
Uses: You know, getting the proxy settings.
Made by Marco Pagliari.
BetterPickers: A cool library that implements the Android 4.2 Clock time picker for you to use in your own apps as you please. It is a very nice way to keep your app Holo-themed, and it continues the push for a consistent UI in Android.
Among others, uses include clock and calendar apps.
Made by Derek Brameyer.
Build.prop Tools: A library to get access to the properties in a device's build.prop, which include its codename, Android version, CPU name and others.
Uses: Having to edit or otherwise get access to certain build.prop entries in your app, for example to display system info.
Made by Jonathan Haylett.
Cieo: A library that lets you animate text. It is currently in very early Alpha stages of development, but does work.
Uses: Word games, for example Hangman, where you can add a little extra to make it more dynamic.
Made by Igor <LastNameUnknownException>.
DroidParts: This library helps you add the most used parts of Android apps without problems. It can help you add a number of more complicated parts that have been modded to be simpler, like an ImageFetcher and an improved ASyncTask.
Uses: Just about every app can do this. Easier everything!
Made by Alex Yanchenko.
droidText: A PDF creator library. Should you need to create a PDF easily, this is the library you want!
Uses include parsing user input and saving it to a PDF file for later use, or to send (i.e. via email).
Made by Markus Neubrand.
EventBus: This helps you tie together Activities, Fragments and background threads. It eliminates the need for overly complex listeners and interfaces, to make your life a lot easier.
Uses: Apps with background threads, Activities and/or Fragments working together.
Made by Markus Junginger.
FlipView: A FlipBoard-like animation to use for scrolling. Give your app a little extra eye candy, when you have multiple pages to scroll through.
Uses: News readers and other apps that separate content into clear "pages".
Made by Emil Sjölander.
GAST (Great Android Sensing Toolkit): A library to help you use an Android phone's internal sensors. It will help you control many sensor, including NFC, the camera and the accelerometer.
Uses: A diagnosing app, or one that uses certain sensors for controlling an app feature.
Made by Greg Milette and Adam Stroud.
GoogleDateTimePickers: TimePickers done right. A beautiful replacement for Google's standard DatePickers and TimePickers, It is designed with the Holo style in mind, and makes it much, much easier to select the date and time of your liking.
Uses: Letting the user pick a date or time, e.g. when setting an alarm.
Made by Mirko Dimartino.
Hansel And Gretel: This allows you to visually display the Fragment Stack. When you open a new Fragment, it is added to a 'tower' of Fragments, from which you can also pop (remove) the top one. This library allows you to visually represent that Stack in your app.
Uses: If, for example, you travel through multiple Fragments within one Activity, you can show which Fragments the user has gone through.
Made by Jake Wharton.
HoloEverywhere: A library that backports the Holo UI design to earlier Android versions (like ActionBarSherlock does for the ActionBar). It uses the Android 4.1 Jelly Bean assets and makes them usable on Android versions 2.1 Eclair and up.
Uses: An application that needs Holo on all platforms it runs on. Be aware that it might disrupt the UI consistency for the user, so think about that before including this in your app.
Made by Sergey Shatunov and Waza_Be.
Inscription: For displaying information about your app to the user. It contains a ChangeLogDialog and a WhatsNewDialog, where the former displays more detailed information (version numbers, etc.) than the latter.
Useful for showing a dialog after the user updated your app, without having to write too much code.
Made by Martin van Zuilekom.
JacksonInFiveMinutes: A library to help in parsing and processing JSON, offering different ways to do so: A streaming API, a tree model and data binding.
Of course, you can use this anywhere to parse JSON data (Twitter apps, for example).
Made by Tatu Saloranta (?).
JazzyViewPager: Makes it easy to add a nice effect when changing pages with a ViewPager. Easily done: just add it, change some references and pick an animation!
Uses: Spicing up your app's animation portfolio, when using a ViewPager.
Made by Jeremy Feinstein.
ListViewAnimations: An easy way of animating your ListView items easily and nicely, to give your app that little bit extra.
Uses: To spice up any ListView that needs more fancies.
Made by Niek Haarman.
NumericPageIndicator: A ViewPagerIndicator 'plug-in' that lets you easily display which page you're looking at. For example, show "page 2 of 20" at the bottom of the page.
Uses: Letting the user know which page they are on.
Made by Manuel Peinado.
OrmLite: A library that simplifies database interaction in Android apps. It is designed to work with multiple database systems, including SQLite and MySQL.
Uses: Database creation, management in Android. Various DB systems supported.
Made by Gray Watson.
osmdroid: An almost full, free replacement of Google's MapView. It includes numerous functionalities, like a number of on- and offline tile sources.
Uses: To add a map to your app, and easily use functionalities surrounding it.
Made by a number of non-disclosed awesome people!
PDFViewer SDK: A free PDF viewer library that works well. However, it does have a watermark on the screen, and you'll have to pay to remove it.
Uses are obvious: Building all kinds of PDF viewers!
Made by GEAR.it.
PlayView: This helps you in creating a Google Play-like style in your UI, by extending the CardsUI library (which can be found in the PlayView thread).
Good to use in an application where you want a nice smooth UI, with a modular and changeable look and feel.
Made by Androguide.fr and GadgetCheck, among others.
ProgressButton: A nice library that shows you the progress of a download in the same button that you press to start the download. See Google Music for a working example.
Comes in handy when there's a list of items to download, and you want to facilitate easy downloading and keeping tracks of those downloads.
Made by Prateek Srivastava, based off of Roman Nurik's examples.
PullToRefresh: Expand a Listview (multiple versions are supported) with the ability to refresh its content upon pulling down at the top.
Uses include social media clients, lists of other network-based updated items (orders, for example).
Made by Chris Banes.
Remote Metadata Provider: Get system information about, for example, which music is playing on your phone. This could help you implement lockscreen music controls for your app.
Uses: Lockscreen music controls, for example.
Made by XDA member Dr.Alexander_Breen.
RoboSpice: A library that makes long-running asynchronous tasks easy. For example, it offers caching (very useful for orientation changes).
Uses: Any app that implements an ASyncTask, especially when it is a bigger and longer-running one.
Made by Octo Technology.
RootTools: This library will make it very easy for you to gain superuser access and execute commands based on that. This way, you can, for example, move and replace files anywhere on the system.
This is especially handy when you are making a sort of backup app, or when you need the ability to do things that aren't possible without root access.
Made by Stericson.
ShowcaseView: This is a library that lets you highlight certain areas of the screen. Just like the Android launcher on first launch (or YouTube), it will allow you to tell the user how to interact with what, and what it does.
Uses: Clarifying certain UI elements and their purpose to the user.
Made by Alex Curran.
SlidingMenu: This lets you include a menu that slides into your app from the side, like the YouTube app has it. There, you can add a whole hosts of options and actions that don't fit or belong in the ActionBar. SlidingMenu also lets you customise the menu. The new Android supportv4 library version, revision 13, also has a basic version of this.
Uses: Menus with additional items, like channels in the YouTube app, shortcuts to your app's settings, etc.
Made by Jeremy Feinstein.
Spring For Android: A library that helps you integrate some features easily. For example, it can simplify using REST in your app.
Uses: Whenever your app needs REST of auth support.
Made by GoPivotal.
StandOut: A library that enables you to make your apps float! Basically, you can make any app you want float. Look in the thread for numerous examples!
Useful when you are making an app that is also used parallel to other apps, like a calculator or note taking app.
Made by Mark Wei.
StickyListHeaders: This is a great way to help you order alphabetised lists in a clear and very recognisable way. The current letter which you are scrolling through will be shown at the top of the screen, for as long as the first letter of the top item on the screen starts with that letter.
Use cases are, for example, scrolling through songs, email addresses, names and articles.
Made by Emil Sjölander.
Sugar ORM: An easy way to use SQLite libraries in your app. It takes away some of the more complex and annoying tasks of database management.
Uses: Managing and querying SQLite databases in your app.
Made by Satya Narayan.
UpdateChecker: This library is a quick and easy way of making sure that users know about updates to your app. It will show a Dialog every 5 times (by default) the app is launched, informing of an app update being available in the Play Store.
Uses: Making sure people update your app. It is handy in just about every app.
Made by Pietro Rampini.
ViewPagerIndicator: This library emulates the multiple ways of showing tab locations without using the ActionBar. This can be used to replicate the Play Store, older Google+ versions, launcher-like indicators and more!
This library is always handy when using tabs, but without wanting to, for example, sacrifice too much screen real estate to use the ActionBar.
Made by Jake Wharton.
Sites, etc. collecting libraries:
Android Libraries provides a big list of libraries for all sorts of tasks, including graphics engines.
Android Snippets is a collection of little snippets of code to help you in navigating some commonly (and less commonly) seen challenges in Android development.
Android UI Patterns for all kinds of UI libraries, with a nice app to go with it.
AndroidKickstartR is a web-based tool for quickly starting an Android app, including a number of (library) options to help ease some of the pain of adding extras. Fair warning: this seems to include older versions of some things, double check the generated project.
AndroidViews for multiple nice UI-based libraries that help make your app look and work awesome!
DevAppsDirect is an app with examples of libraries. Test without setting up a whole new project!
ramdroid77's Google+ community for GitHub-based libraries.
Libraries for developers: A nice little app that has a collection of libraries available to developers.
Also make sure to spread the word about and contribute to this repo!
Have fun,
bassie1995
very helpful thread! thanks mate
roottools is also a very helpful library: http://code.google.com/p/roottools/
nikwen said:
roottools is also a very helpful library: http://code.google.com/p/roottools/
Click to expand...
Click to collapse
Forgot that one as a big one. Shame, since I used it . Will add in a sec.
Sent from my Nexus 7 using Tapatalk HD
I used this library to include a file-chooser in my App:
https://code.google.com/p/android-filechooser/
Click to expand...
Click to collapse
and forked this, that acts basically the same:
https://github.com/dentex/aFileChooser
Click to expand...
Click to collapse
xda_dentex said:
I used this library to include a file-chooser in my App:
and forked this, that acts basically the same:
Click to expand...
Click to collapse
I shall be including this later today. Thanks for contributing!
bassie1995 said:
I shall be including this later today. Thanks for contributing!
Click to expand...
Click to collapse
You're welcome!
Also the other project seems valid. If you want, point to the original repository.
The main difference is that it stays on the standard sdcard only, by default.
I also found a really good site with cool libraries: http://www.androidviews.net/
I'm sure I will want to include some of them.
xda_dentex said:
You're welcome!
Also the other project seems valid. If you want, point to the original repository.
The main difference is that it stays on the standard sdcard only, by default.
I also found a really good site with cool libraries: http://www.androidviews.net/
I'm sure I will want to include some of them.
Click to expand...
Click to collapse
Yep, I'm including both. Also, AndroidViews is already mentioned at the bottom of the OP .
Sent from my Nexus 7 using Tapatalk HD
bassie1995 said:
...AndroidViews is already mentioned at the bottom of the OP
Click to expand...
Click to collapse
Oops... Sorry.
Sent from my GT-I9100 using xda app-developers app
I'm running a community on G+ about Android libraries hosted on github. Tons of stuff in there:
https://plus.google.com/u/0/communities/100609058582053363304
ramdroid77 said:
I'm running a community on G+ about Android libraries hosted on github. Tons of stuff in there:
https://plus.google.com/u/0/communities/100609058582053363304
Click to expand...
Click to collapse
Nice, will include the link in OP.
I was going to mention androidviews too; a very handy site. There's also a handy little app out on the Play store called Android UI Patterns (free), which is basically an app with quite a few libraries built in, so you can see what they look like in action on an actual device.
And I'm not sure if I should post this, or if it should have it's own thread (paid libraries or something), but I would argue that as there are quite a few professional developers here, a compilation of good, paid, non viral licensed libraries would be a good resource. On the other hand, XDA is all about the homebrew, open, sharing community.
Anyway, whatever the mod-gods decide, I was looking for a good, cheap, non-gpl3 licenced PDF framework for the company I work for. Many frameworks were RIDICULOUSLY expensive and many open source ones were SLOW or not functional enough. In the end I found a good alternative at androidpdf.mobi . It's fully functional, affordable and they have good support. I know this may sound like an add, but I spent some time researching this, we now use it in production and figure I might save someone some time.
MacDegger said:
I was going to mention androidviews too; a very handy site. There's also a handy little app out on the Play store called Android UI Patterns (free), which is basically an app with quite a few libraries built in, so you can see what they look like in action on an actual device.
And I'm not sure if I should post this, or if it should have it's own thread (paid libraries or something), but I would argue that as there are quite a few professional developers here, a compilation of good, paid, non viral licensed libraries would be a good resource. On the other hand, XDA is all about the homebrew, open, sharing community.
Anyway, whatever the mod-gods decide, I was looking for a good, cheap, non-gpl3 licenced PDF framework for the company I work for. Many frameworks were RIDICULOUSLY expensive and many open source ones were SLOW or not functional enough. In the end I found a good alternative at androidpdf.mobi . It's fully functional, affordable and they have good support. I know this may sound like an add, but I spent some time researching this, we now use it in production and figure I might save someone some time.
Click to expand...
Click to collapse
I have seen and used Android UI Patterns, forgot to include it.
About the licensed libraries/technologies, maybe that's a good divide for this thread. Not between UI and functional libraries, but between paid and free? Don't think there are many paid libraries for daily use, though?
If you can link me to the PDF parsing library you used, I will be including that.
Also, everyone, updates are a little slow due to school work. Hardest exam that's yet to come is on Monday, will update it probably that afternoon (my time zone ).
Sent from my Nexus 7 using Tapatalk HD
The pdf library is found at androidpdf.mobi.
You can d/l the sdk and use it for free; you pay to get rid of the watermark on each page (the fee is per application, though).
I have come across some paid UI widget libraries (coverflow type things etc). It took me a while to adapt existing OS code to achieve the same kind of effect, so sometimes, if it's the right price, it's more effective to buy these kinds of things...
AChartEngine is a good one for charts and graphs http://www.achartengine.org/
MacDegger said:
The pdf library is found at androidpdf.mobi.
You can d/l the sdk and use it for free; you pay to get rid of the watermark on each page (the fee is per application, though).
I have come across some paid UI widget libraries (coverflow type things etc). It took me a while to adapt existing OS code to achieve the same kind of effect, so sometimes, if it's the right price, it's more effective to buy these kinds of things...
Click to expand...
Click to collapse
tmka said:
AChartEngine is a good one for charts and graphs http://www.achartengine.org/
Click to expand...
Click to collapse
Thank you both. I hope to be updating the OP tomorrow.
Sent from my Nexus 7 using Tapatalk HD
StandOut is a great library to create floating app :good:
Hello everyone,
I'd suggest also DroidText, for creating PDF files
Tiwiz
ciao99 said:
StandOut is a great library to create floating app :good:
Click to expand...
Click to collapse
That looks awesome, I think I'll try it myself
tiwiz said:
Hello everyone,
I'd suggest also DroidText, for creating PDF files
Tiwiz
Click to expand...
Click to collapse
Nice, a PDF creator! I'll take a look and add it.
To everyone: Sorry for not updating, exams are busting my nuts right now . I'll try and get some more in there today or tomorrow .
Sent from my GT-I9300 using Tapatalk 2
With the exams over and spare time at 1:44 AM, I'll update this again with all the suggestions from this thread. I'll add more "external" ones later.
EDIT: Done!

Sony Tablet Z Competition Entries

Below are the entries for the Tablet Z Development Contest (in random order). The subsequent posts in this thread have more details of each project including the developer's most recent information on the project. Before casting your vote, read through each of the projects in full - you can't change your vote after you've made it!
lilstevie - Open Source LK (LittleKernel) Bootloader + Recovery
Apache14 - Open Source Infrared Receiver & Transmitter Library
zacthespack - LinuxOnAndroid Project (Standard/ROM/Native)
sailnw - App for Sailors and Cruisers Using Waterproof Tablet (no link)
rayman - Tablet Multiboot Manager
anthonycr - Lightning Browser (Open Source Web browser)
bluefa1con - PAC All-In-One ROM
mamenyaka - Ubuntu Touch Porting
rydo88 - Tablet Z Smart House System
lilstevie - Open Source LK (LittleKernel) Bootloader + Recovery
What is LittleKernel?
LittleKernel is an opensource bootloader for qualcomm devices available from codeaurora.
Why LK?
TL;DR Version
LK allows running separate boot and recovery that are fully independant of eachother.
Sony use a special method of booting into recovery for their updates, this is not available when you are unlocked, and there is no button combination to enter this mode. As a result the common method to get recovery on Xperia devices has been to use an initrd that has a script to load either normal boot or recovery boot based on a button press. This is a far from ideal solution as when you update your kernel it also updates your recovery. If something goes wrong you are stuck needing a computer to reflash the kernel partition.
With the recent addition of TWRP support for the latest devices there have been advances made in this technique making recovery updatable it still requires the flashed boot image to support that method. This is less than ideal still as it reduces choice in what you want on your device, giving the decision to the dev of the rom you have flashed. This also leaves you in the position of needing your computer if a kernel update fails for any reason.
LK solves these problems by separating out boot and recovery to their own kernels with their own ramdisks like every other device, if you flash the boot kernel, recovery isn't touched and will be there for you as a failsafe in case anything goes wrong. This removes the need to have a computer near by in case of breakage occuring.
What progress has been made?
LK is operational, small bugs still need work and driver porting for lcd and notification led are underway.
Click here for the project thread
Apache14 - Open Source Infrared Receiver & Transmitter Library
I have been working on the open source library for allowing the use of the IR transmitter and receiver on the Tablet Z, At the beginning of this project I believe there was no other project looking into IR functionality in community driven roms (so this project was started from scratch).
As this project was started from almost no information about the IR device / protocol ect. there have been many stages of the development, this was split into 3 very distinct stages, please see below a lost of these stages and the progress made.
Stage 1 (Analysing communications)
This stage was mainly finding how the information was sent to the IR device and in what form. It was found that the IR device was connected to a tty serial port on the qcom main processor (ttyHSL2 in user space), from this I was able to "sniff" out the data sent and received by the application on the sony stock rom. This data was analysed and all possible commands where extracted (Get raw data, Send raw data, send specific key, get version).
Stage 2 (Create native library)
After the commands where known a library was created (in C) to enable the use of the IR blaster chip, this was a lot of trial and error as it was very timing specific (sleeps / poll ftw ). This part was surprisingly easy and i was able to get a working library that enabled learn and send command within a few days
Stage 3 (Create a application for everyone to use)
Once the library was completed to a point where it was usable, an application was created making use of the library as a JNI library. As I have little android java experience this is probably the weakest aspect of the project to date. This app went through a number of revisions and started off as 2/3 buttons for testing (this is illustrated below in the picture / video section. The xda member isimobile took one of the revisions and made improvements to the UI as well as using an SQL database to store the keys.
One aspect of the original plan that has not been explored is the robotics aspect, however this is mainly due to the amount of work required being much more than i first planned on.
Please find the links to source code (for library and app) as well as some videos and pictures to illustrate the projects timeline.
Library Src
APP Src
Early Application
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Current Application
Initial Test Video (day 1)
Initial App Test
I would like to finish by extending thanks to all at XDA and Sony who have made this competition happen and giving me this opportunity to develop a fun project.
Click here for the project thread
zacthespack - LinuxOnAndroid Project (Standard/ROM/Native)
As it stands below is the current placement with the three parts of the project:
Standard LoA - I have completed testing of all current images and everything works as it should, when running stock you must make the system partition r/w but this has all be added to my thread. In fact, this is the best device so far in terms of smoothness and actually usability over VNC.
However I have also made good progress with getting rid of VNC and using the Android frame buffer for graphics out put, so it takes more to switch between Android and Linux BUT you get a much better linux experience. I hope to release this in the coming few days once a few graphics glitch with Unity have been fixed.
LoA ROM - I have also started work on the ROM, getting my read around the ROM git structure has been the first port of call and actually getting my mods integrated into a repo so others could build is what I am working on at the moment. As it stands I have pretty much finished integrating the required code to launch and boot the images within the ROM so no need for a stand along app, just pull down the status bar and hit boot linux. Also added the settings for it all into the ROMs settings menu to make it all feel nice and one. I have plans then to integrate Linux and Android more, with the final result being a free version of everything Ubuntu edge can do but on hardware that you can actually buy
Native Linux - Only just started on this now as personal I prefer the other two parts of the project as I like to still have android at my finger tips when needed
So in all while I may have not completed as much as other projects I do think my project has a lot more to do and is certainly not something I will be stopping any time soon. Users already have access the standard LoA and I have started to see more Tablet Z popping up as installing the app, we also hope to push a 'alpha' of the ROM to the tablet Z very soon once the git is all sorted so people could integrate LoA into other base ROMs if they so please.
Click here for the project thread
sailnw - App for Sailors and Cruisers Using Waterproof Tablet
As I mentioned in the contest entry, the app I am working on is for active sailors and cruisers which would utilize Xperia Z's waterproof features and excellent form factor for use in salt water environments under way. At this stage I am collecting input from active sailors and cruisers regarding features and design of the app. Planning to have app flow and some screen designs in September. Also actively looking for project participants on the development side.
No forum thread is available for this entry.
rayman - Tablet Multiboot Manager
Goal: Create a multiboot solution for the Tablet Z.
The goal consists of two parts:
1) Ability to dynamically boot images without flashing them
2) A solution for picking the boot image to run.
Step 1 was completed within the first week after receiving the tablet,
and sources are available on my github.
Step 2 was much more complex. I first evaluated the solutions
currently available, primarily kexecboot(.org), MultiRom (TWRP-based
for N7) and petitboot. Common to all those solutions is that they are
overcomplicated. Some automatically scan for things that looks like
roms and some requires special made update.zip's. On top of that most
solutions are less than good looking.
With that in mind, I set out to create something extremely simplistic - the result is Hydra.
There are some minor features missing before it's ready for release, but the GUI and boot setup works.
Features:
* Auto-aligning grid of large, good looking icons for selecting image - currently a maximum of 10 images.
* Flashy buttons automatically created based on a target-specific image
* Optimized graphics display to ensure smooth rendering
* Automatically append required commandline arguments
* Read boot configuration from a simple boot.ini format - supports boot.img's and raw kernel + ramdisk + cmdline setup.
* Auto-boot a default image after a configurable timeout
Planned Features:
* Per-boot.img runtime settings - planned but that's for version 2.0
* Scrollable grid - allowing for more than 10 images.
* Automatically locate boot.ini's in a boot subdir on all storage units that are mountable. This means autodetecting available images on microsd or usb harddisk.
Some Images:
Click here for the project thread
anthonycr - Lightning Browser (Open Source Web browser)
I've kept the source code updated on github (https://github.com/anthonycr/Lightning-Browser). A direct download to the latest beta is here (https://github.com/anthonycr/Lightni...s.apk?raw=true), and a description can be found on the main project page.
What I've accomplished:
- added a History page
- added better bookmark layout (fixed bug in full-screen mode)
- better full screen URL handling
- added some more animations
- incognito mode (does not record URLs visited or searched, and runs without cookies for extra protection)
- notify user of SSL certificate errors
- popup tabs now work
- fixed bug where certain sites wouldn't display until touched
- better full-screen video (flash is still partially broken… it’s Adobe's problem)
- memory management
- HTTP authentication
- multiple search engines
- ability to change download location
- text re-flow
- ability to import bookmarks from either the stock browser or Chrome if you are signed in
- text size
Current Screenshots
I haven't had much feedback in the Tablet Z forum, so I've mostly been working off the feedback I've been receiving in my main thread in the application forum. It's a lot more lively there.
Thanks! I've had wonderful time developing with the Xperia Tablet Z.
Click here for the project thread
bluefa1con - PAC All-In-One ROM
Information about this project is available in this PDF document: https://dl.dropboxusercontent.com/u/20579840/PAC/PACmanTabletZ.pdf
Click here for the project thread
mamenyaka - Ubuntu Touch Porting
I am mamenyaka from XDA. My project is about porting Ubuntu Touch to the Tablet Z.
My thread is located here, and you can also check out the Ubuntu wiki page of the device.
Ubuntu Touch is running in a separated container on top of an Android kernel, so it is made out of two images: the device image and the ubuntu image.
The ubuntu image is provided by ubuntu in the form of a .zip file.
The device image is built by me, and it is based on CM.
To install Ubuntu Touch, you just need to flash the two .zips in recovery.
The journey
The first step was to build the device image and remove unnecessary Android components. Some hacks were needed, because some components relied on external parts of CM that were excluded from Ubuntu Touch and some proprietary blobs were missing too. And there were some modifications needed by Ubuntu Touch, documented in their porting guide.
After successfully building the image, it turned out that WiFi and the Camera didn't work.
The WiFi needed some extra binaries and the kernel module itself needed to be loaded manually at init (insmod). But the WiFi is now working, and that is the most important part. Without it no development can be done with the Ubuntu SDK, because it downloads and installs a lot of packages on the device that are necessary to deploy your QT/QML apps.
The camera was fixed partially by acquiring the right blobs, but the Camera app itself is buggy, I think. Maybe it will be fixed in future releases.
All my work can be found and reproduced by using my github repos (the ones for Sony) and by following the porting guide.
The future
As Ubuntu Touch is making the switch from being "just another Android shell":
Instead of booting into android and firing up the Ubuntu system after
android has booted, the new images now boot into Ubuntu and initialize
android inside an LXC container during boot.
the development will continue. Sadly, from 07-12 until now there has been no new porting guide, so the ports do not work with the new image (yet) and the development of the old format has stopped. Until then I am releasing updated images and experimenting with dual boot. In the xda thread I wrote a little tutorial on how to do dual booting with Ubuntu Touch and CM based Android ROMs, but it's not the real thing, but it works without the need of a PC (no need to flash boot.img via fastboot).
Click here for the project thread
Click here to make your vote in the contest - the password is 'xdasonycontest852'
rydo88 - Tablet Z Smart House System
No response received asking for project update. Information below taken from project thread:
As for the hint, I’m going to start with two of them, as I didn’t add one last week. This project originally began as part of this prescient home and then I decided I could adapt part of it to be more fun than practical.
1. A great place to set down one’s drink.
2. Tabletop gaming.
What I’m calling the proof of concept project was put together while moving. It starts with a secret… I’m a bathroom reader. Okay, so maybe that’s not a huge secret (books and magazines strewn around the bathroom is a bit of a giveaway), but it’s not exactly a polite conversation topic. It was conceived while describing the project to a friend who pointed out that he doesn’t cook, but there was an alternate use he found noteworthy (i.e. reading the royal reports on the porcelain throne). Henceforth this will just be described as the book preparation device (or BPD to save some typing). The materials needed are superglue, a sharp knife (preferably something like an Exacto), an NFC tag, and a magazine that you don’t want to read anymore. Use the superglue to laminate a block of pages together, either the whole magazine or just a section large enough to house the NFC tag. The one I did was about a 3 inch square through the whole magazine, excluding the cover. This also left the edges loose, providing a more authentic magazine look, rather than a big mess of superglue. Once this is set and dried, outline the NFC tag on the block for the pattern to cut. Cut and remove layers until you’ve made a cavity large enough for the tag to fit. Snugness is a personal preference, I left mine so that the tag was removable, but a tight fit and some glue could make this more permanent. Sony’s native Smarttag software works well for this application. Just customize the options so that the tag (blue in this case) triggers the tablet to open Play Books. A nice feature of Sony’s application is that there are ‘end’ actions, so a second contact with the tag causes a second set of actions to occur. I set this option to return to the home screen and read the time aloud (so that I know how late I am to wherever I’m headed). Once this is set up, leave the magazine near your reading chair. Place the tablet on the BPD as you sit down and presto! Your book is opened, as if by magic. When you’re done reading, set the tablet down again, stand, stretch, and poof! Your tablet has closed the book, told you how long you were lost in it, and is ready to travel to the next project.
I’ll add some pictures and a video here before too long. Maybe even a witty/catchy acronym to rename the project.
Concept:
To utilize NFC and other features of the Tablet Z in order to produce a system which causes the tablet to perform actions in a semi-predictive matter.
Methodology:
I intend to modify items to produce convenient and unobtrusive ways of integrating NFC tags. This will provide the infrastructure for the system. On the device, software will be used to carry out instructions specific to the tag and other variables.
To put my sciencey talk into a more tangible example, take for instance the kitchen. What function would be handy for a tablet to perform by itself? The most obvious answer to me, is for it to open up a recipe. In order to accomplish this, I intend to create a stand with an integrated NFC tag, which would trigger the tablet to open a recipe app. Depending on the software side (which I plan on mostly using existing apps, as I'm not much of a coder), I would ideally have the system cross reference a menu that's been planned out (i.e. that you had planned for meatloaf on Monday night, the tablet would open directly to a meatloaf recipe). As a starting point, it will likely open to a random recipe. For anyone following along at home, the action should be easily modified on the software side. Perhaps some people prefer to catch up with HBO or listen to some Sinatra while cooking. The idea is in the same vein as the whole home-of-the-future concept.
This concept will be extrapolated to several rooms.Other planned functionality would be to automatically turn on the TV in the living room, play music in the den, set alarms in the bedroom, and perhaps a few other tricks along the way.
Before I wrap this post up, I'd like to say thanks to XDA and Sony for holding this competition and giving me the opportunity to create this project. I'd also like to say thanks to everyone who takes the time to follow the projects in this contest and hope that everyone has a bit of fun.
Click here for the project thread

Can Glowlight 3 ROM be modified to work on original NST?

I've been thinking about how all these new apps are out now that would work great on my old NST if only it ran a more recent version of Android. I saw on the old l337 thread that the NST is confirmed to be able to run more adavanced versions, but that we'd have to pull the files from a phone or other, much more powerful device, rendering the resulting ROM pretty much unusable.
Until, that is, the Nook Glowlight Plus and 3 came along. The NG+ and NG3 run Android 4.4.2. 4.4 Android could mean being able to run apps like Overdrive and Libby, without workarounds. And that would be pretty sweet.
Now these are two different devices. I'm having a hard time finding data on the difference between the guts beyond the fact that the newer models have a higher DPI screen. I'd guess they have similar amount of processing speed to preserve battery life, though maybe more RAM.
I did a little googling, and I found this CM11 Mod but it looks like it it fizzled out after getting pretty close.
Do we think this can be done?
Was wondering about this the other day. There are an awful lot of NSTs floating around ebay for US$15 now. It would be fun to be able to breathe a little life into them, if only to use them for displays of calendars, to-do lists, or anything else you can do with more modern android apps
jptiger said:
There are an awful lot of NSTs floating around ebay for US$15 now.
Click to expand...
Click to collapse
The NST, NSTG and the first Glowlight used TI OMAP3621 processors.
The Glow2, 3, 4 use Freescale (now NXP) iMX6SL processors.
That's quite a difference.
I don't think that anything would be compatible.
jptiger said:
Was wondering about this the other day. There are an awful lot of NSTs floating around ebay for US$15 now. It would be fun to be able to breathe a little life into them, if only to use them for displays of calendars, to-do lists, or anything else you can do with more modern android apps
Click to expand...
Click to collapse
Oh, I'm going to promise not to look at ebay!!! Three devices are enough, even at that price. But it's very tempting. Too bad the NSTGs are rare as hens teeth and always high priced. Then there is a screen artifact issue. The one I finally got has three, but it's not too bad, I guess.
Other than watching movies or live TV (both of which, admittedly, are actually possible with the NST if you can stand it), it seems to me these devices are still wonderfully versatile. With a minimal installation of GApps you can have all the calendar displays you want, to-do-lists, etc. For some of these applications, there are still apps that work fine. For other uses (you dream it up) it's amazing what can be done with Tasker to create an app that looks like "the real thing". And while the learning curve for Tasker is a little steep, baby steps and lots of online help and examples are available.
The one clear drawback is almost anything that requires a login. The fact that Overdrive has not yet been hacked to address this issue is probably due to a lack of interest from a person with the proper expertise (not me). But really, selecting a library book on Opera Mobile from your local library? I'd sooner slit my wrists. Books can still be downloaded to a PC and then transferred to the NST via Adobe's software (or you can get around the whole DRM issue if you wish). And, you can get mobi format books from most libraries now and they will still magically appear in your Kindle app
That said, having flashed a Nook Tablet with CM 11 (KitKat), I can attest that there are still issues with that less-old Android version. For example, you can't view XDA properly in any browser. You have to go back to an earlier skin which has tiny print and is most annoying. In fact you can't get to some sites at all with any browser. And the OS returns SSL errors for some operations with other apps. So KitKat is no panacea. Even so, I like my Nook Tablet running CM 11. It's an 8 GB version and so has limited RAM and storage. Therefore I have scaled down my usual apps to some essentials and things it is really good at. In fact, it has fewer apps on it than my NST!
Every one of those NSTs on ebay is a treasure. But I'm not going to look!!!!
Renate NST said:
I don't think that anything would be compatible.
Click to expand...
Click to collapse
I meant as fas as kernel, various hardware libraries.
nmyshkin said:
Other than watching movies or live TV (both of which, admittedly, are actually possible with the NST if you can stand it), it seems to me these devices are still wonderfully versatile. With a minimal installation of GApps you can have all the calendar displays you want, to-do-lists, etc. For some of these applications, there are still apps that work fine. For other uses (you dream it up) it's amazing what can be done with Tasker to create an app that looks like "the real thing". And while the learning curve for Tasker is a little steep, baby steps and lots of online help and examples are available.
The one clear drawback is almost anything that requires a login. The fact that Overdrive has not yet been hacked to address this issue is probably due to a lack of interest from a person with the proper expertise (not me).
Click to expand...
Click to collapse
Thanks for the thorough response! I didn't realize you could do so much! I was envisioning having three mounted on walls in various places in my apartment, one with an interactive Google calendar, one with my to-do list from Any.do, and one with a local transit app that shows if there are delays on specific trains etc. (though I guess that one might wait until we're all using public transit again...) I've never used Tasker before, do you have any suggestions of resources or guides on getting it to replicate any functionality like this on an NST?
nmyshkin said:
Every one of those NSTs on ebay is a treasure. But I'm not going to look!!!!
Click to expand...
Click to collapse
Good luck! Save your money and vicariously help me do stuff with them?
jptiger said:
Thanks for the thorough response! I didn't realize you could do so much! I was envisioning having three mounted on walls in various places in my apartment, one with an interactive Google calendar, one with my to-do list from Any.do, and one with a local transit app that shows if there are delays on specific trains etc. (though I guess that one might wait until we're all using public transit again...) I've never used Tasker before, do you have any suggestions of resources or guides on getting it to replicate any functionality like this on an NST?
Click to expand...
Click to collapse
There is only one version of Tasker that will run on the NST/G (check your PM). It is designed to run in the background and execute tasks from shortcuts on the home screen or automatically start a series of tasks based on some trigger (time of day, opening a specific app, connection to WiFi, etc.). I originally used it to automatically start WiFi for apps that needed it. This is definitely a "baby step" idea. I don't use Tasker as a background service any longer. There is a companion app called AppFactory which takes your Tasker routines and converts them into stand-alone apps that anyone can run (with the caveat that either GApps must be installed or else two small Maps library files would need to be copied onto the device--actually this is a dependency for Tasker itself also). You can see many examples of "apps" I have created in this fashion in the last section of this forum. You design your own GUI to fit the NST/G screen. Tasks can vary from a simple activity call to website data scraping and massaging (definitely advanced) and more.
AppFactory will not run on the NST/G. It requires Android 2.2. I have a KitKat device which will run both the ancient version of Tasker and also AppFactory, so after I finish designing and testing the routines on the NST I move all the files over to the KitKat device and compile with AppFactory. The resulting app can be installed on the NST and behaves just like any other app (and does not require the presence of Tasker to run).
A lot of patience is required to get things right, especially if you want a full-screen GUI since Tasker seems to hate screen edges and when you edit a screen containing a near-full-screen image it tends to resize it a little smaller, throwing off other elements. Fixing this requires hand-editing the coordinates in the xml files which describe the scene elements. Also, because the file structure on the NST is not the same as on a KitKat device, references to images have to be edited by hand before (or after) moving files to the second device to compile. For example, "/media/" might need to be changed to "/storage/external_SD/Pictures/" or similar. Also, the touch screen on the NST is not always as responsive as we might like.
Finally, there is one one last fly in the ointment, so to speak. Tasker will not install on FW 1.2.2 for some reason unless it is resigned. When it is resigned, it ceases to interact properly with plugin apps (things like RotationLocker, or Minimalistic Text, as examples). The compiled apps will work properly, but testing on the NST is problematic if you are referencing plugins. On FW 1.2.1 everything works properly. Since I have three devices (gulp) I kept one on FW 1.2.1 to help me with this issue.
There is a Tasker Wiki with many examples, but just Googling will yield all kinds of things. There is a guy (Hollywood Frodo) who created all kinds of videos from the basic to the exotic and I found some of those very helpful. Finally, there is a Tasker Google group where--to judge by my personal experience--no question is too stupid!

Categories

Resources