busybox, shell scripts, and device sleep - Epic 4G General

Is it okay to ask development questions here? I asked one a little while ago, and it got moved over to the General section, which doesn't make sense to me. Anyway, I'm sure the mod will move this one too if it's inappropriate to ask development questions in the development forum (puzzling, if true).
Regardless, on to the question:
I've been developing hardware and software for 25 years, much of it on UNIX and Windows. Know .NET, and other frameworks (X, in terms of UNIX) well. I'm brand-new to Android, though, and haven't taken the plunge yet to get a dev environment set up, and start learning the app frameworks. So, I'm working on some things via creating some rather sophisticated shell scripts.
I've run into two seeming bugs: Looping scripts, using sleep to go dormant, then wake up and do something, don't transition through a device suspend/wakeup cycle.
Intermittently, the OS will come back up with the sleep command stuck, pinning the CPU. This sometimes happens with the hosting shell, ash, as well.
In reality, both these processes are just invocations of busybox. So it's really busybox that's having the problem.
If I can work around this, I will have a very nice, clean, near zero-load ALSA solution for the pathetic default sound chip settings, adding substantial boost (configurable), balance control, and (future) control over output device (earphones, speaker, BT, earpiece)... and much more going forward.
I plan to reimplement all this with native code in a nice GUI app, but for now I'm doing proof of concept with shell scripting, and have hacked up a pretty cool real-time interactive configuration interface using curses-like ANSI terminal controls in ConnectBot (should work with any terminal app on the Epic as long as it supports ANSI standard cursor controls).
So, anyone have any insight/advice/help on this issue with busybox in it's "sleep" and "ash" command personas? One idea I had was to create a cron job to run every 5 minutes or so to check via top and see if either of these processes is running and chewing up the CPU, and if so, kill them off. I notice, though, that crond isn't running, so I'm concerned about what effect it will have if I start it up... Will it wake the phone up every minute to do it's job, thereby killing the battery? (that's how cron works, see the manpage).
Another solution would be to just put the native sleep and shell binaries on my phone, and call them. Sleep will be tiny, so no big deal there. But what about sh/ash/ksh/bash? In theory, should be comparable to busybox (in fact, I'd supect smaller), and as a side-benefit, could get the full scripting functionality of one of these shells (busybox has a few limitations).
Best of all, if there was a "I'm going to suspend" signal I could just trap in the script then I could deal with this in the most logical, direct way. Nirvana would be that signal, and a corresponding trappable "I just woke up" signal.
I'd really appreciate knowlegable dev's comments on these ideas, and any other suggestions/advice for how to deal with this.

Please post questions in General section.

We really need a trollface smiley.

Related

Repetitive Strain Injuries Apps

Desperately searching for a App (before it's to late) that works like RSI-guard or RSI-shield for PC, but have not found anything! Would buy this app even if expensive!
I think this app would spread and be a hit success, because more people are using their mobile phone for all kinds of things, and repetive strain injuries are common.
At the basics it would be a App with the following usage
at custom interval it locks the device from usage (ex. 4 minutes every 10 minute). Only you can do is call and answer call.
it provides short, medium, and long breaks.
A more advanced app would have the following options
warn before a pause is aproaching so you can finish what you currently are doing
when a pause, it provides animation of useful exercises
after x hours of device usage, it warns and suggest "lock until tomorrow"
For me, i became kind of addicted to my device, now kind of permanent RSI damage to my hand/arm.
Hey,
sounds interesting. I got rsi from playing guitar,
and you're right that would be a nice app.
I'll see if I can put something together.
Greets
Edit: After a bit of googleing I'm not sure if this is possible.
Seems like the lockscreen is not really accessible (for obvious security reasons).
So the device would just tell you to stop and dont lock,
at least that would be something i guess?
sounds good
some kind of pop-up that re-pops to front if pausetime is not out would be enough!
Alright. Ill give it a try tomorrow.
Greets
You can try to "program it" with Tasker...
Heya,
alright, I got a small prototype going on. It will still take a few days for me to finish this, university keeps me a bit busy.
I may have also found a way to enable device locking from dialogs and notifications, it's just 2.2. [Froyo] only,
if you own such a device and are interested I may look further into that. (Almost forgot they introduced that API)
See Device Administration API.
Just to give a small update.
So long,
Alex
i bought tasker, useful program. managed to get it to show a popup at different interval, what i wonder is, is it possible to make it lock the device for a number of minutes, i mean lock from any input (not show the lockscreen), or repopup the popup windows instantly as you close it
how is it going with the program?
(tasker was more than i needed, and drained battery on my device)

[Q] a guide to "non-convoluted android game programming"?

this question is actually about a small network of things: what the default android framework permits, how users use it and what engines can do.
after getting into android programming, it soon seemed to me that the android framework would require me to manage a lot of things i simply don't want to put up with for a simple game (e.g. i don't care about managing intents, creating xml-layouts and stuff like that... slap a couple of images on the screen and i'm fine - well... basically), i started looking for game engines.
after almost a month of research and tests (with default framework, andengine and libgdx), i finally whipped up a little prototype of the game i want to program using libgdx in just two days.
but then i noticed something...
the following issue might make the last third of this post irrevelant:
this game runs at 70% cpu usage on my desktop. even though i would only need to render on user input (it's a puzzle game). so i'm guessing it would use 20 times (or whatever) the battery of the phone it actually should.
since it seems to me "render on demand" isn't possible with libgdx, i figured i'd take another stab working with the default android framework and hope that this doesn't redraw like crazy even though it's not needed.
if such a thing is simply impossible, please tell me and i'll just keep on working with libgdx.
now, the most compact open source game example to learn from that i found is this:
http://code.google.com/p/asqare/source/browse/#svn/trunk/a2
after i tried it out and studied the code, i was stunned by how much stuff is being handled for this very, very simple game (pretty much as simple as mine). so i counted the lines of code... ~4200! while my libgdx prototype has roughly 800. sure, it doesn't have a preferences menu, no about screen and doesn't handle what happens on things like pause/resume but even with those things i highly doubt i'd get anywhere near that amount of code.
so:
IF it is indeed possible to produce a full-screen android app that draws images only on demand, is it possible to do that in a less convoluted fashion than in that 4200 line example?
i'm hopeful that this guy has simply overdone it and i've just been looking in the wrong places for slim examples.
Fyi I did not read 100% of your post, but I think I can help you out.
Imo do not waste your time with game engines. If you are serious about game dev then learn opengl. Its worth it.
With the glsurfaceview you can ether render on demand or as fast as possible. Also as with all opengl u have full control over what is rendered. If need be I can provide an example but it will have to wait a few days.
Sent from my MB860 using Tapatalk
actually, i've learned opengl in the past (but forgotten a lot already - didn't use those skills much) but a) i'll only do 2d games anyway and b) opengl isn't really the problem. getting to where i can actually render things is. and engines allow you to focus on gameplay/rendering without dealing too much with the whole setup and management of things.
i don't feel like libgdx takes control away from me, since i can still use all the opengl-commands i want. and i will definitely look up glsurfaceview and see how it fits into what i currently have. thanks!!
btw - i'm not really "serious". i'm a fulltime artist who happened to have learned about eight years of programming in the past and just wants to try to make a little extra on the side. and create some games i'd like to see but simply aren't out there yet.
and i don't want to spend more time programming all the management nonsense around it than the gameplay itself and working on the design.
I wouldn't rely on the cpu usage on the desktop. The emulator isn't efficient at all...
libgdx is a multiplatform engine, so that cpu usage is based on the desktop-version.
but it does use continuous rendering and can't be switched to on demand. tried to extend the classes of the engine and adapt them so that it renders in on demand for the last three hours without success...
but i've found a neat blog post on the android developers website called "The Simplest GLSurfaceView Application" and hope that i'll be able to find my way from there. after all, i now already at least have a nice full screen canvas with just 54 lines of code... that's something i did not expect i would ever see happening.

Moderator, please close. glossary refined and replaced

To the noobs: any technical jargon used in a definition should be defined elsewhere in the glossary. To the experienced users: I am a noob writing for other noobs, so please feel free to correct any glaring errors. I would like to keep the definitions both functional and phrased generally in layman's terms. I know I have left out a lot of details, some intentionally, some through ignorance. Further discussion is welcomed.
Glossary
*228 - This is the number to dial from any Verizon phone to activate it. Option 1 activates the phone (linking it to your number and account). Option 2 updates the data roaming, which can evidently enhance your data connection if done from time to time.
3 Finger Salute - Using 3 fingers, you hold down the Volume Up, Volume Down, and Power buttons on the sides of your phone. This will boot you into your recovery program. It can also be used to reboot a frozen phone without pulling the battery. This will not work on all ROMs, particularly those using MTD.
adb - Android Debug Bridge - This is a method to connect your home computer to your phone. Generally speaking, it requires properly installed Samsung drivers and the use of the usb cable that came with your phone. People use adb for all sorts of things, including rooting and salvaging a messed up phone. You may see forum discussions where people discuss coding terminology in little grey boxes. These are generally adb commands.
example: adb push something.txt /sdcard/something.txt
AOSP - Android Open Source Project - This refers to the fact that Google shares its Android source code with the world, perhaps its main differentiation from Apple. Any software developer can work with this code. Functionally speaking, developers create AOSP ROMs for the Fascinate. AOSP ROMs could be considered the most pure version of Android, or Android "the way Google intended."
.apk - This is the file extension of ordinary apps and widgets used in Android. If you have the .apk file of a certain app, and you know what to do with it, you can run that app on your phone.
Example conversation:
Noob: I really like this new ROM, but I miss the Samsung Program Monitor widget.
Expert: Just copy the .apk from Nitsuj's stock ROM onto your SD card and install it using Root Explorer
Noob: What's Root Explorer?
Expert: *sigh*
Auto Reboot - This is a check box in Odin. It determines whether your phone will reboot itself after flashing a file in Odin. It doesn't really seem to matter a great deal whether or not it is checked. There seem to be a lot of opinions on this subject. Generally speaking, leaving the box unchecked will not cause any problems.
Battery pull - Phones can become frozen in all sorts of awkward positions. They sometimes freeze on boot-up screens. They sometimes freeze on screens you won't even recognize. The traditional quick fix was to pull the battery out of the phone, give it a minute, put the battery back in, and then reboot. While this method often works, there is some evidence that it may be harsh on your sd card. The battery pull has essentially been replaced by the act of holding "Volume Up" and "Power" for a while (at least 5 seconds, maybe 10). Shutting down by holding these two buttons is widely regarded as safer than a battery pull.
BLN - Back Light Notification - This refers to a popular concept whereby the LED softkeys on the bottom of the phone will blink as a means of notifying the user of missed calls, new texts, emails, etc. Not all kernels are compatible with BLN, and it seems to be a hot topic in the development forums. On phones with compatible kernels, an app will need to be installed from the Marketplace to actually control the settings.
Bloat - a.k.a. Bloatware - This term describes all the software that Verizon installed on the phone, but would not allow you to uninstall. Bloat means different things to different people, but it's basically anything stuck on the phone that the user doesn't want. Opinions obviously vary. Common examples of bloat include the NFS Shift racing game, Vcast apps, and Bing.
Boot Loop - This happens when something goes wrong and does not allow your phone to boot properly. There are numerous causes and numerous fixes.
Brick - a.k.a. Paperweight - The ultimate threat that keeps noobs from rooting, this is what people call a phone that does not work at all. It basically has the functionality of a brick or toy block. "Brick" is also used as verb, as in the act of turning your phone into a brick. There are several well established ways to brick phones. The one that noobs are most likely to encounter is the dreaded "Phone" button on Odin. Don't ever touch the phone button, EVER!
CM7 - CyanogenMod7 - This is an alternate version of Android 2.3 put together by a sharp group of developers who are involved in the Android Open Source Project. The CM7 ROM is perhaps most known for its ability to be customized by the user.
CWM - Clockworkmod Recovery - This is an enhanced (understatement) alternative to the phone's normal recovery program. CWM is absolutely central to rooting. Most rooting guides will have you install some version of this program right away, for good reason.
CWM, once installed is accessed as follows:
1. Power down your phone.
2. Using 3 fingers, hold down Volume Up, Volume Down, and Power (see the guides for more specific directions).
Common uses of CWM include:
1. A complete data wipe of your phone (erases all apps, but not your ROM or kernel)
2. Wiping of the cache (often used before making major changes to your phone)
3. Wiping of the dalvik cache (also often used before making major changes to your phone)
4. Wiping battery stats. Some short battery life problems have more to do with your phone's interpretation of your battery than the charge of the battery itself. Wiping these stats can sometimes solve poor battery life issues.
5. Creating and using Nandroid backups.
6. Flashing custom ROMs and kernels (and other things). Users who are crazy about rooting and development will try several new ROMs and kernels in a single day. CWM makes it very easy to install these things and go back and forth.
Debloated - This describes a phone that has had the Verizon bloatware removed. Debloating is one of the main motivations for rooting. It can make a phone run more smoothly by getting rid of a lot of things that run in the background. It's also just nice not having all of those useless icons clogging your app drawer. There are two common ways to debloat that most noobs will encounter:
1. Root your phone, install an app called Titanium Backup from the Android Marketplace, and "Freeze" anything you consider bloat.
2. Root your phone and install a custom ROM. These ROMs basically come debloated from the developers.
Dev - Developer - These are the people who understand how to write and modify code in the android platform. They are the ones that make rooting fun and easy for the rest of us. They not only create fascinating developments (no pun intended), they package them up in neat little files that simpletons like us can download and install on our phones in a tidy fashion. It is always sad for the community when a recognized dev moves on to another phone. The Fascinate currently has a lot of devs working in a lot of different directions. It's a testament to the inherent potential of this phone.
Download Mode - This is a setting in which you will put your phone when using Odin. There are other ways, but most noobs will reach download mode by powering down, removing the battery, and holding volume down while plugging the factory usb cord into the computer and phone. Odin can only communicate properly with your phone if the phone is in download mode.
Droidstyle's Guide - This is the holy gospel of noob rooting. It can be found in both the General section and Q&A section of xda's Samsung Fascinate forums. Noobs should read every page of the ensuing discussion. A noob with the ability to read and follow directions can be successfully rooted in a matter of minutes. Most of your silly questions that you want to post throughout xda have already been answered in this magnificent guide. Countless questions throughout all Android forums have been answered with nothing more than a link to this guide. If you follow Droidstyle's directions TO THE LETTER, you will be able to successfully do a lot of cool stuff with your phone without experiencing any of the monstrous rooting headaches you may have read about online.
Eclair - Android 2.1. Google likes to name its software releases after sweet foods. The Samsung Fascinate originally shipped with Eclair and hung onto it a really long time. It lacks so many features of later releases, though, that it is essentially a relic that won't come into play.
EH03 - This was the latest (and perhaps final) OTA firmware update from Verizon. Most normal non-rooted Fascinate users will be on the EH03 build number because Verizon basically pushed it out to our phones over the airwaves. It implies that your phone is using Android 2.3 and the EH03 radio. Previous builds shared the alpha-numeric naming system (eg dl09, dj05). Not all builds were officially released by Verizon. Some just sort of showed up on the devs' computers so they could tinker with them.
F. Reset Time - This is a check box in Odin. It's not clear that anyone knows the exact details of what it actually does, nor is it clear what will happen if you leave it unchecked vs checked. It seems to reset some arbitrary counter in your phone. As a general rule, you can either follow the instructions of whatever guide you're using or just leave the checkbox how you found it.
Fassy - a nickname for the Samsung Fascinate
FC - Force Close - This is when an app stops working unexpectedly. This can happen to both rooted and unrooted phones. It doesn't cause any damage to the phone. In most cases, the app can just be opened right back up. It seems to depend on a lot of factors, including the quality of the app itself. ROMs and kernels that experience very few FCs are said to be "stable."
Flash - This is a term used to describe the installation of software onto your phone. It refers to fundamental changes in your phone's operating system. It is different from just installing an app from the Marketplace. Commonly, people will flash ROMs, kernels, patches, and radios. There are basically two ways to flash new software onto your phone:
1. Odin
2. CWM Recovery (or a comparable recovery program)
Freeze - There are two meanings in general use. One might use this term to refer to his or her phone becoming unresponsive. More commonly, though, it refers to a special ability of a program called Titanium Backup. This program can be downloaded from the Android Marketplace, but it requires a rooted phone to work. When Titanium Backup is used to freeze an app or process, that app or process is essentially gone from the phone. It won't show up in the app drawer, and it won't be running in the background. The difference between freezing and uninstalling, though, is that anything frozen can be quickly "thawed," also with Titanium Backup. With the touch of a button, the missing app or process is right back where it used to be. This is a convenient way for newly rooted users to test the waters of debloating.
Froyo - Android 2.2. Google likes to name its software releases after sweet foods. In this case, they refer to frozen yogurt. Some custom ROMs are still based on 2.2. They are known for being extremely well developed and extremely stable.
GB - Gingerbread - Android 2.3. Google likes to name its software releases after sweet foods. Most of our phones are running on this release of Android. There are numerous ROMS and kernels compatible with Gingerbread. These are a good starting point for newly rooted users, as they will feel quite familiar.
GW - Geewiz - This is a three piece set of software put together by djp952. He has created a ROM, a kernel, and a custom Recovery (an alternative to CWM). All three can be used together, or each can be installed separately. This package of software is currently well respected for its smoothness and stability, as well as for its ongoing development.
ICS - Ice Cream Sandwich - Android 4.0. Google likes to name its software releases after sweet foods. This is Android's latest iteration. It comes pre-installed on the Samsung Galaxy Nexus from Verizon. Several developers have created ways to install ICS on the Samsung Fascinate.
Kang - Generally used as a verb, this means to take bits and pieces of someone else's coding and to then integrate it into your own. Granted, noobs won't be doing this, but devs do it all the time. For the most part, this is considered a welcome practice among friendly devs, provided it is done correctly and politely. Kanging often serves to better the community as a whole. The key for devs is to give credit to the other devs from whom they have kanged.
Kernel - This is one of the two main components (ROM being the other) of the software running on an Android phone. It is the piece of software that connects the hardware (screen, softkeys, vibration, speakers, etc.) to the other software components. An unrooted phone comes with a stock kernel. It is stable but somewhat slow. Practically speaking, installing a custom kernel will make your phone feel much faster and smoother as it moves through screens and opens apps. To install a custom kernel, you must first install a custom ROM. Custom kernels can also unlock several abilities of rooted phones. Examples include:
-wireless tethering (ignoring that pesky $30/month charge from Verizon)
-control over how and when the softkeys at the bottom of the screen light up
-overclocking/undervolting
-voodoo lagfix
KGB - A custom kernel built by comradesven. This popular voodoo kernel is well known because of its many options for customization. It is also considered quite stable and fast. It is the everyday kernel of many rooted users. When installed, it comes with an app that allows a user to easily customize a number of features on the phone.
Lean Kernel - Created by imoseyon, this voodoo kernel is known for its simplicity and stability. He intentionally leaves out a lot of the "bells and whistles" to keep the experience simple, smooth, and fast. Imoseyon works with several phones, so it is imperative that you have the correct version of Lean Kernel, the one appropriate for your phone.
MIUI - This term is a transliteration of a Chinese name for a special customization of Android actually developed in China. MIUI ROMs can be installed on the Fascinate. They change the look and feel of the Android system, moving it closer to something resembling iOS. A lot of custom development has been done with the software code from the MIUI system.
MTD - This is a technical term used by devs to describe the software organization in your phone, as it relates to things called partitions. The bottom line is that the stock organizational system, called BML, is somewhat fixed and limited, whereas MTD offers devs a great deal of flexibility.
Nandroid - This is a backup of your entire phone as it stands at that moment in time (ROM, kernel, text messages, your Angry Birds progress, etc.). It is stored on your sd card, which is somewhat immune to your tinkering. A Nandroid backup is a good failsafe for the times when you might want to try out that new experimental kernel your favorite dev has been working on. The files can also be saved on a home computer/flash drive/etc. for safe keeping. Nandroid backups are created using a recovery program like Clockworkmod Recovery. CWM can also use old Nandroids to restore a phone to its previous condition.
Noob - If you have to ask what this means, this is what you are. It's a derivation of "newbie" or "newb," someone who's new to the activity at hand.
OC - Overclocking - Computer processors operate at a variety of speeds. When a manufacturer sells a product (like a phone) to the general public, they strictly limit the speed at which the built in processor can operate, even though the processor may be capable of more. This is to promote stability and reliability. Rooted users can overclock their phone's processor, raising the maximum speed at which it can operate. This can be done through various apps, including Voltage Control. There are limits, though. Running a processor at too high a speed can cause overheating and/or glitches.
Odin - This is a program of seemingly mysterious origins that allows your home computer to communicate with your phone. You download it to your home computer. Good communication with your phone requires the installation of Samsung drivers on your computer as well as the use of the USB cable that came with your phone. Among other things, Odin can be used to root your phone, install CWM Recovery, install custom ROMs and kernels, and return your phone to stock after you've screwed it up.
*NEVER touch the "Phone" button on Odin. It should be labeled "Destroy your Phone"
OTA - Over the Air - These are the official firmware upgrades that Verizon has released over the life of this phone. They were either pushed out to our phones in the middle of the night or offered up for us to download at our convenience. The latest one, EH03, came in December of 2011. Generally speaking, rooted users do not receive OTA updates. Also generally speaking, this doesn't really matter. The updates can be found on xda, and it is unlikely that the Fascinate will ever receive another OTA update.
Patch - This generally refers to a zip file that can be flashed using CWM. The file usually contains updates or small modifications to an existing ROM or kernel. A great example is the patch that reprograms the phone dialer's voicemail button to open Google Voice instead of the standard voicemail or Visual Voice Mail.
PDA Button - This is the button you will want to use when using the Odin program. You should always avoid the "Phone" button.
Pit file - This is a type of file used with Odin when returning your phone to stock. There is a "Pit" button on Odin you can push to enter the pit file you wish to use. An example of a pit file that you will probably use is Atlas_v2.2.pit.
PWGB - Powerwashed Gingerbread - This is a custom ROM created by ccampos784 (with other credits given). Its name implies what it is, a cleaner version of Gingerbread. It is widely regarded as a well-debloated reliable ROM.
Radio - a.k.a. Modem - This generally refers to the software that manages the phone's connection to the outside world, not the physical device itself. Verizon would release new versions of this software from time to time in their OTA updates. The two most popular ones are currently EH03 (the latest) and EC09. Both of these work with Android 2.3. The choice of radio can determine your 3g download speeds. It's difficult to say that one is better than another. Different users find good results with each one. Both radios are available as zip files that can be flashed in CWM.
Recovery - Your phone comes with a recovery program. You have to choose to boot it up as an alternative to booting up your phone's normal touchscreen interface. An ordinary phone user would probably never even see this program. It's not pretty. It's just functional. It is basically a list of commands and technical terms that you can navigate using the phone's volume up & down buttons and the power button (to select). Essential to rooting are the special recovery programs. The most popular of these by far is CWM Recovery.
Re-Partition - This is one of the check boxes in Odin. This box should be checked only when returning your phone to stock. Of Odin's various check boxes, this is the only one for which widespread agreement of its use exists.
ROM - This is one of the two main components (kernel being the other) of the software running on an android phone. It generally determines the overall appearance of your phone, including which apps are installed by default. The ROM that comes installed on your phone right out of the box is known as the stock ROM. Created by devs, there are numerous custom ROMs available for the Fascinate. Popular ROMs a newly rooted user might try are Superclean3, PWGB, and GeeWiz.
Root - When you buy your phone from Verizon, Verizon still controls it. You are simply a user who is allowed to perform various Verizon-approved activities on it. Gaining root access to your phone grants you the control that Verizon had previously held. Rooting quite literally makes you the "Superuser," opening numerous possibilities for improvement, customization, and ruin. Root access is essential to having a fast, fully customized phone.
Root Explorer - This is an app downloadable from the Android Marketplace. As it requires Superuser permissions, it is only functional for rooted users. Its abilities far exceed those of standard file management apps. For example, Root Explorer can copy .apk files directly into the system/apps folder in Android. It's a great way to get that obscure Samsung widget reinstalled on your phone after your favorite developer's ROM washed it away and called it bloat.
Samsung Drivers - This is a small piece of downloadable software that will need to be installed on your home computer before it will be able to communicate with your phone (via Odin or adb).
SC3 - Superclean3 - This is a popular custom ROM created by Nitsuj17 (with other credits given). It has a lot of bloat removed, and it has several excellent additions. It also has a wide variety of readily available patches that allow users to further customize or reinstall things they miss about the stock ROM. It is known for being both fast and stable, and it is widely regarded as an excellent choice for newly rooted users interested in trying a custom ROM.
Skin - This is a program that a phone manufacturer creates with the goal of making its phones more user friendly. It is basically an interface that sits on top of the pure Android guts underneath, hence the term "skin." The skin that comes with Samsung phones is called TouchWiz. This is why our phones don't look quite the same as our friends' HTC or Motorola phones, even though they are all using Android. Some people love TouchWiz. Some people hate it. Some custom ROMs are designed to be used with TouchWiz. Others are designed to be rid of it.
Superuser - A rooted phone will have a new icon in the list of apps called Superuser. This is what distinguishes a rooted phone from a non-rooted phone. There are numerous apps available on the web and Android Marketplace that require "Superuser permission" to do what they do. Common examples of these apps include Titanium Backup, Root Explorer, and Voltage Control. When a rooted user first runs one of these special apps, the app will ask for Superuser permission. Since you are now the Superuser, you get to press the button that says allow or one that says deny.
Swype Beta - One of the early perks of rooting, the latest version of Swype is not available to unrooted users because the Fascinate comes with a special pre-installed (and perhaps outdated) version of Swype. Upgrading gives a slicker version of Swype with a more advanced word selection logic. You must follow a few steps to do it correctly:
1. Change the input method to the Android keyboard (settings->language & keyboard).
2. Uninstall Swype using Titanium Backup.
3. Go to the Swype website, give them your email address, and then follow their lead.
.tar - This is the file extension for the files that get flashed via Odin. The file to install CWM, for example, is a .tar file. Another example is the file that returns your phone back to stock.
TB - TiBu - Titanium Backup: This is an app available on the Android Marketplace. It is for rooted users only, and it requires Superuser permissions to operate normally. Its two main functions are:
1. Creating backups of your phone (or parts of it) in case you screw it up
2. Freezing apps and other stuff you don't want (i.e. debloating)
Thanks button - Once you have created an established account at xda and made a post or two, you will begin to see a button with a little thumbs up sign next to the word "Thanks." This can be found on the lower right corner of someone's post. Pushing this button lets the person who posted know that their work is appreciated. It is considered polite to thank anyone who has helped you, whether or not it was in direct response to your own question. It is always polite to thank the devs whose software you are using. Xda tallies these thanks and gives experienced users a quantifiable measure of their contributions to the community. You will see a thanks meter under other users' names. Helpful people and prolific devs can have hundreds or thousands of thanks.
Troll - This describes a person who attempts to transform a civil forum discussion into a battle of harsh words. They generally lure people into a massive argument by posting inflammatory remarks that are just slightly off topic. They then sit back and laugh to themselves as the argument develops into the nerd equivalent of a bar fight. To feed a troll and make him stronger, just respond to him. To weaken him, report his posts to moderators.
TW - TouchWiz - see "Skin"
UV - Undervolting - This is a means of attempting to reduce battery consumption when using custom kernels. Rooted users can accomplish this through one of several apps, with Voltage Control being a common example. The point of whether UV reduces battery consumption is highly contentious, but there does seem to be a theoretical basis for its validity, as well as a preponderance of anecdotal evidence.
Voodoo - a.k.a. Voodoo lagfix - There are basically two main types of kernels, voodoo and non-voodoo. The stock kernel that comes with your phone is non-voodoo. It uses a certain type of file organization that is considered extremely stable. It is also somewhat slow, evidenced by the lag many users have experienced on this phone from day one. Non-voodoo kernels, slow and reliable, are the family sedans of kernels. The voodoo kernels are the sports cars. They organize file systems differently, allowing for reduced lag. To extend the metaphor, they are also more likely to be involved in crashes. Lacking the rock solid reliability of their non-voodoo counterparts, voodoo kernels have a somewhat sordid reputation in older forum posts. Overwhelming evidence, though, seems to indicate that many of the current voodoo kernels are quite stable. Many rooted users will tolerate the occasional force close or reboot to gain the speed benefits that voodoo kernels provide.
Examples of non-voodoo kernels: Stock, GeeWiz
Examples of voodoo kernels: KGB, Lean Kernel, Glitch
*Note: Changing to a voodoo kernel or switching between voodoo kernels requires no special precautions. Changing from a voodoo kernel to a non-voodoo kernel requires special precautions.
Wipe x3 - This term refers to the act of wiping the slate clean on your phone. It removes all apps you have installed and any data associated with those apps. It will not erase Android, your ROM, your kernel, or anything on your sd card (your photos and videos are on your sd card by default). The Wipe x3 is often done before making major changes to your phone's system. The process is accomplished through a recovery program such as CWM. Here are the 3 commands (hence the "x3"):
1. wipe data/factory reset
2. wipe cache partition
3. wipe dalvik cache
*Note, performing a wipe data/factory reset will reportedly wipe the cache partition and the dalvik cache, so steps 2 & 3 may be redundant.
zip - For our purposes, this refers to the file type for files that can be flashed with CWM or other recovery programs. For example, if you would like to install the Superclean3 ROM, you would need to download the zip file called sc3_milestone2_full and place it on your sd card.
jawman27 said:
Droidstyle's Guide - This is the holy gospel of noob rooting.
Click to expand...
Click to collapse
LOL Best Part!
May i add
"3 finger salute"- slang; this refers to a way of getting into your recovery.[HOWEVER this method is not useful for MTD roms!] holding down the power Button, the volume up, and the volume down button. This could also be used for a phone that is frozen as well to initiate a reboot without pulling the battery.
I know it is in the cwm section but some older devs refer to it as that.
Plus we know most noobs get through one definition of this and TL: DR
But very well put together!! Kudos
"3 finger salute"
Done. Thanks. It's nice to hear feedback from experienced members.
Enyo. - noun. Possible 11 year old prodigy and uberdev. Provides lulz for the Fascinate forums, both intentional and unintentional. See ” KANG".
All kidding aside, this thread is a great idea.
dsrhokie said:
” KANG".
Click to expand...
Click to collapse
All kidding aside, I missed that one.
Kang: The process of creating a code based of someone else's code or reapplying code that someone else created into your own code (e.g. git cherry-pick) [credit: http://wiki.cyanogenmod.com/wiki/Terminology ]
edit: Got ninja'd on the definition, yours is better jawman....
Well done sir! Between your glossary and my guide, new users will learn everything in a matter of a hour or so....If you look back a year ago this information may of taken a month to aquire.
droidstyle said:
Well done sir! Between your glossary and my guide, new users will learn everything in a matter of a hour or so....If you look back a year ago this information may of taken a month to aquire.
Click to expand...
Click to collapse
Thanks. That means a lot. I may not have ever rooted if not for your guide. I'm all in now, though.
droidstyle said:
Well done sir! Between your glossary and my guide, new users will learn everything in a matter of a hour or so....If you look back a year ago this information may of taken a month to aquire.
Click to expand...
Click to collapse
Yup yup... took a lot of digging a year ago. Nice work.
This was a well thought out guide. I don't consider myself a noob anymore but I still learned a thing or two (like Nandroid).
I hope this gets stickied!
Sent from my SCH-I500 using XDA App
Nice thread ! I was extremely fortunate to fall under the good graces and guidance of Droidstyle when I ventured ( blindly) into the world of rooting and flashing. I can't even count how many times his guide saved my device. I ALWAYS reference his guide when I try to help people on here. Although it is sometimes frustrating asking " noob" questions in XDA ( flaming) , there are a great bunch of people on here that WILL help at least point you in the right direction . Kudos to the OP for writing this glossary!
Sent from my SCH-I500 using XDA App
A few corrections:
adb - Our favorite Uberdev forgot to finish his alphabet packet (just kidding, Uberdev )
AOSP - a mistaken spelling for soap; even our elected lawmakers forgot to finish their alphabet packets, because they tried to make showering mandatory when they tried to pass a bill called SOPA.
.apk - file extension for an application. In this economy, we often have to file many applications to get even one interview for a job.
Auto Reboot - sometimes, with no warning at all, while you're in the middle of playing Angry Birds, your phone just automatically reboots, usually indicating something wrong with your installation. This is occasionally a bug in the ROM or kernel, but if you're a noob, it's probably your fault
Bloat - this is a nice way of saying you have gas because you ate a few too many chili dogs.
Brick - what thugs sometimes throw through your window so you'll be too scared to snitch on them.
Clockwork Recovery - when your kitchen clock is dead, you may have to replace your battery so it will recover.
Debloated - see Bloat above - this is how you likely feel after you pass gas.
Droidstyle's Guide - this makes it much easier for experienced users to answer noob questions in ROM threads; instead of actually answering the noob's question directly, you can say "just look at Droidstyle's Guide." This saves a ton of typing and a ton of time. Think of it as prescribing chicken soup for a patient regardless of what's wrong with him or her
Eclair - the last thing patients with tooth decay should eat, and the first thing we actually eat.
Force Close - this was what Circuit City stores had to do when the economy tanked and all the customers were getting their electronics from Best Buy.
Flash - what nutjobs sometimes do in public when they disrobe.
Freeze - either what you have to do to your ice cream sandwich to keep it from melting, or one of the villians in the movie Batman and Robin.
Froyo - what hipsters tell themselves is more trendy to eat instead of ice cream.
Gingerbread - building material for a house in a German fairy tale.
GeeWiz - what kids used to say in the 1950s when their parents grounded them.
Ice Cream Sandwich - another bad idea for people with tooth decay. See Eclair above.
Kang - either a nickname for Captain Kangaroo, or one of the three old Klingons in the Star Trek Deep Space Nine episode "Blood Oath."
Kernel - an individual piece of corn. You want as many of these as possible to pop (without getting burnt) when you microwave your pouch of Pop Secret.
KGB - the principal intelligence agency of the Soviet Union during the Cold War.
Lean Kernel - a low-fat flavor of Pop Secret. See Kernel above.
MIUI - a sound kittens often make when they want your attention.
OC - a teen drama series that aired on the Fox Network from 2003-2006.
Odin - one of the characters in the movie Thor.
Patch - what pirates sometimes wear over one of their eyes.
Radio - what people used to listen to in the 20th century
Recovery - what people have to go through after serious injuries or sicknesses.
Root - the part of a plant that keeps it anchored in the ground.
Samsung Drivers - NASCAR drivers whose cars have the Samsung logo on them.
Skin - what certain celebrities show too much of on the red carpet.
TB - an acronym for tuberculosis.
Troll - a short, ugly character from a fairy tale; these often live under bridges.
UV - a type of radiation that will give the aforementioned celebrities sunburn if they continue to show too much skin under direct sunlight.
Voodoo - part of a fellow XDA member's username. http://forum.xda-developers.com/member.php?u=4500750
Wipe x3 - the minimum number of times you have to wipe after #tweetingwhilepooping.
zip - what men have to do after #tweetingwhilepeeing (this is often when men ease nature while sitting down so they can keep using Twitter on their Android phones).
Terminators run on Android
Thank you very much.
Sticky it!
Sent from my SCH-I500 using xda premium
In all seriousness, this was an extremely well-written glossary, a valuable resource for the Fascinate community. Very impressive.
Terminators run on Android
Thanks, guys. I'm flattered. I never expected to have such big names even look at this, much less enjoy it.
I should point out to all the noobs reading this that most of the definitions in the glossary are created from the various forum posts of droidstyle, skynet11, neh4pres, xwhofarted, and others like them. Please be sure to use the 'Thanks' button under their names from time to time.
Oh, and nice variant, Skynet. I particularly enjoyed "Patch."
neh4pres said:
Sticky it!
Sent from my SCH-I500 using xda premium
Click to expand...
Click to collapse
I'd love to, but I'm still not clear on the method or etiquette of having a thread stickied.
Should I request myself, or would it be better to have one of the more experienced members do so? I think the glossary has room for improvement (though I've reached the 30,000 character limit), so I'm fine to wait until it's more refined.
To do this correctly, I think we'd need to have droidstyle's guide stickied directly above it. A lot of the stuff at the top of the general section is a bit outdated anyway, so I think it would be a good idea to do it eventually.
jawman27 said:
I'd love to, but I'm still not clear on the method or etiquette of having a thread stickied.
Should I request myself, or would it be better to have one of the more experienced members do so? I think the glossary has room for improvement (though I've reached the 30,000 character limit), so I'm fine to wait until it's more refined.
To do this correctly, I think we'd need to have droidstyle's guide stickied directly above it. A lot of the stuff at the top of the general section is a bit outdated anyway, so I think it would be a good idea to do it eventually.
Click to expand...
Click to collapse
Maybe copy and paste into a new thread and then claim a few posts before others can reply. Then you will have more room.. I'm sure it will be stickied sooner or later.
Sent from my SCH-I500 using xda premium
neh4pres said:
Maybe copy and paste into a new thread and then claim a few posts before others can reply. Then you will have more room.. I'm sure it will be stickied sooner or later.
Sent from my SCH-I500 using xda premium
Click to expand...
Click to collapse
Will do. Thanks for the tip.

sefe

[redacted]
Some cool ideas there. A few comments (posted here because I don't see a way to leave feedback on the site):
1) I'd put the Charms bar on press-and-hold of a button, probably Search (which doesn't currently have any Hold action assigned). Double-tapping is an action that literally nothing else on the Windows Phone OS uses, and especially a button that is sometimes capacitive and sometimes physical (depending on phone model) it's not something I advocate adding now. I like the idea a lot, though, especially for its tie-in with Win8. One thing to add to the Charms bar though: as on Win8 (where it shows a bunch of status info when you open Charms), the Status Bar at the top of the screen should be always visible when showing Charms.
2) There's already a way to get to the task switcher; while it's OK to have multiple methods for achieving the same goal, it seems like there might be something more useful to do than duplicating functionality through a more round-about approach.
3) There should be a more visible cue about the notifications center. Either have something drop down from the top (perhaps a "you have <X> notifications" bar with an appbar-like pull indicator?) or add a button specifically for notifications (two-level Charms bar? Move it to the right edge of the screen? Not sure how best to handle that).
4) I know the whole "swipe down to close an app" thing is very commonly requested, and comes from WebOS, and vaguely resembles Win8, and... I still don't know if I want it. Closing an app is pretty close to literally never needed; backgrounded apps are not generally allowed to use any system resources (they may hold onto some RAM, but the system will take it from them if a foreground app needs it). Closing an app the "usual" way - by switching to it if needed, and then tapping Back until it goes away - also works, although it's more actions. My biggest concern would be that right now, it's not really possible to ever do the wrong thing on the task switcher view. Closing an app, though, is a destructive behavior - you lose the app's current state - and is something that would need to be carefully implemented to make sure it never happens by accident... or perhaps make it optional entirely.
5) The Xbox Music feature looks pretty good, although the drop-down switch between Albums/Songs/Artists/etc. might be a bit too... background. Also, the really basic problems of the new UI - things like songs getting duplicated when they exist both on the phone/SD card and on the "Music Cloud" - really need to be addressed. Highlighting the Search thing - I know you mentioned it earlier with global search, but it's good to have more focused search capabilities too - as the current lack of Search in the music app is a Problem.
6) "Windows and Windows Phone share the same store" is way, way more complex than anybody might be realizing. Leaving aside the fact that most Windows Store apps aren't written for the resolution or aspect ratio of Windows Phone and would therefore possibly look kind of crappy if they were usable at all, and the fact that app models of the two OSes are pretty different (for example, Windows Store apps are allowed to request filesystem access and are required to implement the Settings charm, while WP apps have neither of those things), the APIs are just different. WP8 can use a sort-of-subset of WinRT (the API for Win8 apps) but it's not the same thing (and Win8 can't run WP7 apps at all, not even close). Finally, there's the issue that even the most powerful WP8 are half as powerful as even the lowest-end WRT tablets, and that's going to make a lot of things that perform fine on things like Surface RT be unacceptably slow on a Lumia 920 and impossible to run on anything with lower specs.
7) IE11 is coming for sure. The sync feature would definitely be nice. I'd also like to see some version of (desktop) IE's feed reader (shared with desktop Outlook) get integrated into WP8.
8) Integration with photo services, in the same way as other parts of the phone are integrated with Facebook and LinkedIn and Twitter and so on... that is an excellent idea. Come to think of it, Facebook pictures are already integrated (a feature I never really use) so adding others should definitely be possible. It would be cool if apps could integrate that kind of stuff without explicit OS support, but that may be aiming too high.
Thanks for the good feedback!
Hmmm, concept by who?
that'd be me.
The sync of bookmarks from Desktop IE to WP IE has already been confirmed for a future version of WP. They didn't say which one exactlly so it might take until WP Blue.
I personally don't like the idea of having the icons in the settings - at least not at the end, just looks kinda weird. Perhaps it would work better if you put them in front and aligned them properly on a grid.
Camera settings actually return back to the defaults when you relaunch the Camera App (and didn't save your changes as defaults).
As for the charms bar - I like the idea of a universal sharing and search feature but I don't particularily like the implementation of it with the charms bar on Win8 and I really don't see it work well on WP.
I like it but MS always let's its users down and dismisses the best ideas and concepts. WP will go now where higher that where it currently is now because of MS's ignorance. The next 2 updates for Luminas that includes the Amber and the GR2 or whatever its called don't really bring much to WP at all; who cares about another clock on the screen or data sense? Or more camera tricks...? Really now!!
@sinister1: Does that post really help? Come on, there's no value in just being negative everywhere.
Also, you call Microsoft "ignorant", but I guarantee that they know far, far more about the smartphone market than you do. If you want to be persuasive, you need to come up with arguments that have more substance to them than effectively just calling MS names.
@KlausWidraw: I think I'm with StevieBallz on the suggestion to have the Settings icons be left-aligned; they do make the items easier to identify, but having a consistent horizontal position to look for them at would help. That said, the ability to re-order the options would be huge; I use some all the time (like Cellular, which is annoyingly just off the bottom of my screen) and others not at all (like "lock screen", "tap+send", or "theme") once I've set them up initially, and would like them out of the way to make room for the options that I care about.
GDR2/Amber as well as GDR1 before it and GDR3 after it are mere maintenance releases. No one expects an Update from Android 4.2.0 to 4.2.1 or 4.2.2 to bring major new functionality. No one expects updates from iOS 6.0 to 6.1 to bring major new features. Somehow everyone (contrary to all reporting on those topics) expects those maintenance releases in WP to do just that. Really new functionality will only arrive with WP8.1/Blue and this has been known pretty much since the WP Blue name first appeared in leaks.
GDRs mainly serve the purpose of fixing some bugs and enabling new hardware functionality that is required for device launches. It has been the same with WP7. There were updates like Tango that served to enable LTE. GDR2 now mainly serves to enable the new capabilities that Nokia required for their Lumia 925 and Eos Camera phones and to keep Google Mail usable. GDR1 was mainly bugfixes, GDR3 will enable new hardware like even higher resolution screens.
Amber then is bundled with the GDR2 update rollout but IS NOT a WP update. It is a device specific capability update like we have seen them by all OEMs in the past.
If there are two things I would change about WP (from a user perspective) those are:
1) A clock tile that updates real time, like the HTC one (srsly want one).
2) Battery saver profiles that let me choose what i want to remain active (bluetooth, wifi, mobile data, background tasks)
That's about it.
From a developer point of view, things are very, very different xD
GoodDayToDie said:
@sinister1: Does that post really help? Come on, there's no value in just being negative everywhere.
Also, you call Microsoft "ignorant", but I guarantee that they know far, far more about the smartphone market than you do. If you want to be persuasive, you need to come up with arguments that have more substance to them than effectively just calling MS names.
@KlausWidraw: I think I'm with StevieBallz on the suggestion to have the Settings icons be left-aligned; they do make the items easier to identify, but having a consistent horizontal position to look for them at would help. That said, the ability to re-order the options would be huge; I use some all the time (like Cellular, which is annoyingly just off the bottom of my screen) and others not at all (like "lock screen", "tap+send", or "theme") once I've set them up initially, and would like them out of the way to make room for the options that I care about.
Click to expand...
Click to collapse
Sorry for being so negative but this is really how I feel and what's wrong with that? I know that not everyone will agree with my views or me with views of others but my negative feed back is feed back just like positive feed back is also feed back. I'm pretty sure that you have your gripes with other things.
I'm just feed up that devs come up with some of the brightest ideas and MS simply ignores them. Tell me what is so hard for them to open the OS just a little more for people to be creative? Seriously? Now the truth is the best substance. And of course if you still don't agree with me that's okay; I won't hold it against you because those are your opinions and the way you feel. Please don't take any of my rants personal as all they are, my personal opinions.
sinister1 said:
I'm just feed up that devs come up with some of the brightest ideas and MS simply ignores them. Tell me what is so hard for them to open the OS just a little more for people to be creative? Seriously?
Click to expand...
Click to collapse
I have to agree with you on this one. There are some understandable things for security's sake, but its ridiculous how complicated it is to customize Windows Phone 8 or even WP7. With WP7, you could only have a static lockscreen (ignoring LockWidgets from WPH) and couldn't set a custom text notification sound (besides MS' and HTC's.) I could add a custom ringtone, but it was a pain to do, period. With WP8, its a tad easier. You can just copy and paste ringtones, lock screens are customizable, and alarm can be customized as well, as well as the battery percentage can be pinned to the lockscreen/start screen. But compared to the other 3 platforms (Andriod, iOS, and now discontinued Symbian) could virtually anything could be changed. I remember when the 7.8 Beta was out and there were swapped fonts in the roms. Its something that no one had even thought about modifying until it was an issue.
I do have to say the native apps ability is appreciated, but it seems that Interop is still an issue (except I have no idea how problematic it still is). I do have to say I don't know much of whats been going on, due to jumping ship getting Verizon's Trophy late in the game (like when I first signed up here) and then finally moved to WP8 with their 928. So I'm kinda in the dark as to what has been added from the GDR1, Nokia's supposed Amber update, whats in GDR2, future FM support, ect. I really just wish that MS would be a little more verbal about whats in WP8's updates. They were bad with WP7 and they aren't any better now.
Another feature that MS is completely missing is Xbox Video. Seems stupid for them to say their experience is coherent between all their devices when its clearly not.
Can u guys tell me ....which phones will get windows 8.1 update .????
Sent from my HTC Explorer A310e using xda app-developers app
Some people don't like customization.
Customization comes with the cost of performance. I had an android with "customization" and whenever i "customized it" it became really, really, really slow.
In order to even have customization working, the system has to waist a lot of CPU cycles on stuff like checking 1000000000000000 settings to figure out what it should render next, swap a gazillion artifacts from storage to memory etc etc.
I want my phone to do what I tell it to do. I don't give a damn about more customization than it already has, and so are 99% of all windows phone users, whom increase in numbers day by day.
If you are going to give feedback disguised as QQ, then you should head over to microsoft's site and make your voice actually count. You complaining here all day, on a freeking developer/hacker forums, will not help!
Windows 8.1 blue will probably loosen up the developers a bit, if they are going to implement all our suggestions. Which will come for all windows phone 8 phones.
@mcosmin: The conecpt the you trade performance for customization really isn't true. Yes, the phone could eke out a trivial amount of better performance by hardcoding its UI styles, but they don't do that. Things like accent colors, background colors, text styles, etc. are all stored in the registry; you don't have to modify a single line of system code to modify or create themes of your own, and they'll run just as fast. Other forms of customization, such as replacing some of the builtin libraries with custom ones, might be slower in certain circumstances, but only if the custom library either added new features (not just new customizations, but actual functionality that wasn't present before) or is simply very poorly coded. The first of those is a tradeoff, the second is easily fixed if people just share their source code.
@sinister1: It's not that I don't agree with you - I do, in fact, and frequently quite vociferously - I just don't see what value you're adding to this conversation by proclaiming it. This thread is to discuss mockups of UI changes to WP8, not to complain about OS lockdown in WP8 and Microsoft's apparent unwillingness to implement some requested changes.
GoodDayToDie said:
@mscosmin: The conecpt the you trade performance for customization really isn't true. Yes, the phone could eke out a trivial amount of better performance by hardcoding its UI styles, but they don't do that. Things like accent colors, background colors, text styles, etc. are all stored in the registry; you don't have to modify a single line of system code to modify or create themes of your own, and they'll run just as fast. Other forms of customization, such as replacing some of the builtin libraries with custom ones, might be slower in certain circumstances, but only if the custom library either added new features (not just new customizations, but actual functionality that wasn't present before) or is simply very poorly coded. The first of those is a tradeoff, the second is easily fixed if people just share their source code.
@sinister1: It's not that I don't agree with you - I do, in fact, and frequently quite vociferously - I just don't see what value you're adding to this conversation by proclaiming it. This thread is to discuss mockups of UI changes to WP8, not to complain about OS lockdown in WP8 and Microsoft's apparent unwillingness to implement some requested changes.
Click to expand...
Click to collapse
And how many people do you think will be able to do proper customization? Windows Phone shouldn't be Android with squares instead of rounded edge widgets.
And solid colors like the ones WP uses will always be faster than a image on the background, or some sort of gradients or whatever they they propose to have around the phone.
How many people will do "proper" customization? As many as want to. Who are you to say what is or is not "proper" for how I want my phone to look?
Of all the things wrong with Android (the battery drain due to background services not exiting automatically, the more stuttery UI on all but the highest-end phones due to poorer optimization, the ability for malicious apps to send premium SMS completely invisibly to the user, etc.) you choose to pick on the customizations? Nobody is suggesting that we want Android with WP-like tiles; in that case we would have bought Android phones and installed one of the several Metro-style home screen customizations. On the other hand, if I want a Windows Phone with "rounded edge widgets" and am willing to put in the effort to develop them, I see no reason I shouldn't be allowed to.
WP uses the graphics processor for its UI. Those "solid colors" are just textures like any other. A gradient, an image, a partially translucent image... they're all the same to the GPU. The performance cost would be unmeasurably small.
GoodDayToDie said:
How many people will do "proper" customization? As many as want to. Who are you to say what is or is not "proper" for how I want my phone to look?
Of all the things wrong with Android (the battery drain due to background services not exiting automatically, the more stuttery UI on all but the highest-end phones due to poorer optimization, the ability for malicious apps to send premium SMS completely invisibly to the user, etc.) you choose to pick on the customizations? Nobody is suggesting that we want Android with WP-like tiles; in that case we would have bought Android phones and installed one of the several Metro-style home screen customizations. On the other hand, if I want a Windows Phone with "rounded edge widgets" and am willing to put in the effort to develop them, I see no reason I shouldn't be allowed to.
WP uses the graphics processor for its UI. Those "solid colors" are just textures like any other. A gradient, an image, a partially translucent image... they're all the same to the GPU. The performance cost would be unmeasurably small.
Click to expand...
Click to collapse
It's not about the GPU.
It's about the CPU. The more complex the image is, the bigger the size, the more time wasted for CPU to process it.
Add to that the fact it needs to purge/load from memory several times a day (in the case of a background wallpaper for startscreen), and the performance loss and battery drain is suddenly no longer unmeasurably small.
You're talking about a difference of microseconds. Not milliseconds, microseconds. Several times a day. And telling me that this is *not* below the noise threshold of any measurement system we have today, never mind human perception?!?
Also, consider people who use apps (with their own tiles, not just system tiles that are mostly blank and therefore rendered as mostly a solid color) on their lock screen. You know, the whole "meet <person>" advertising campaign Microsoft has been running for this OS? Those app tiles take just as long for the CPU to decode and send the texture to the GPU as the customized tiles we're talking about here...
Except, customized tiles aren't even the point. If you don't want to customize your tiles because saving a few millionths of a second per day - a saving which will never amount to a whole second over your entire lifetime, much less that of the phone - you don't have to. The rest of us want features; customization is merely one of those features. It gets a lot of discussion because:
A) It's an obvious feature to have. MS advertises personalization. People like being able to change how things look, be it their clothing or their front yard or their Windows background. For some reason, though, they can't change their Windows Phone background.
B) It's really, really simple to implement. I mean, there are tons of third party apps, some rather sophisticated, to do this. Microsoft doesn't have to jump through the crazy hoops that we did, and they have the documentation on how the OS works as well.
c) It really does not affect performance. There's no cost. Look at the custom themes and custom system tray icons and so forth on WP7, and try telling me with a straight face the percentage by which it impacts performance to use them.
GoodDayToDie said:
You're talking about a difference of microseconds. Not milliseconds, microseconds. Several times a day. And telling me that this is *not* below the noise threshold of any measurement system we have today, never mind human perception?!?
Also, consider people who use apps (with their own tiles, not just system tiles that are mostly blank and therefore rendered as mostly a solid color) on their lock screen. You know, the whole "meet <person>" advertising campaign Microsoft has been running for this OS? Those app tiles take just as long for the CPU to decode and send the texture to the GPU as the customized tiles we're talking about here...
Except, customized tiles aren't even the point. If you don't want to customize your tiles because saving a few millionths of a second per day - a saving which will never amount to a whole second over your entire lifetime, much less that of the phone - you don't have to. The rest of us want features; customization is merely one of those features. It gets a lot of discussion because:
A) It's an obvious feature to have. MS advertises personalization. People like being able to change how things look, be it their clothing or their front yard or their Windows background. For some reason, though, they can't change their Windows Phone background.
B) It's really, really simple to implement. I mean, there are tons of third party apps, some rather sophisticated, to do this. Microsoft doesn't have to jump through the crazy hoops that we did, and they have the documentation on how the OS works as well.
c) It really does not affect performance. There's no cost. Look at the custom themes and custom system tray icons and so forth on WP7, and try telling me with a straight face the percentage by which it impacts performance to use them.
Click to expand...
Click to collapse
Don't compare the WP7 theme mods and stuff like that which were made by hackers that knew what they were doing.
If Microsoft allows this officially on the marketplace, it will be flooded by poor apps.
Anyway, we seem to not be talking about the same thing. We should let it rest.

