[Miscellaneous Android Development] surfer63:
Time to say Goodbye; Unfinished Projects

Last Sunday my Archos 7HTV2 got unusable. As you (might) know: The A7HTV2 only has soft buttons and many parts of my screen were not "touch sensitive" anymore for a few months already: Calibration didn't work at all (I always had to pack a backup of calibration settings for my own personal roms). Home key only in 90 degrees portrait mode, Menu key only in landscape mode, select "things" on the left side only in landscape mode again. Screen brightness in all ebook readers (left side swipe upwards/downwards) only in 270 degrees portrait mode, volume lower only in portrait mode), "progress slider drag" in movie players not on all parts of the movie progress bar.

Last Sunday suddenly two bigger parts of the screen didn't function anymore and about 30% of the screen is no longer "touch sensitive" (even though it displays correct) which makes it in practice completely unusable.

So I bought an new tablet: See here and here (both in dutch and commercial) and here (technical with custom roms). It's a 7" tablet with capacitive screen and got the Alwinner A10 CPU which is techinically an integrated Cortex A8, like the RK2918, or the not integrated Cortex A8's from the Archos A70 and A101 Internet tablets, but it's running at a higher speed. It's very fast(*) with the mentioned capacitive screen for only 99 Euros. I assume it's chinese build quality but who cares: In this fast growing and developing tablet market these tablets are out-of-date in 1-2 years anyway.

(*): Antutu bechmarks:

A7HTV2/froyo.21 {RAM, CPUinteger, CPUfloat,2Dgraphics, 3DGraphics,DB IO, total} = {80,192,16,217,45,65,615}

QwarePro3/ICS4.0.3 (not tweaked) {RAM, CPUinteger, CPUfloat,2Dgraphics, 3DGraphics,DB IO, total} = {400,633,161,285,1116,240,2835}

Now that leaves me to my "unfinished projects".

I just wanted to share my ideas with you. Ignore them or do with it as you like.

Flexibility in installing/uninstalling "default" apps.

In my last froyo rom 7htv2_froyo.21 (here) I added my install script that copies apks to /data/app (from apkcopy) when possible and installs apps upon first boot when necessary (from apkinstall). Both will install/copy apks to /data/app with the option to uninstall them from menu->settings->Applications. (That install script also comes with a source_dir variable HvdWdata, which you can easily change to JDfenseData or stevempdata to "write your author signature" to the rom).

I wanted to expand the apkcopy set with "default" rom applications that come with the tablet but are "replaced" by most users with apps from the market. So I wanted to place mail.apk, videoplayer.apk, gallery.apk, etc. to apkcopy which means they are by default in the rom but can be uninstalled by the user to give him/her even more control over his/her custom rom. mail.apk is hardly ever used but gets loaded on boot and takes system resources hanging in the background.

A rom without Google Apps but where a user can install these apps

