[Asus Transformer TF700] lucius.zen:
Additional Resources

APPENDIX - USEFUL RESOURCES/TWEAKS/MODS

:

CROMi-X INSTALLER OPTIONS:

I select the following options during the CROMi-X installation process:

DPI - 200

Launcher - Apex Launcher

Sound Manager - X-Loud Audio Mod (Noozxoide)

Tweaks - Browser2RAM, Zip Align .apks

Apps - AdAway App

Hard Core Tweaks - Force GPU Rendering

DPI Settings:

DPI, or dots per inch, determines how images are rendered across the pixels on your display. Setting DPI to a lower value results in content looking smaller. Changing DPI settings will not impact performance. 240 DPI is standard for most tablets because it makes things easiest to see/use for the widest number of people. 200 is better if you use your tablet as a laptop replacement because more content can be displayed at any given time.

Launcher:

I suggest using Apex Launcher. It has great features that extend functionality if desired. The UI is also incredibly customizable and can be stripped down to the bare essentials. Disabling features and cleaning up the UI is more important to me than adding features. Apex also won an award for top 5 apps in 2012 from xda. Make sure you select "Lock launcher in memory" in Apex's "Advanced Settings".

NOOZXOIDE SETTINGS:

The optimal noozxoide settings depend on the speakers you are using. I am utilizing the following settings for our tablets built-in speaker.

Noozxoide Xlimiter Processor:

- Compress and reduce overload for smooth audio - Enabled

- Select Effect Strength - Hard

Noozxoide Balanced X-EQ Processor, Noozxoide Maxxbass Processor:

- Deliver balanced natural soundstage and premium bass - Enabled

- Digital Presets - Cinema

- Noozxoide VE-Engine - Stongest

Noozxoide Logic Surround ES Processor:

- Create VSUR on practical monitors and widen the soundstage - Enabled

- Create Room Size - Live

CROSSBREEDER MOD/ADAWAY APP:

The CrossBreeder Mod utilizes 5 techniques to reduce lag. See the CrossBreeder mod link in post #1 for further details. From my experience it noticeably improves web page loading speed and the responsiveness of apps relying on mobile networks. It also completely removes ads instead of covering them with the "Web Page Not Availabe" dialogue. In order to enable ad removal you will need the CrossBreeder mod and AdAway app (obtained via the CROMi-X installer or the following link - http://xdaforums.com/showthread.php?t=2190753).

Step #1 - Enable CrossBreeder:

If you did not install CrossBreeder during your system installation download the CrossBreeder mod and move it to your external storage. Boot into TWRP and install CrossBreeder (if you are flashing to a microSD make sure device nodes are set correctly). Wipe cache/dalvik and reboot.

Step #2 - Disable CrossBreeder's Governor & I/O Tweaks:

The CrossBreeder mod implements governor and I/O tweaks that may interfere with the application of the tweaks in this guide. To disable CrossBreeder's governor and I/O tweaks open a root explorer and navigate to the following file:

/system/etc/CrossBreeder