[HOW TO] Install GNU/Linux on Samsung Galaxy Note 10.1 2014 (Updated 03/17)

#NOTE: For quick taste go to post#4. That mini-guide -for the time being- only works on Samsung's Kitkat. For Best Performance running Samsung's KitKat is recommended
Also (just so that to be clear), no matter which version of this guide that you are going to follow, you'd need at least 5GB of free Internal Storage.
INTRO
Since the advent of the Microsoft Surface Pro line we had a great "great-computer/mediocre-tablet" combo on one hand, and through the already running iPad line we had a "great-tablet/bad-computer" on the other hand.
One of the primary reasons to buy into the Note tablet line is because I always thought that it conveniently sandwiches itself between the above categories hopefully avoiding the pitfalls of both. Sadly the reality was a bit further than that and our tablet seems to have taken equally the bad and the good of the above lines. I set to ameliorate part of those faults, since I mostly lack coding expertise or indeed deep knowledge of the Linux kernel I created a ... patchy solution.
Sooo the following is a ... rather monumental guide/tutorial to set up Gui - Linux with acceptable performance on top of android in our devices. Since I'm running it "on top" it relies to the chroot method (it's been detailed in quite many posts). For simplicity's (and ... repeatability's) sake I'm using the "LinuxDeploy" app which can be found here (buy a beer to the creator, don't forget that he's practically giving away his software).
Ook, let me say right out of the bat that I could have had released a ready-made Linux image so that everybody could benefit instantly, or alternatively write a script to automate the process that I'm going to detail next.
Instead I decided against it, firstly because (as you will soon find out) this guide is a work in progress, so through exposing each individual step it can/would actually become better (hopefully through the help of more talented/knowledgeable individuals than I). Secondly many of the steps would most certainly break down, down the road (continuously changing software tend to do that to tutorials), yet since all/most steps would be exposed a simple tweak to them would save it...
Important Note: This particular Guide is tested to work on both KitKat and Lollipop (Samsung) Roms for P600. Even a slightly different setup may cause it to misbehave. So that's one more reason why I chose to expose the relevant steps (what/how they do). Hopefully slight tweaks to some of the steps would make Linux perfectly functional on all variants of Note tablet and their many differing roms.
PREPARATIONS
Let me move to the particulars then:
You'd definitely need root and a "Virtual Terminal" enabled kernel (I can't stress this enough), xposed framework/modules is optional (only needed for one work-around). I'm sure a mere Google search can tell you how to achieve the 1st and the 3rd requirement but the CONFIG_VT enabled kernel is a tougher nut to crack. Therefore I'm willing to make a list with VT_Enabled kernels for out tablet, for the time being I'll only be offering kernel based on Samsung Roms (many thanks to @xluco). Non-P600 guys should find an equivalent kernel on their own (or compile one for their own usage).
KitKat: http://forum.xda-developers.com/attachment.php?attachmentid=3686507 , reportedly Disabl0w's version works better
Lollipop: http://forum.xda-developers.com/attachment.php?attachmentid=3686508
Marshmallow: I'm willing to post a VT Enabled kernel here when (and if) our device reach nightly status on CM13.
BEWARE those kernels are for P600 (wifi version of Note 10.1 2014). I take no responsibility if you've bricked your device by flashing it to the wrong device/setup.
Additionally those apps would be needed:
a) Meefik's Busybox v1.24.1 (Download the apk and install it, once installed, do as follows: open the app -> tap "install" in the lower right corner -> OK)
b) LinuxDeploy v1.5.6 (Download the apk and install it, once installed, open the app -> press the "menu" button -> tap "settings" -> tap "update env" -> OK )
c) Linux Deploy's companion app (LinuxCanvas I named it)
d) Privilege Terminal (Terminal Emulator is more feature packed but for the purposes of this guide Privilege Terminal is preferable as you can paste content coming from HTML pages, directly to it)
e) Lastly, certain Configuration Files are needed (download and extract the contents to the root of your internal storage)
THE GUIDE
The guide is really made out of 11 simple steps. You can "blindly" follow them and you'd get a fully working image. Preferably, though, you'd also read the explanations of each step. I've included them because (as mentioned above) this guide is a work in progress. So making you privy to what each step does would hopefully lead to a better guide. Probably one with less steps and even more functionality. The explanation part would also help you debug a step if (for some reason) it didn't work correctly to your device.
So on we go:
1) Copy xorg.conf:
a) Open Privilege Terminal
b) Run:
Code:
su;
cp /data/media/0/Linux/res/xorg.conf /data/data/ru.meefik.linuxdeploy/files/share;
echo"";
Explanation:
The xorg.conf file is basically where input-output devices are mapped. I've modified it to support as many as 8 input devices as well as to support the S-Pen (w right click function!). If you want to add more devices, or for some reason your S-pen does not work and/or you prefer the S-pen button to work as middle click you can modify by navigating to Linux/res/xorg.conf (you can open it with any text editor). To find to which events your devices are mapped you have to run cat /proc/bus/input/devices in Terminal Emulator. From that you could see to which event you can map your S-Pen and/or the rest of your external devices. As it stands I have S-pen as event8 (the default in most roms) and my keyboard and mouse as 10 and 11 respectively (that's how they get mapped in my devices, but they may get mapped differently to yours).
Note: Apart from S-pen everything else doesn't *have to* be mapped precisely (even if your mouse is called "keyboard" it would still work"). Also as a general heads up please connect your devices after device boot as if you have them connected already (say through OTG connection) as the device boots, the handler numbering would be messed up (for example the mouse could be event5 and s-pen event10)
2) Create a Linux image
a) Open Linux Deploy
b) Navigate to properties (Arrow showing "down") and choose the following Configuration:
Use the Default option to all except:
To Distribution Suite: Wheezy
To Installation Path: change the "/storage/emulated" part to "/data/media" (everything else stays as is)
To Select components: Tick X server, untick VNC server
To Graphics subsystem: choose Framebufer
To GUI settings: choose DPI = 230 (or anything higher if it suits you) and untick Force Refresh
To Custom Mounts: Tick it
To Mount Points: Delete the extant mount points (select them -> press "menu" -> delete) and add the following:
/data/media/0
/mnt/media_rw/extSdCard
/mnt/media_rw/UsbDriveA
/mnt/media_rw/UsbDriveB
If you want to add support for more External devices you can add up to 4 more ( /mnt/media_rw/UsbDriveC - /mnt/media_rw/UsbDriveF )
c) Return to Properties' main menu and Tap Install (first selection)
d) Wait (quite a bit) until it reads "<<< install". It should read "processing triggers" on the line just before it, if not, reboot and follow step (c) again (re-install)​Explanation:
I was only able to make Debian and Ubuntu variants work with our device. In principle everything should (and can) work as well, but since I'm mostly accustomed to Debian's eco-system I never bothered to investigate. Similarly (from windows environments) only LXDE and XFCE reliably work (KDE and Gnome technically "work" with Debian too but they're ultra slow). For this instance I chose Debian Wheezy + LXDE due to GUI performance issues mostly, every other disto/window manager causes considerable lag in window placement. I used to use Debbian Jessie + XFCE, love XFCE's features (sessions, Window snap), but the ultra-slow window placement mostly killed the GUI experience that I was after. So I reverted to the less featured but lighter on resources LXDE.
Note: Our tablet's internal SDcard is/would be mounted to /mnt/0 when inside the chroot Linux environment ( similarly External SDcard -> /mnt/extSdCard , 1st external Storage -> /mnt/UsbDriveA , etc ). If you're on another device (not P600) running the command "mount" from Terminal is going to give you where in which paths your storage mounts to, in which case you'd have to change the mount points in LinuxDeploy accordingly.
3) After the linux image is created (Linux deploy says "<<< install") go to Linux's Shell:
a) Go back to Privilege Terminal
b) Run:
Code:
/data/data/ru.meefik.linuxdeploy/files/bin/linuxdeploy shell;
echo"";
Explanation:
It starts the Shell of the freshly installed image
3.5) This step is only relevant to those running Stock Samsung 5.1.1 rom. DO-NOT-RUN it if you're on any other version. Giving root permissions to the default user ("android"):
Run:
Code:
sed -i '/android/c\android:x:0:5000:x:/mnt/0/Linux/Home:/bin/bash' /etc/passwd;
echo"";
Explanation:
Due to complication with SELinux permission (from Android 5 and up most possibly), as a workaround I had to give root permissions to user "Android". See Issue "8" in Post #3 for more information.
4) Change Home folder's path:
Run the following commands:
Code:
usermod android -d /mnt/0/Linux/Home;
rm -rf /mnt/0/Linux/Home;
mkdir /mnt/0/Linux/Home;
cp -a /home/android/. /mnt/0/Linux/Home;
echo"";
Explanation:
Technically this step is optional but I would strongly advice against ignoring it as it allows an 1:1 communication between Android and Linux's user files. By choosing a folder that is visible by android file managers (/Linux/Home) it allows for the user to instantly manipulate the data he/she just created within Linux. For example a document file that is saved on (Linux) Desktop is easily visible by navigating to Linux/Home/Desktop or better yet it's automatically detected by the relevant app (for example a music app would "see" your music Folders, a video app your "Linux videos", etc). Additionally it uses the /sdcard partition which is close to 28GB in size, instead of the 4GB micro-partition that LinuxDeploy created (which is better used by the software that you're going to install there).
5) Apply basic HiDPI fixes:
Run:
Code:
cp /mnt/0/Linux/res/.gtkrc-2.0 /mnt/0/Linux/Home/;
echo"";
Explanation:
It solves basic issues that arise from the HiDPI environment of our devices. Things like CheckBoxes, ScrollBars, even Double Click behavior. The changes are only detectable on GTK2 software. Since all the software I've been using is based on GTK2, it is enough for me. However if you're using a GTK3 based application please by all means recommend of a way to make similar changes to GTK3 applications (I think equivalent -system wide- changes happen when one modifies the /etc/gtk-3.0/settings.ini file). Lastly if the dimensions/changes are not to your taste you can always try different ones by changing their numeric values on Linux/res/.gtkrc-2.0 file (editable by any text editor, beware it's a hidden file) and then rerun this step. What numeric value is controlling what, is rather straightforward due to the naming that it follows. So happy editing!
6) Enable GUI Repaint:
Run:
Code:
chmod +x /mnt/0/Linux/bin/logout;
echo"";
Explanation:
It fully enables the menu button within the LinuxCanvas app (it redraws the environment). I could bundle the script with my "LinuxCanvas" apps, but I wanted to make it modifiable (for example right now it kills the LXsession), but if you were to use a different Window manager you'd probably need to use a different command) and since my app creation powers are very (very!) basic, I simply exposed an internal part of my app. It can be found in "Linux/bin/logout". You can edit it with any text editor (again you'd have to rerun this step after editing is done).
7) Resize Windows Borders:
Run:
Code:
chmod +x /mnt/0/Linux/bin/resizeBorder; chmod +x /mnt/0/Linux/bin/revertBorder; /mnt/0/Linux/bin/resizeBorder;
echo"";
Explanation:
Another Fix needed due to the high DPI of our devices. It basically makes the borders of the windows that much thicker. Since it obviously makes the look of the environment less easy to the eyes I would welcome any work-around. Also you can run
Code:
/mnt/0/Linux/bin/revertBorder
(from within linuxdeploy's shell) to return the Windows borders to their initial size if you're so much bothered about the ... foul look (again I'd advice against it as it'd kill some of the ease of use of window placement/resize). If you want differently sized borders you can always edit the script (found in Linux/bin/resizeBorder) with the text editor of your choice. My current value is 10 pixels you can change it to whatever. Also you don't have to change it for every theme, just the one you're using. Again, I'm open to recommendations (for example what value do you think is better for usability?)
8) Fix Mouse Cursor size:
Run:
Code:
sed -i '/CursorThemeSize/c\iGtk/CursorThemeSize=58' /etc/xdg/lxsession/LXDE/desktop.conf;
echo"";
Explanation:
It makes the Cursor bigger. It doesn't always work. I have to investigate, but I can't be bothered since it rarely (ever) caused me any issues. Still I'd welcome it if someone is willing to investigate and see why it works only some of the times (it probably has to do with boot sequence/times).
9) Install basic Components:
Run the following:
Code:
apt-get update;
sudo -u android sudo apt-get install -y samba gvfs-bin gvfs-backends zip iceweasel xfce4-mixer dmz-cursor-theme gstreamer0.10-alsa;
echo"";
Explanation:
Though the above shell command we add some basic functionality to our Linux installation, like a Samba server (network places for the Windows guys), a browser (Iceweasel is called in Debian) and a virtual keyboard (very important for those using only the S-pen).
10) Exit:
Close Privilege Terminal (press "CLOSE" on the upper right of the app and then "OK")​Explanation:
We're better off to shut down this particular shell instance as it may mess up with the booting of our Linux image later
11) Start Linux:
a) Open "LinuxCanvas"
b) Press Volume Up, wait a bit and voila! (if it doesn't work the first time, press the "menu" button to repaint)​Explanation:
The App is included below this post. This is a veeery basic app (my app-creating prowess is close to zero) which acts as a companion to LinuxDeploy. LinuxDeploy was/is mostly created to fascilitate the XServer/VNC crowd, but the "Framebuffer" crowd has been left a bit in the cold. With as a result the "Framebuffer" functionality of LinuxDeploy to be quite basic (it only creates a black frame and that's it). So I added a bit more than that (it's the super-duper edition ). Orientation is locked, back, Escape buttons blocked (they cause issues). Also:
Volume up -> starts the chroot environment
Volume down -> kills it ("un-chroot")
Menu button -> "redraws" the graphical environment
And that's it. The caveat is of course (as a companion app to LinuxDeploy) that it is heavily dependent to LinuxDeploy, so any change that the developers would choose to make would -predictably- break functionality, so please PM me if/when that will happen. Also I'm a very un-creative person when it comes to App-creation so I would be veeery happy if another user was to take this task from me (someone who -hopefully- would make a much better featured and beautiful companion app), so updating this guide would be the only task that would remain to me.
As you may be able to see, by (as of) now you're good to go and you can fully work on your brand new Desktop environment. However I would like to add some less essential tips/fixes on my second post as well as a list with the remaining issues and workarounds to them (in my third post).
In my first post I described how you can get a relatively well performing Desktop envrironment working on our Samsung Note tablets. This post acts as a companion. Most of the tips here are either completely optional or easy to figure out. Still they may seem useful to many users so I include them here anyhow. As always any recommendations to improve on them or any additional tips would be well considered.
1) DPI Tips and seting up Volume Control :
a) Right click (S-pen button press) on Start menu -> Panel Settings -> Height: 70 and Icon: 70 -> Panel Applets (tab) -> Application Launch Bar (the first one) -> Edit -> Florence (extend Universal Access) -> Add -> Close -> Application Launch Bar (you have to scroll down for this one) -> Edit -> Mixer (extend Sound & Video) -> Add -> Close -> Close
b) LXDE Button -> Preferences -> OpenBox Configuration Manager -> Appearance -> change all to 13-15 (except Active/Inactive on-screen Display: 11-12 ) -> Close
c) File Manager (Black Icon) -> Edit -> Preferences -> Display (Tab) -> Size of Big Icons (96), Size of Small Icons (48), Size of Thumbnails (256), Size of Side Pane Icons (48) -> Close
d) Click the gear looking icon (in the lower-right part of the screen) -> Select Controls... -> Tick Speaker Digital -> Close -> Quit​Explanation:
Those are easy-to-figure but I think essential changes that need to be done so that to make the LXDE enironment more functional on our HiDpi (and often keyboardless) screen. I would be glad to add more HiDPI changes accesible through LXDE's GUI (that you'd think that may be important).
2) If you want Linux's user data to be readable/writable/cacheable by/from your android apps:
Run the following from Privilege Terminal:
Code:
su;
find /data/media/0/Linux/Home -type d -exec chmod 777 {} \;
find /data/media/0/Linux/Home -type f -exec chmod 777 {} \;
echo"";
Note: This step has to be re-run if for whatever reason some of your Linux user-files are -again- not accessible from Android.​Explanation:
While the folder Linux/Home contains all your personal data from Linux it's only accessible from within Linux. That's an obvious security feature, but it may also affect the practicality of running Desktop Linux side by side with Android. By allowing permissions to all "your" files they can be literally read by everyone/everything which also includes your android Apps (for example your edited photos could be "seen" from within your android gallery) which can be extremely useful to many, as well as an easy way to send/save files from Android to Linux, too.
3) In case you want to remove android's mouse cursor (for more experienced users, as inability to follow the steps will -well softbrick your device. BEWARE! )
a) If you're using Windows (if not equivalent steps have to be followed on your mac/linux) unzip the adb folder (included to the bottom of this post) to C:\ and install the samsung drivers (if you haven't already): http://developer.samsung.com/technical-doc/view.do?v=T000000117
b) Reboot your tablet to recovery and connect it to your PC
c) mount /system (from mounts and storage menu or similar). Disable MTP too, if applicable
d) On your PC navigate to C:\adb from command line
e) run:
Code:
adb pull /system/framework/framework-res.apk
f) Navigate to C:\adb, create a copy of framework-res.apk and rename it to framework-res.bak
g) Open the framework-res.apk (the original) with WinRar (or similar) and navigate to res\drawable-sw800dp-xhdpi or res\drawable-xhdpi-v4 and rename pointer_arrow.png to pointer_arrow.bak . Close Winrar
h) Back to the command line run the following
Code:
adb push framework-res.apk /system/framework
adb push framework-res.bak /system/framework
adb shell chmod 0755 /system/framework/framework-res.apk
adb reboot
After having followed the above guide succesfully you can restore the mouse cursor and then kill it again as easily as described below (those commands reboot the device, so beware)
To restore the cursor (after having it killed) in Privilege Terminal run:
Code:
su;
mount -o rw,remount /system; mv /system/framework/framework-res.apk /system/framework/framework-res ; mv /system/framework/framework-res.bak /system/framework/framework-res.apk ; chmod 0755 /system/framework/framework-res.apk; reboot;
echo"";
To kill the cursor (after having it restored) in Privilege Terminal run:
Code:
su;
mount -o rw,remount /system; mv /system/framework/framework-res.apk /system/framework/framework-res.bak ; mv /system/framework/framework-res /system/framework/framework-res.apk; chmod 0755 /system/framework/framework-res.apk; reboot;
echo"";
Explanation:
The above is to kill android's mouse cursor so that when you connect a mouse you won't have two mouse cursors on-screen. It would have been a far less dangerous endeavor if I was to include a flashable zip file doing those changes, but I much prefer to expose the way by which you can kill android's cursor, so that any user would be able to do the same on any other version of android that he or she is willing to run Linux on. Also as a bonus the user is just "one" shell command away from reverting his mouser cursor. Obviously any bricked devices resulted from this method is the user's responsibility and the user's alone (however it's a very recoverable situation)
4) Tips to make browsing easier when you'd want to use the Pen Exclusively:
a) Open the browser (Iceweasel) while in Linux
b) Type on the URL bar -> about:config-> "I'll be careful, I promise"
c) Search for: browser.search.showOneOffButtons . Change its Value from true to false (double click on it)
d) go to: ("hamburger" button ->)preferences -> privacy (tab) -> Iceweasel will: -> Use Custom settings for history -> Untick Remember search and form history
e) Right click on the search bar and untick "show suggestions"
f) Restart Iceweasel​Explanation:
It kills Firefox/Iceweasel's fancy search so typing on the search bar when using pen/virtual keyboard is twice as fast. When I found out about that it completely transformed my usage patters, now I often "quick boot" to Linux if I want to browse to a web-site that android's mobile browser refuse to have rendered. Oh BTW, if you followed the "DPI Tips" (tip No1) the virtual keyboard (florence) can be found to the left of the "start button" (for quick reference).
5) In case you want a multilanguage keyboard:
a) Enter LinuxDeploy's shell by running the following on Privilege Terminal:
Code:
su;
/data/data/ru.meefik.linuxdeploy/files/bin/linuxdeploy shell;
echo"";
b) Run the following command. Where xx your choice of language: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes (only 639-1 codes are applicable)
Code:
echo 'setxkbmap -option grp:ctrl_shift_toggle "us,[B]xx[/B]"' >> /etc/xdg/lxsession/LXDE/autostart
c) when back in Linux/LXDE do the following:
Right click on Start menu -> Add/Remove Panel Items -> Add -> Keyboard Layout Switcher -> Add -> Close​Explanation:
It allows to change keyboard's layouts in both your virtual keyboard (by tapping the flag icon) and physical keyboard (by pressing ctrl+shift). I have not tried any other key combinations other than ctrl+shift so I don't know how well they'll work but you're welcome to try/modify (just replace the ctrl_shift part of the command with any other combination, as you're following the steps).
6) Kernel level changes (Please read the expanation, those changes may well cause instability! BEWARE!):
To achieve those you'd need the Donate version of TricksterMod (much recommended app to own)
Ultra Aggressive OOM Values:
a) You can access them by navigating to General (tab) -> MinFree Control while in Tricker Mod
b) When there please save the default values ( tap on "untitled", then "save" and name it default -> ok )
c) Then proceed to change the values as follows:
Foreground = 384
Visible = 412
Secondary Server = 480
Hidden App = 512
Content Provider= 640
Empty App = 768
d) Again save them as "Aggressive" ( tap on "untitled", then "save" and name it aggressive -> ok )
e) Tap on the tick (that has just showed up) to validate the changes​ Undervolting
a) If your kernel does not support it you won't find it. If it does, you'd find it by choosing the "Specific" tab (MTU Voltages).
b) Similarly as above please save the default values ( tap on "untitled", then "save" and name it default -> ok )
c) Proceed to change the values. I won't include any here as every SoC is different, but typically the greatest clock the greatest undervolt is achievable. As an example I started by lowering my volts by around 100 mvolts in my highest clocks, and progressively less in my lower clocks (for example 1900Mhz was lower by 125 mvolts, 1800Mhz by 100mvolts, etc). You (the user) are the the only one who can find the best volts for your device (low yet stable). If your device starts to get unstable (restarts without notice) you'd have to choose higher volts (you went too low), etc.
d) Try different volt levels (Tap on the tick on each of your attemps)
e) When you found stable enough (hopefully low enough) voltages, save them ( tap on "untitled", then "save" and name it low -> ok )​ As an add-on you can "tell" TrickerMod to boot with the settings you just chose (menu button -> tick on "Kernel Settings"). Else you'd have to manually choose "your profiles" with every reboot.​Explanation:
I struggled very much before deciding to add the above section. I know it may cause instability to many users (the undervolt) and/or significantly lower the capacity of the device to keep apps on system's RAM (due to the high OOM values) but eventually I decided against not including it. The reason is that Linux/Desktop usage can be characteristically RAM and battery hungry. That makes the above tip(s) less of an often uneeded option and more of a necessity, especially to those willing to make heavy use of the Desktop environment. Basically what running a whole OS via chroot means is that you'd need most of the resources of the device. That can only be done by using uncharacteristically high "killing" thresholds.
The OOM values -above- basically mean that the device would kill significantly more background processes than it is expected. In fact I've experimented with many values and the above are the only ones that I've found to (still) be acceptably "low" yet allowing seamless use of the chroot/Linux environment. I could go lower but I start to see hits in performance. Also keep in mind that those values are also dependant on the rom one uses. There are other Roms that "react" better on low ram envrironments than mine. So -obviously- those values are not panacea, but I would be surprised if significantly lower values were not to harm the "Linux experience" no matter the rom.
So -yeah- background processes would be killed left and right. The upside is more RAM for Linux use, less battery leaking from background processes and surprisingly better responsiveness in Android too. In fact that's the other reason why I've kept those values, I've never seen my tablet being as responsive than after adopting those values.Still depending on your usage patterns it may start killing some important background process of yours, in which case I'd advice lowering those values (but not way too much as it would impact Linux performance).
For undervolting (if you can do it) the story is very similar. It may well cause a more unstable system, but it greatly helps with performance and battery life. On Linux there are processes that are characteristically harder to the Processor than most of anything that can be found to a "consumption OS" like Android. This means that the high clocks of our device are used much more frequently, leading to a very much lower battery life, but worse of all overheating which leads to throttling (low performance) and even possibly lowers the SoC's lifespan. Undervolting sets to aleviate those issue. After undervolting my processor I'm getting much better *sustained* performance and while on Linux quite better battery life too, about 30-40 minutes more! I like to say that undervolting is the "overclocking of mobiles", as it achieves the same end-result by aleviating or -even- eliminating throttling, one of the most important causes of low performance on mobiles.
7) Kill multi-window before starting Linux:
Well that's very straight forward, just toggle multiwindow off on quick settings.​
Explanation: Ram (as explained above) is a precious commodity for "serious" Desktop work, so about ~100 MB of RAM is being freed in that way. But most importantly it disallows accidental activation of the multi-window panel which is a quite frustrating experience when it happens while "Desktoping".
This concludes my second post. The following (and final) one is all about the things that still have to be done (where I'd need you -guys- more) and also some work-arounds that I found to those.
With two posts above us, this guide is mostly concluded. Still it may probably be worth the while to read a bit more as in here I include a few workarounds. Which while they're not true solutions in any shape or form, they may make the experience juuust seamless enough...
BUGS/ISSUES
1) No Hardware Acceleration (Biggest)
Explanation:
This is pretty much the elephant in the room. Without a solution to this everything written here is/would be a waste for many guys. Especially those willing to use rendering software, or generally care about media consumption/creation. Unfortunately this is also (by far) the toughest nut to crack. It most probably requires knowledge far greater than my own (even though I must admit that I never seriously considered "solving" this issue). In fact it is here that I could use as much help as possible. If we solve this, suddenly our tablet is viable as a laptop replacement for most uses ... In sort: Solution pending, no workaround in sight, zip, nothing ... it's the Chuck Norris of our problems
2) No ability to redraw (Biggie)
Explanation:
Another big issue. Basically if you lose focus (say press home by mistake) you cannot regain it. Every process continues on the background, of course, your picture is lost forever though, and it's mostly non-recoverable. In the workaround section I have posted the very hacky solution that I'm using (which is no way, shape or form a true solution). This issue's importance is somewhat tempered -though- by the fact that our tablet already operates in a low-Ram environment so putting the chroot/Linux environment to the background for a bit would probably cause a lot of its processes to be eventually killed by Android's ram manager as it would try to regain Ram for the foreground app. Also it's probably easier to solve but -again- it requires knowledge beyond my own. The issue has to do with Android and chroot/Linux "fighting" for the framebuffer's exclusivity. Once Android gains it, it never gives it back (selfish dastard ).
3) Devices cannot be detected "on-the-fly"
Explanation:
A big issue still, but a lesser one than the above two. Again it has to do with the GNU/Linux lacking some kind of daemon constantly "sweeping the place" so that to detect changes. I have not looked deeply in this issue as the workaround has been enough for me. Maybe not that hard of an issue to be solved. Again I'd welcome any recommendation(s).
4) No touch support:
Explanation:
This is a big issue at first glance, I happen to think that it is one of the smallest ones, especially if you think about it: GNU/Linux GUI is/was created for a highly accurate pointing device and the finger(s) is certainly not it. Similarly right click is very hard to be performed by hand (probably via a gesture) with much accuracy. Both of those issues are solved by the pointing device we already own, the s-pen. I find the pen to be faster to a HiDPI Linux environment simply because you make less mistakes with it. Also it supports hovering, so it simulates a mouse pointer on-the-go, much better than a hand. Still touch support would help with typing on the virtual keyboard (it would have been faster due to multi-touch) and scrolling (again multi-touching). It's due to those issues that I include the lack of touch support as an issue. Again I'd welcome it if anyone was to come with (any) ideas regarding (adding) touch support. BTW simply mapping the relevant event on xorg.cong doesn't work, don't know why.
5) Pressing Middle mouse Button returns to Home (thus kills the picture)
Explanation:
It's connected to problem No2. This is more of an annoyance (though) than a true issue as pressing the middle button is not of much use on GNU/Linux's GUI environments. Still I'm using a workaround (posted below) that completely eliminates this issue (sadly it needs xposed).
6) No native way to control brightness (there's probably a solution, never bothered to investigate)
Explanation:
Again mostly an annoyance, as there are alternative ways to control those. A work-around is posted below
7) HiDPI is not well-supported by a lot of Linux's Software.
Explanation:
Depending on your kind of use you may find yourself facing with a software that does not scale well to the ultra-high resolution of our tablets. That would mean veeery small GUI elements and an almost inability to use it. Thankfully most have workarounds (to some it is in-built, to others it requires the installation of some HiDPI theme, to others yet editing config files would do the trick). I regard it less of a problem that it initially seems because by now many/most small laptops are offering a HiDPI screen with as a result forcing most Linux Software maintainers to get by the times and either fix the issue with their particular software, or at least offer a work-around. Obviously I'm not going to post any of those here as the list would be non-exhaustive. If someone wants to create a post (and maintain it) with HiDPI workarounds for many/most of the popular software I'd be glad to link it here (as a work-around)
8) SUDO cannot be be used by regular users on Samsung's Lollipop
Explanation:
Due to changes in SeLinux policy implemented from Android 5 and on permission is denied when a regular use is trying to use the SUDO command
WORKAROUNDS:
To Issue 2) Pressing the menu button. It re-draws the LXSession. The caveat is that you lose all your progress (it's a sort of a "soft-reboot").
To Issue 3) Input devices are detected with a simple redraw (pressing the menu button), but for external storage you have to wait a bit (around 10 seconds after you've connected it) and *then* redraw
To Issue 5) The solution to that is hacky (as it needs xposed) but it works: You'd need Xposed Additions Pro to disable home while on LinuxCanvas App, plus a gesture to get back home (you do that using the gesture navigation plugin)
To Issue 6) You can control brightness through the notification center as you would in any other app.
To Issue 8) Give root permissions to chroot's main user ("android"). Unfortunately that's an obvious security concern and I'm feeling quite uneasy to have to do that. I'd feel much better if this permission issue would be resolved.
FEATURES THAT I HAVEN'T CHECKED:
1) External devices apart from External Storage, Mice and Keyboards.
2) Bluetooth File transfer
3) Cameras
4) GPS
5) IrDA
Explanation:
The above are all tablet functionality that I have not checked.
If I was to venture a guess I would say that they won't work "out of the box", but everyone is free to check. I'm sure there's some workaround to let them work (at least partly), but I had no need of them so I have not investigated further.
INSTEAD OF CONCLUSION:
With the guide concluded I would like to write (instead of a conclusion) the reason that I chose to "run" a desktop environment as above (chroot with the GUI rendered on Android's framebuffer). It's obviously neither the easiest to setup (running the GUI on top of an android-bornt Xserver is far easier to set-up, 3 steps, literally) nor the most efficient (a dual boot setup would be the ideal as far as efficient use of the tablet's resources go).
Well let me "combat" the above arguments one by one. Firstly choosing to use the android's Framebuffer as the renderer: Obviously it's hard to setup at it needs a "Virtual Terminal" enabled kernel (not easy to be found for those who are not into kernel compiling), but, maybe most importantly, it disallows of an easy way to change the resolution (it uses the screen's native resolution) leading to HiDPI issues.
Well, the reason to render on the Framebuffer instead of an Xserver app (like Xserver XSDL) is ... frankly responsiveness. Rendering directly to the framebuffer bypasses all the "lag" caused by the android implementation running beneath. The greatest example is typing responsiveness. Typing on our Note (using a phtsical keyboard), as you may have found out, is a tedious process. There's a very visible latency which causes constant errors when fast typing. This is completely solved by directly rendering on the Framebuffer (hence directly taking input events from kernel events, bypassing Android's stack). For a guy who types a lot, the difference is day and night, it finally turned my Android Tablet into a work horse. Of course the great increase in responsiveness carries over to the rest of the GUI as well.
Let me, then, tackle the second source of scepticism to the solution that I recommended in here. To many a true dual-boot is the holy grail of their idea of how/what an android tablet doubling as a productivity machine is. To me it's not, I've bought an android tablet not because I want a Linux laptop. In fact I already have one. No, I bought it *because of* android and having to "kill" it so that to boot my "productive" environment doesn't really make any sense to me. Sure I can always boot back to Android, but actually most people are not into distinct "productivity" and/or "consuming" modes. In fact most of my usage patterns are all over the place. For example I'm writing something for my paper, but then I want to carefully study another paper, heck I may want to watch a movie in the middle of all this. Sure I can do those two on Linux, but what's the point if I have a far more capable "content consumption" OS lying just beneath? No, my ideal mobile machine is one that produces in the best way possible but one that also lets me consume information in the best way possible.
I bought a tablet *because* I want to consume information much more efficently than what my laptop/PC would had allowed me to. I want to use the "PocketBook" app to read and MxPlayer to watch a movie from my NAS collection, but then I also want to get back to my fully featured IDE. A dual boot absolutely kills the flow (having to constantly reboot). In fact Microsoft's vision in this (Project Continuum) is I think ideal. Still Project Continuum is far from being practical (for the time being) and it may never become, simply because Developers may not support it, so the next best thing is to have my "Productiviy OS" and "Consumption OS" side-by-side in fact that is very much the reason that I've included "step 4" to my guide as well as the "redraw" option. I think it gives flight to the experience (having different "scopes" of experience).
THANKS TO:
Pretty much to everyone from the Android scene that let us enjoy such high quality experience via rooting, kernel modifications, etc. People like @Chainfire, @rovo89 (and many, many others) are indispensable for their services, it goes without saying.
Similarly thanks to everyone from the Open Source community and in particular the Linux Kernel, starting from Linus Torvalds all the way down to the mere user who's recommending a fix. And of course to the guys developing the software running on the Linux kernel (without it, it would have been useless to most).
Also thanks to @xluco for providing a feature-packed (and lately very stable) kernel for me to play with.
Oh and thanks to you guys, hopefully helping to fix (on the longer or shorter run) this mess of a guide. *Any* input would be much appeciated.
OK. CYa. I'm signing off (pheewwww)
Mini-Guide
INTRO
While it kind of saddens me since I've tried (and I think succeeded) to make the guide as simple as possible all the while explaining the steps, the low interest to it lead me to decide to post also post a quick guide (instead of a full guide) that makes no use of shell commands.
There are good news and bad news due to this. The good news is that the guide has contracted further yet its end result really does give a quick taste of well running Linux on our tablet. To sweeten the deal the guide posted in this post gives a quick taste to most devices running a VT (virtual terminal) enabled kernel, no matter the brand and/or Android version.
The bad news is that due to the little interest expressed in here and my extreme lack of time most bugs and annoyances would most probably remain unsolved ... sadly. In no way or shape does that mean that I'm discontinuing support, just that I'll be lukewarm about it and I mostly expect from you / the users to find more workarounds / solutions and hopefully post them here...
Anyway on we go.
PREPARATIONS
Follow the Preparation Section from the First post of this thread. Steps (d) and (e) are not needed, so you can leave those out.
Additionally you'd need to download and place the following two files accordingly:
a) Config Files (you extract the contents to the root directory of your tablet's internal storage, don't change the directory tree)
b) Linux Image (you simply place it to the root directory of the internal storage)
THE "MINI"-GUIDE
For starters make sure that you have followed the "Preparations" Section Exactly. One mistake is enough to make this guide not to work. So without further ado:
1) Open LinuxCanvas and grant it root access (if asked)
2) Create a Linux image
a) Open LinuxDeploy
b) Tap the "Back" Arrow in the upper left corner of the app
c) Delete the extant profile ("Garbage Bin" Icon -> OK)
d) Import the downloaded Profile (3-dot icon -> Import -> OK)
e) Double-tap to the imported profile (its name is "linux")
f) Navigate to properties (Arrow showing "down") and Tap "Install" -> "OK"
g) Be patient. When it's done it will read " >>>install"​3) Start Linux:
a) Go back to "LinuxCanvas"
b) Press Volume Up, wait a bit and voila! (if it doesn't work the first time, press the "menu" button to repaint)​
...and that's it (really). If you want to know what you get by following this guide (instead of the full one), the answer is "basically everything from the first post plus the first step from the second post". Which means that if you want the full deal you *still* have to follow Posts #2 and #3 (workarounds), but of course it's completely up to you.
Again, report any issues, annoyances or even workarounds that you may have found. I'm counting on them to make the guide better.
Cheers!
Great Work Man ....
@Stevethegreat Great Work Man , it's just amazing ... but unfortunately , in Iran , I can't download from the Linux Deploy's Server ... is there anyway I could get the Image to do the Process ( I'm not that lazy ) Or even the ready image to try booting on my SM-P601 ( mybe a better Idea ) ? ... if there's some way , I'll work on the performance a bit ... also , maybe we can get the boot script used in my ARM-UEFI to get it sooner ... Also I have an idea that your ISO size can tell me if it's possible ( Dual Boot , I mean , like what MultiROM does , but much nicer and faster without the Android booted like a single ROM ) ... Great thanks for your effort ...
With Best Wishes
Hitman1376​
I have to wonder if this will work for other Note devices. (for instance I have the note 3)
I'll give it a shot, and the changes I make to obviously match my device, I'll post here.
Thanks for this mate, well done
Sweet. I will try when I have time
Sent from my SM-P600 using Tapatalk
kevp75 said:
I have to wonder if this will work for other Note devices. (for instance I have the note 3)
I'll give it a shot, and the changes I make to obviously match my device, I'll post here.
Thanks for this mate, well done
Click to expand...
Click to collapse
Mate , It needs a Kernel with VT Support , don't forget to have one .... also with " Frame Buff " enabled , it's better .... Good Luck
With Best Wishes
Hitman1376​
kevp75 said:
I have to wonder if this will work for other Note devices. (for instance I have the note 3)
I'll give it a shot, and the changes I make to obviously match my device, I'll post here.
Thanks for this mate, well done
Click to expand...
Click to collapse
It will, most probably without much/any tweaks to the individual steps as Note 3 is very similar hardware wise.
But I have to warn you. Firstly, you'd need a CONFIG_VT enabled kernel. That's fairly easy to get from Note3's kernel guys (it's just an extra option to enable). If they are not willing to provide you with one such kernel, you'd have to wait until I'd find the time to write a guide on how to create one from the sources.
Secondly, you'd have to be much more agressive with your DPI settings as a Note 3 screen is way smaller than our tablet's. Of course you can always opt to work on an external screen, in which case you'd have to be much more restrained with the settings that control the dpi/size of the elements (by contrast).
hitman1376 said:
@Stevethegreat Great Work Man , it's just amazing ... but unfortunately , in Iran , I can't download from the Linux Deploy's Server ... is there anyway I could get the Image to do the Process ( I'm not that lazy ) Or even the ready image to try booting on my SM-P601 ( mybe a better Idea ) ? ... if there's some way , I'll work on the performance a bit ... also , maybe we can get the boot script used in my ARM-UEFI to get it sooner ... Also I have an idea that your ISO size can tell me if it's possible ( Dual Boot , I mean , like what MultiROM does , but much nicer and faster without the Android booted like a single ROM ) ... Great thanks for your effort ...
With Best Wishes
Hitman1376​
Click to expand...
Click to collapse
Hey, LinuxDeploy offers a way to use different servers than the Russian ones. Also you can fiddle with the DNS server options (maybe there's a DNS server in your country/provider that resolves the Russian address).
edit: Oh BTW (to the second part of your past). While I'd welcome anyone at all working on bringing truly native linux (in the form of dual-booting) I'm not too sure of it's usefulness. Still you're free to use parts of my guide towards that goal (if that's what you wish). You can read the final part of my guide ("Instead of Conclusion") to see why I'm not that interested to a true dual-boot.
YYYESSSS!!!!
http://screencloud.net/v/gz6h
I'll let you know how I make out with this! Man, it'd be great to get ubu-touch running on it...
kevp75 said:
YYYESSSS!!!!
http://screencloud.net/v/gz6h
I'll let you know how I make out with this! Man, it'd be great to get ubu-touch running on it...
Click to expand...
Click to collapse
Yeah , that's enough. All it takes now is to see whether my step will work as is. If not I'm sure small tweaks specific to your device will make them work (like changing some of the numeric values in xorg.conf and/or the other files). Keep us posted
Stevethegreat said:
Hey, LinuxDeploy offers a way to use different servers than the Russian ones. Also you can fiddle with the DNS server options (maybe there's a DNS server in your country/provider that resolves the Russian address).
edit: Oh BTW (to the second part of your past). While I'd welcome anyone at all working on bringing truly native linux (in the form of dual-booting) I'm not too sure of it's usefulness. Still you're free to use parts of my guide towards that goal (if that's what you wish). You can read the final part of my guide ("Instead of Conclusion") to see why I'm not that interested to a true dual-boot.
Click to expand...
Click to collapse
Sure ... thank in deed ... I'll take a look but I don't think it's possible cuz the servers were unreachable ( I tried almost all of them )
... God damn those useless guys who do the web infiltration ... why a Linux containing server should get filtrated ? ...
brilliant guide mate theres a new version of my VT enabled kernel here btw http://d-h.st/fr1s
xluco said:
brilliant guide mate theres a new version of my VT enabled kernel here btw http://d-h.st/fr1s
Click to expand...
Click to collapse
Yeah thanks. I made sure to update the OP :good:
Stevethegreat said:
Yeah thanks. I made sure to update the OP :good:
Click to expand...
Click to collapse
Here's the stock 5.1.1 kernel for the P600 with VT enabled, platform.xml fix for external stoarge and chainfire's modified sepolicy for rooting without disabling SELinux.
http://d-h.st/0ImD
Edit: it takes FOREVER to boot, so be patient and ignore the seandroid notice!
xluco said:
Here's the stock 5.1.1 kernel for the P600 with VT enabled, platform.xml fix for external stoarge and chainfire's modified sepolicy for rooting without disabling SELinux.
http://d-h.st/0ImD
Edit: it takes FOREVER to boot, so be patient and ignore the seandroid notice!
Click to expand...
Click to collapse
Thank you very much indeed! I've made some attempts to compile on my own, but it wouldn't boot properly (it would boot into Android and after a while reboot).
I'll now start working on porting my guide. Much appreciated!
So...
Followed to a T
Results: Now have a nice lightweight desktop on my phone
Nice job on the tutorial mate!
Sound problem.
Stevethegreat said:
6) No native way to control sound and/or brightness (there's probably a solution, never bothered to investigate)
Click to expand...
Click to collapse
A possible solution to your sound issue, but it is dependent upon your Linux distribution in use:
Most newer distros of Linux use Pulse Audio for sound. This will not work as you need dbus, udevd, and a few other background processes running which are not functioning properly (or at all) in LinuxDeploy. A work around for this that I have successfully used in the past with LinuxDeploy on a Motorola Flipside was to download ALSA in your Linux distro. In my case it was Debian so I followed these steps:
1. Using the aptitude package manager, I purged all PulseAudio.
2. Using the aptitude package manager, I installed all the alsa tools and libraries.
Be sure to get the Alsa mixer.
3. When I logged in, I could, as root, bring up the alsa mixer in the terminal (eventually I mapped it to a shortcut on the desktop), and once open I could adjust the sound there. Note, you have to turn on an output device in the mixer, such as the SPK_HP or BT_SPK and then set the volume. I usually would start a sound file playing, like music, and then enter into the mixer and adjust to satisfaction.
(NOTE: these are steps, not commands, because your Linux distro or version thereof may differ.)
One problem that I had there before was that the Android system, in an effort to preserve order, would turn off the output device channel I selected after there was no sound coming out of it. E.g. the song ended, then Android would set the SPK_HP back to 0 or mute. SO to avoid that, you need to adjust the permissions of the sound card with chmod and chown to prevent Android from touching it until you are done. You can use LinuxDeploy's start/stop script options to allow you to create scripts to "steal the device" and "give it back" when you start/stop. Or you can simply keep the mixer handy and set the volume/output device every time you play a sound file. I found in practice that I didn't use the sound too much, but your mileage may vary.
-AlaskaLinuxUser
kevp75 said:
So...
Followed to a T
Results: Now have a nice lightweight desktop on my phone
Nice job on the tutorial mate!
Click to expand...
Click to collapse
Glad to hear!
Still there are bugs to be solved, I pray to have them solved (with the help of others hopefully), so keep yourself tuned.
I have to ask though: Is everything working OK? What about the s-pen? Also is the DPI suitable to your phone, or did you have to play with it? (changing the numeric values in some of my files?).
Thanks for trying to out my guide.
Cheers.
is this tested on 5.1.1?

Categories

Resources