Technically there is an unsolved licese issue with packing Google apps in froyo roms and older (I can't find anything about Gingerbread). Google's license says that you are only allowed to pack Google apps on a device if it can "make calls" e.g. a real phone and when it has GPS. Our tablets and most other tablets don't have that. That's why many tablet builders don't include the Google aps with their tablets even though many Chinese tablet builders do. As of Honeycomb and ICS, which are also real tablet versions, it is allowed (AFAIK as my googling tells me).

If you look at it from the darkest possible way, Google could sue eclair/froyo rom builders that include the Google Apps. But Google wants market domination (over Apple) and that's only possible if as many users will use it, so I was never afraid of that but you never know...

anyway: It's the reason that Cyanogenmod roms come without gApps as they were prosecuted by google. The gApps are not even hosted on the Cyanogenmod sites.

Both Archos and the Admin of http://www.arctablet.com/blog/ came with the solution of arctools(=arcHOStools). All internet tablets and G9 tablets are not delivered with google apps but with symlinks to "not existing google apps". Arctools downloads and installs the apps to a specific place and then the symlinks work. He (the arctools builder) is now spreading his support to other tablets as well. It can be downloaded from the Article ArcTools – Android Market and Google Apps installer for your Archos Internet Tablet.

I got in contact with the developer and asked him about the setup.

Now how does that work?

In /system/{app, lib, framework} symlinks are placed to /data/appsmarket/system/{app, lib, framework}/<file name>. Arctools downloads/installs the apps to that location and voila: it works.

In init.(rk28board.)rc you place

# Create basic structure for arctools
mkdir /data/appsmarket
chmod 777 /data/appsmarket
mkdir /data/appsmarket/system
chmod 777 /data/appsmarket/system
mkdir /data/local/appsmarket
chmod 777 /data/local/appsmarket

And in the build script I use (note that newsystem is my working build folder):

# Use arctools approach
sudo rm -vrf newsystem/app/GoogleBackupTransport.apk
sudo rm -vrf newsystem/app/GoogleContactsSyncAdapter.apk
sudo rm -vrf newsystem/app/GoogleCalendarSyncAdapter.apk
sudo rm -vrf newsystem/app/GooglePartnerSetup.apk
sudo rm -vrf newsystem/app/GoogleQuickSearchBox.apk
sudo rm -vrf newsystem/app/GoogleServicesFramework.apk
sudo rm -vrf newsystem/app/MediaUploader.apk
sudo rm -vrf newsystem/app/SetupWizard.apk
sudo rm -vrf newsystem/app/Vending.apk
sudo rm -vrf newsystem/app/VoiceSearch.apk
sudo rm -vrf newsystem/app/MarketUpdater.apk
sudo rm -vrf newsystem/app/youtube.apk
sudo rm -vrf newsystem/framework/com.google.android.maps.jar
sudo rm -vrf newsystem/lib/libspeech.so
sudo rm -vrf newsystem/lib/libvoicesearch.so
# Make symlinks for google Apps
sudo ln -s /data/appsmarket/system/app/MarketUpdater.apk -t newsystem/app
sudo ln -s /data/appsmarket/system/app/GoogleBackupTransport.apk -t newsystem/app
sudo ln -s /data/appsmarket/system/app/GoogleContactsSyncAdapter.apk -t newsystem/app
sudo ln -s /data/appsmarket/system/app/GoogleCalendarSyncAdapter.apk -t newsystem/app
sudo ln -s /data/appsmarket/system/app/GooglePartnerSetup.apk -t newsystem/app
sudo ln -s /data/appsmarket/system/app/GoogleQuickSearchBox.apk -t newsystem/app
sudo ln -s /data/appsmarket/system/app/GoogleServicesFramework.apk -t newsystem/app
sudo ln -s /data/appsmarket/system/app/MediaUploader.apk -t newsystem/app
sudo ln -s /data/appsmarket/system/app/SetupWizard.apk -t newsystem/app
sudo ln -s /data/appsmarket/system/app/Vending.apk -t newsystem/app
sudo ln -s /data/appsmarket/system/app/VoiceSearch.apk -t newsystem/app
sudo ln -s /data/appsmarket/system/app/youtube.apk -t newsystem/app
sudo ln -s /data/appsmarket/system/lib/libspeech.so -t newsystem/lib
sudo ln -s /data/appsmarket/system/lib/libvoicesearch.so -t newsystem/lib
sudo ln -s /data/appsmarket/system/framework/com.google.android.maps.jar -t newsystem/framework

The -t option specifies where to place the symlink. Omitting the third option in ln -s automatically uses the name of the file/folder as link name.

Now I wanted to upload a froyo gApps tgz (see here) to the ArcTablet admin so he could incorporate it in his arctools (and a little later do the same for GB), but I didn't get that far due to the issues with my tablet and I don't want to continue if I don't use it anymore myself. But I didn't want to completely abandon it, so I mention it here and I leave it up to you whether you want to use it or not for your RK2818 tablets. Actually it is a universal approach for every phone/tablet around.

Supercharger

This describes my findings. They should not be considered as the "truth, the whole truth and nothing but the truth".

I checked and analyzed all supercharger settings and came to a slightly modified version which I built into my own last Froyo v21 rom.

In pure, brute benchmark performance it doesn't make a difference, but I have the idea that the overall performance has slightly improved (as my tablet was already highly tweaked).

These modified superCharger v6 options can be found in the init.rk28bpoard.rc in four sections:

- some kernel parameters

Search for "Extra custom settings"

And three more changesets close to and below each other:

- "Define the oom_adj values"

I simply out commented the old lines and put in the new lines

- The memory thresholds

- the write values

- the lowmemory killer parameters

As mentioned: These are my findings, and results may vary on your tablets and with your kernels.

=====

I have now started to tweak my new tablet. It's rooted by default and it is completely(!) writable if you know how to simply "switch" that on. I can customize and tweak on the fly.

I want to say goodbye and thank you for the nice cooperation. I will occasionally come back (I think) but my first interest is now with "my other tablet".