Next remount the /system partition as rewritable (see "Step #5 - Enable Your Script" in my guide to writing init.d scripts for details - http://xdaforums.com/showthread.php?t=2198510). Once your /system partition is mounted as rewritable locate the following files:

/system/etc/CrossBreeder/START_TWEAKING_GOVERNOR

/system/etc/CrossBreeder/START_TWEAKING_IO

And change their name to:

/system/etc/CrossBreeder/STOP_TWEAKING_GOVERNOR

/system/etc/CROssBreeder/STOP_TWEAKING_IO

Step #3 - Enable AdAway App:

Once you have rebooted open the AdAway app. Select "Download Files and Apply Ad Blocking". Reboot your system when prompted. All ads should now be completely removed.

REMAP DOCK KEYBOARD:

To remap the dock keyboard we need to edit the following file using a text editor:

/system/usr/keylayout/asusdec.kl

I suggest backing up this file to an additional location before you begin editing. To remap a particular key simply delete the function to the right of the key's number and replace it with the desired function. Once you are done editing save the file and reboot your tablet.

EXAMPLE:

key 142 SLEEP WAKE UNLOCK

key 142 FORWARD_DEL WAKE UNLOCK

NOTE - Invoking the APP_SWITCH function opens the recent apps menu.

NOTE - The files below asusdec.kl contain the keyboard mappings for various external keyboards (ex - generic PC keyboards). I suggest checking out these files as they contain numerous functions that can be remapped to our keyboard dock (ex - escape).

NOTE - For a list of useful keyboard shortcuts see the following thread - http://www.transformerforums.com/fo...list-shortcut-keys-keyboard-dock.htmlhortcuts

DISABLE APPS:

Disabling the following apps will not impact basic functionality, cause instability, or boot looping. However, I primarily use my tablet as a laptop replacement; therefore, I offload many functions that I find better suited to my phone (ex - location based anything, lockscreen, daydream, etc).

Asus Battery

Asus Sync

Basic Sleep Mode Apps

Bluetooth Share

Calculator

com.android.backupconfirm

com.android.lockscreen

com.android.providers.partnerbookmarks

com.android.sharedstoragebackup

com.asus.pcsynclauncher

com.asus.quicksearch

com.asus.youtubesearch

com.google.android.voicesearch

Gallery

Google Backup Transport

Google Partner Setup

Google Search

Google Text-to-speech Engine

Live Wallpaper Picker

Market Feedback Agent

Mobile Data

Mobile Network Configuration

MusicFX

Network Location

Photo Screensavers

Search

Search Applications Provider

Setup Wizard

Setup Wizard

Sound Recorder

Talkback

User Dictionary

Wi-fi Direct Share

DISABLE BOOT ANIMATION:

Disabling the boot animation significantly reduces heat production and battery consumption brought about by the boot sequence. Core temperature ranges between 44-46 degrees celsius following a cold boot with the boot animation enabled. Core temperature ranges between 38-40 degrees celsius following a cold boot with the boot animation disabled. To disable the boot animation add the following line to the bottom of your build.prop file (found in the /system directory) using a text editor:

debug.sf.nobootanimation=1

DISABLE EXT4 JOURNALLING:

The ext4 file system utilizes journalling as a safeguard against data loss. A journalling file system keeps track of write operations in a journal before committing them to storage. In the event of a shutdown brought about by a system error it is possible for write operations to be interrupted, which may introduce inconsistencies in the file system. Instead of doing an entire file system check the journal is examined for write operations that were potentially interrupted. Thus, journalling allows ext4 file systems to quickly recover from crashes as entire file system checks can be avoided. However, write operations cannot be executed until the journal is updated and actively maintaining a journal requires memory and processing resources. Therefore, disabling journalling is advantageous from a performance perspective. I have found that disabling journalling reliably produces an increase in performance. To test I ran through 5 trials in Quadrant with journalling disabled and 5 trials with journalling enabled. On average disabling journalling increased total score by 88.2 points. The minimum and maximum total scores out of 5 trials were also much higher with journalling disabled. These results suggest that disabling journalling is a reliable way to improve performance. Follow the steps below to disable journalling:

Step #1:

Download Disable_Journal.zip (credit - [MENTION=5313285]LetMeKnow[/MENTION]) from post #1 and move it to your microSD card.

Step #2:

Boot into TWRP and install Disable_Journal.zip (if you are flashing to a microSD make sure device nodes are set correctly). Wipe cache/dalvik and reboot.

DISABLE LOGGING/LOGCAT:

Logcat, the android logging system, provides a mechanism for collecting and viewing system debug output. Various logs from applications, portions of the system, and kernel are recorded in logcat so that users can debug system failures/crashes brought about by errors in processes. Thus, logcat can be an incredibly useful tool for developers, testers, and advanced users. However, maintaining logcat involves recording thousands of lines of data as processes are executed, which requires system resources. Despite logcat's usefulness as a debugging tool it negatively impacts performance. To test I ran through 5 trials in Quadrant with logcat disabled and 5 trials with logcat enabled. On average disabling logcat increased total score by 20.2 points. The minimum and maximum total scores out of 5 trials were also higher with logcat disabled. Therefore, disabling logcat is advantageous for users who do not require advanced debugging capabilities. To disable logcat add the following line to you init.d script:

rm dev/log/main

I/O SCHEDULER TWEAKS:

The following tweaks improve I/O performance by modifying parameters that control the behaviour of the I/O scheduler. Detailed explanations can be found beneath each tweak.

iostats - 0

Disables I/O stats, which reduces overhead.

rotational - 0

Optimizes I/O scheduler behaviour for non-rotating storage. Scheduler no longer uses logic meant to reduce seek times.

rq_affinity - 1

Forces the kernel to process I/O requests on the CPU core that issued the request. Improves the effectiveness of CPU data caching.

nr_requests - 1024

Increases the size of the I/O request queue so that more requests can be sorted before execution.

read_ahead_kb - 6144

Increases the size of the read-ahead cache, which improves the reading of sequential data.

To evaluate the effectiveness of the above tweaks I compared mean R/W speeds of various file sizes following the application of each tweak. The above parameters represent independent variables (experimental conditions) and R/W speed, measured via Android Tuner, represents the dependent variable. I subjected each experimental condition to 5 trials to control for variability in test scores. In the first set of trials no tweaks were applied in order to establish a baseline measure of R/W speed (baseline condition). After establishing baseline performance each tweak was applied and tested in a sequential manner (experimental conditions C0-C4). Following trials the mean R/W speed of each file size was calculated for each experimental condition. In order to compare the impact of each tweak the total mean R/W speed of each experimental condition was also calculated. Global R/W speed increased sequentially following the application of each experimental manipulation. These results suggest that all of the aforementioned tweaks have a positive and measurable impact on I/O performance. You can find an excel chart detailing my results at the following link - https://www.dropbox.com/s/ezkbenk1ruql9rt/Lucius.Zen - Scheduler Tweaks Data.xlsx?m=.

To apply the above tweaks add the following lines to your init.d script:

MMC=`ls -d /sys/block/mmc*`;

for i in $MMC;

do

echo "0" > $i/queue/iostats;

echo 0 > $i/queue/rotational;

echo "1" > $i/queue/rq_affinity;

echo 1024 > $i/queue/nr_requests;

echo "6144" > $i/queue/read_ahead_kb;

done;

echo "6144" > sys/devices/virtual/bdi/179:0/read_ahead_kb

TCP/IP PROTOCOLS AND CONGESTION ALGORITHMS:

TCP/IP is a core set of communication protocols used to transfer data over the Internet and similar networks. IP packets are the vehicle devices use to transfer data between an application program and a web host. They are comprised of a header, which contains the source/destinatin address (among other things), and a payload, which contains the actual data. TCP, part of the transport internet layer, provides intermediate communication between an application and a host. When sending large chunks of data a program can issue a single request to TCP instead of breaking down data into a series of IP packets and requests.

Due to network congestion and other factors IP packets are often lost. TCP maintains the ordered delivery of packets by detecting packet loss, requesting retransmission, reordering data, and minimizing network congestion. When a host receives a stream of packets it reassembles the data into the sequence that was originally sent. Once the receiver confrims the soundness of the data it sends a packet acknowledging its retrieval. To avoid overloading the connection between a program and a host this aknowledgement must occur before more packets can be sent/recieved.

For each connection TCP maintains a congestion window. The TCP congestion window is maintained by the sender and is used to prevent network congestion/overload due to packet loss. When packet aknowledments are received the size of the TCP congestion window increases exponentially until a timeout occurs or the receiver reaches its bandwidth limit. Thus, as more packets are acknowledged the maximum segment size (specifies the largest amount of data in a single TCP segment) of the congestion window becomes larger; every round-trip time the maximum segment size effectively doubles. A mechanism called "slowstart" controls the maximum segment size of the TCP congestion window. To prevent network overload TCP congestion avoidance algorithms modify TCP window size, "slow-start", and the slow-start threshold. Thus, TCP congestion avoidance algorithms have a significant impact on the speed of packet delivery between an application program and a web host.

Optimal TCP Congestion Algorithm:

NOTE - CROMi-X Users - The following tweak is applied by default in CROMi-X.

My research and testing suggests that "lp" is the optimal TCP congestion algorithm. Although "westwood" produces marginally higher download/upload speeds (see the following post - http://xdaforums.com/showpost.php?p=48088128&postcount=1884) "lp" results in a stronger connection between an application and a host; which is indicated by fewer timeouts, lost connections, and more responsive web browsing. This leads to the best overall user experience. To change your TCP congestion algorithm to "lp" add the following line to your init.d script:

/system/xbin/sysctl -w net.ipv4.tcp_congestion_control=lp