text:
What do Android application permissions mean?
When installing an application, the application lists permissions that it needs to perform its  functions.

I am creating this list of the the system defined permissions and a description of what they mean. It is a community wiki so if new permissions are added in the future they can be added to this list.

A basic list can also be found at the developers site. If anybody is looking for a German list, this can be found here (disclosure: I'm the author of the linked book, which is also available for download here as epub/pdf/mobi for free).

The lists below are great, but would be better for users if each permission included a correlation to what is seen in the Play Store or at install time.

This is all the available permissions that an application can require. Of this list, there are some that can only be "requested" by "System" applications. Applications that are not system applications will not be able to request permissions to "System Permissions". Only applications that are in the /system/app location and signed with the System key can request these specific system permissions.
These are the names that are used by the developer of the application to request the permission, but the name that is displayed when installing should have some similar wording to the name.

Permissions

ACCESS_CHECKIN_PROPERTIES

Allows read/write access to the "properties" table in the (Unix security)
checkin database, to change values that get uploaded.
Group: LOCATION
Level: SYSTEM

ACCESS_COARSE_LOCATION

Allows an app to access approximate location derived from network location
sources such as cell towers and Wi-Fi.
Group: LOCATION
This permission is usually used by applications that display location based
ads by publishers like Admob (Google).

ACCESS_FINE_LOCATION

Allows an app to access precise location from location sources such as GPS,
cell towers, and Wi-Fi.
Group: LOCATION
This permission can be used by applications that display location based ads
by publishers like Admob (Google). It is also used by applications that want
your exact location. Examples would be Navigation applications, "Check-In"
apps like 4square.

ACCESS_LOCATION_EXTRA_COMMANDS

Allows an application to access extra location provider commands.
A good example for poor documentation, as even books on Android application
development state: The Android documentation doesn’t tell us
which location commands are “extra,” so we’ll ask for all of them.
Group: LOCATION

ACCESS_MOCK_LOCATION

Allows an application to create mock location providers for testing, and is
intended for development use in e.g. the Android Emulator (to save the dev
from having to run around to check if positions are displayed correctly).
Cases where this is needed in an app ready for endusers should be rare.
This allows an application to fake the location information.
Group: LOCATION

ACCESS_NETWORK_STATE

Allows applications to access information about networks.
Information including if a network is available (or just connecting), what
type of network the device is connected to, if any (WiFi, 3G, LTE), if it's
in Roaming, and also reasons for a failed connection attempt (if any).
Good use: The application may check the state of your connection before
trying to access the internet, and e.g. restrict itself to WiFi for some
actions.
Bad use: Only in combination with other permissions (e.g. data collection for
profiling).
Group: NETWORK

ACCESS_SURFACE_FLINGER

Allows an application to use SurfaceFlinger's low level features.
SurfaceFlinger is part of Android's media framework. It provides a
compositor which takes care for rendering in frame buffers (so this has to
do with graphics).
Group: SYSTEM_TOOLS
Level: SYSTEM

ACCESS_WIFI_STATE

Allows applications to access information about Wi-Fi networks
Group: NETWORK
This could be requested by any application that uses internet access. The
application may check the state of your connection before trying to access
the internet.
Good/Bad use: See ACCESS_NETWORK_STATE above.

ACCOUNT_MANAGER

Allows applications to call into AccountAuthenticators. Only
the system can get this permission.
An account-manager is the service working behind the scenes and taking care
everything works as expected.
Group: ACCOUNTS
Level: SYSTEM
This permission is reserved for system apps.

ADD_VOICEMAIL (4.0+)

Allows an application to add voicemails into the system.
Group: PERSONAL_INFO

AUTHENTICATE_ACCOUNTS

Allows an application to act as an AccountAuthenticator for the
AccountManager
Group: ACCOUNTS
This is for applications that would authenticate you to their service.
An app using this permission usually provides an interface to deal with a
certain account type (which is not known by the pre-installed Android
system), such as Dropbox. As shipped, Android does not know how to login to
Dropbox and how to deal with a Dropbox account – so the Dropbox app provides
the mechanism. Additionally, an "account authenticator" might restrict the
actions an app can perform with the account (so it would e.g. be possible to
administrate this via some web interface offered by the service).

BATTERY_STATS

Allows an application to collect battery statistics
Battery widgets and other battery information tools use this permission
Group: SYSTEM_TOOLS

BIND_APPWIDGET

Allows an application to tell the AppWidget service which application can
access AppWidget's data.  The normal user flow is that a user picks an
AppWidget to go into a particular host, thereby giving that host application
access to the private data from the AppWidget app. An application that has
this permission should honor that contract. Very few applications should
need to use this permission.
Group: PERSONAL_INFO
Level: SYSTEM

BIND_DEVICE_ADMIN (2.2+)
Must be required by device administration receiver, to ensure that only the
system can interact with it.

Group: SYSTEM_TOOLS
Level: SYSTEM

BIND_INPUT_METHOD

Must be required by an InputMethodService, to ensure that only the system
can bind to it.
Group: SYSTEM_TOOLS
Level: SYSTEM

BIND_REMOTEVIEWS (3.0+)

Must be required by a RemoteViewsService, to ensure that only the system can
bind to it.
Level: SYSTEM

BIND_TEXT_SERVICE (4.0+)

Must be required by a TextService (e.g. SpellCheckerService) to ensure that
only the system can bind to it.
Group: SYSTEM_TOOLS
Level: SYSTEM

BIND_VPN_SERVICE (4.0+)

Must be required by a Vpn Service, to ensure that only the system can bind
to it.
Group: SYSTEM_TOOLS
Level: SYSTEM

BIND_WALLPAPER (2.2+)

Must be required by a WallpaperService, to ensure that only the system can
bind to it.
Group: SYSTEM_TOOLS
Level: SYSTEM

BIND_*

many more like the above for different services, like NFC, PrintService, and
others

BLUETOOTH

Allows applications to connect to paired bluetooth devices
Group: NETWORK

BLUETOOTH_ADMIN

Allows applications to discover and pair bluetooth devices
Group: SYSTEM_TOOLS

BLUETOOTH_PRIVILEGED (4.4+)

Allows applications to pair bluetooth devices without user interaction. This
is not available to third party applications.

BRICK

Required to be able to disable the device
Group: SYSTEM_TOOLS
Level: SYSTEM

BROADCAST_PACKAGE_REMOVED

Allows an application to broadcast a notification that an application
 package has been removed.
Group: SYSTEM_TOOLS
Level: SYSTEM

BROADCAST_SMS

Allows an application to broadcast an SMS receipt notification
Group: MESSAGES
Level: SYSTEM

BROADCAST_STICKY

Allows an application to broadcast sticky intents.  These are
 broadcasts whose data is held by the system after being finished,
 so that clients can quickly retrieve that data without having
 to wait for the next broadcast.
Group: SYSTEM_TOOLS

BROADCAST_WAP_PUSH

Allows an application to broadcast a WAP PUSH receipt notification
Group: MESSAGES
Level: SYSTEM

CALL_PHONE

Allows an application to initiate a phone call without going through the Dialer user interface for the user to confirm the call being placed.
Group: COST_MONEY
This will allow the application to "prompt" you to place a call. You will not have to enter the number, but you will have to place the "call" button. You will be able to see the number that is being called.

CALL_PRIVILEGED

Allows an application to call any phone number, including emergency
numbers, without going through the Dialer user interface for the user
to confirm the call being placed.
Group: MESSAGES
Level: SYSTEM

CAMERA

Required to be able to access the camera device.
Group: HARDWARE_CONTROLS
Any application that uses the rear or front cameras.

CAPTURE_AUDIO_OUTPUT (4.4+)

Allows an application to capture audio output. Not for use by third-party
applications.

CAPTURE_SECURE_VIDEO_OUTPUT (4.4+)

Allows an application to capture secure video output. Not for use by
third-party applications.

CAPTURE_VIDEO_OUTPUT (4.4+)

Allows an application to capture video output. Not for use by third-party
applications.

CHANGE_COMPONENT_ENABLED_STATE

Allows an application to change whether an application component (other than
its own) is enabled or not.
Group: SYSTEM_TOOLS
Level: SYSTEM

CHANGE_CONFIGURATION

Allows an application to modify the current configuration, such
 as locale.
Group: SYSTEM_TOOLS

CHANGE_NETWORK_STATE

Allows applications to change network connectivity state
Group: SYSTEM_TOOLS

CHANGE_WIFI_MULTICAST_STATE

Allows applications to enter Wi-Fi Multicast mode
Group: SYSTEM_TOOLS

CHANGE_WIFI_STATE

Allows applications to change Wi-Fi connectivity state
Group: SYSTEM_TOOLS

CLEAR_APP_CACHE

Allows an application to clear the caches of all installed
applications on the device.
Group: SYSTEM_TOOLS

CLEAR_APP_USER_DATA

Allows an application to clear user data
Group: SYSTEM_TOOLS
Level: SYSTEM

CONTROL_LOCATION_UPDATES

Allows enabling/disabling location update notifications from
 the radio. Not for use by normal applications.
Group: LOCATION
Level: SYSTEM

DELETE_CACHE_FILES

Allows an application to delete cache files.
Group: SYSTEM_TOOLS
Level: SYSTEM

DELETE_PACKAGES

Allows an application to delete packages.
Group: SYSTEM_TOOLS
Level: SYSTEM

DEVICE_POWER

Allows low-level access to power management
Group: SYSTEM_TOOLS
Level: SYSTEM

DIAGNOSTIC

Allows applications to RW to diagnostic resources.
Group: SYSTEM_TOOLS
Level: SYSTEM

DISABLE_KEYGUARD

Allows applications to disable the keyguard
Group: SYSTEM_TOOLS

DUMP

Allows an application to retrieve state dump information from system
services.
Group: SYSTEM_TOOLS
Level: SYSTEM

EXPAND_STATUS_BAR

Allows an application to expand or collapse the status bar.
Group: SYSTEM_TOOLS

FACTORY_TEST

Run as a manufacturer test application, running as the root user.
Only available when the device is running in manufacturer test mode.
Group: SYSTEM_TOOLS
Level: SYSTEM

FLASHLIGHT

Allows access to the flashlight
Group: HARDWARE_CONTROLS
Allows application to control the LED flash from the camera and have it act like a flashlight.

FORCE_BACK

Allows an application to force a BACK operation on whatever is the top
activity.
Group: SYSTEM_TOOLS
Level: SYSTEM

GET_ACCOUNTS

Allows access to the list of accounts in the Accounts Service
Applications that require some type of authentication from accounts that are
"connected" to the device. A list of the accounts are ususally displayed so
you can choose the account to use with the application. To really use those
credentials, the USE_CREDENTIALS permission is required.
Group: ACCOUNTS
also see: What does “discover known accounts” permission mean?

GET_PACKAGE_SIZE

Allows an application to find out the space used by any package.
Group: SYSTEM_TOOLS

GET_TASKS

Allows an application to get information about the currently or recently
running tasks: a thumbnail representation of the tasks, what activities are
running in it, etc. Bad cop: spy for possible security leaks (vulnerable
apps), data collection. Good cop: check whether the app's own service is
running, show recently used apps (task-switcher), provide app-specific behaviour (eg orientation manager tools).
Group: SYSTEM_TOOLS

GET_TOP_ACTIVITY_INFO (4.3+)

Allows an application to retrieve private information about the current top
activity, such as any assist context it can provide. Not for use by
third-party applications.

GLOBAL_SEARCH

This permission can be used on content providers to allow the global
search system to access their data.  Typically it used when the
provider has some permissions protecting it (which global search
would not be expected to hold), and added as a read-only permission
to the path in the provider where global search queries are
performed.  This permission can not be held by regular applications;
it is used by applications to protect themselves from everyone else
besides global search.
Group: SYSTEM_TOOLS
Level: SYSTEM

HARDWARE_TEST

Allows access to hardware peripherals.  Intended only for hardware testing
Group: HARDWARE_CONTROLS

INJECT_EVENTS

Allows an application to inject user events (keys, touch, trackball)
into the event stream and deliver them to ANY window.  Without this
permission, you can only deliver events to windows in your own process.
Very few applications should need to use this permission.
Group: SYSTEM_TOOLS
Level: SYSTEM (or APPLICATION ONLY)

INSTALL_LOCATION_PROVIDER

Allows an application to install a location provider into the Location Manager
Group: LOCATION

INSTALL_PACKAGES

Allows an application to install packages.
Group: SYSTEM_TOOLS
Level: SYSTEM

INSTALL_SHORTCUT (4.4+)

Allows an application to install a shortcut in Launcher (Homescreen)

INTERACT_ACROSS_USERS (4.4+?)

Allows an application to call APIs that allow it to do interactions across the users on the device, using singleton services and user-targeted broadcasts. This permission is not available to third party applications.
Group: SYSTEM_TOOLS
Level: SIGNATURE_OR_SYSTEM
also see this answer

INTERNAL_SYSTEM_WINDOW

Allows an application to open windows that are for use by parts of the
system user interface.  Not for use by third party apps.
Group: SYSTEM_TOOLS
Level: SYSTEM

INTERNET

Allows applications to open network sockets.
Group: NETWORK
Any application that accesses the internet for any reason will have to
request this permission.

KILL_BACKGROUND_PROCESSES (2.2+)

Allows an application to call killBackgroundProcesses
Group: SYSTEM_TOOLS

LOCATION_HARDWARE (4.3+)

Allows an application to use location features in hardware, such as the
geofencing api. Not for use by third-party applications.

MANAGE_ACCOUNTS

Allows an application to manage the list of accounts in the AccountManager
Group: ACCOUNTS
This permission allows an application to add/remove accounts in the account
manager. Like when you log in to facebook, it adds your account to the
Account Manager accounts. For further details, see: What does permission
“MANAGE_ACCOUNTS” mean?,
and also the AccountManager Documentation on the Android Developers site.

MANAGE_APP_TOKENS

Allows an application to manage (create, destroy, Z-order) application
tokens in the window manager.  This is only for use by the system.
Group: ACCOUNTS
Level: SYSTEM

MANAGE_DOCUMENTS (4.4+)

Allows an application to manage access to documents, usually as part of a
document picker.

MANAGE_USB

Allows an application to manage preferences and permissions for USB devices
Group: HARDWARE_CONTROLS
Level: SYSTEM

MANAGE_MTP

Allows an application to access the MTP USB kernel driver.
For use only by the device side MTP implementation.
Group: HARDWARE_CONTROLS
Level: SYSTEM

MASTER_CLEAR

Level: SYSTEM

MEDIA_CONTENT_CONTROL (4.4+)

Allows an application to know what content is playing and control its
playback. Not for use by third-party applications due to privacy of media
consumption

MODIFY_AUDIO_SETTINGS

Allows an application to modify global audio settings
Group: HARDWARE_CONTROLS

MODIFY_PHONE_STATE

Allows modification of the telephony state - power on, mmi, etc.
Does not include placing calls.
Group: PHONE_CALLS
Level: System

MOUNT_FORMAT_FILESYSTEMS

Allows formatting file systems for removable storage
Group: SYSTEM_TOOLS

MOUNT_UNMOUNT_FILESYSTEMS

Allows mounting and unmounting file systems for removable storage
Group: SYSTEM_TOOLS

NFC (2.3+)

Allows applications to perform I/O operations over NFC
Group: NETWORK

PERSISTENT_ACTIVITY

Allow an application to make its activities persistent. deprecated
Group: SYSTEM_TOOLS

PROCESS_OUTGOING_CALLS

Allows an application to monitor, modify, or abort outgoing calls.
Group: PHONE_CALLS

READ_CALENDAR

Allows an application to read the user's calendar data.
Group: PERSONAL_INFO

READ_CALL_LOG (4.1+)

Allows an application to read the system's call log that contains
information about incoming and outgoing calls.

READ_CONTACTS

Allows an application to read the user's contacts data.
Group: PERSONAL_INFO
Check the app permission.READ_CONTACTS to see what informations can be obtained with this permission.

READ_CONTENT_PROVIDER

Access mail information
Group: MESSAGES
This is primarily for access to information on Mails in Gmail. Developers can use this content provider to display label information to the user.
also see: What lurks behind these Gmail/GTalk permissions?

READ_EXTERNAL_STORAGE (4.1+)

Provides protected read access to external storage. In Android 4.1 by
default all applications still have read access. This changed with
Android 4.4 (API level 19), which now requires that applications explicitly
request read access using this permission. If an application already
requests write access, it will automatically get read access as well.
Group: STORAGE

READ_FRAME_BUFFER

Allows an application to take screen shots and more generally get access to
the frame buffer data
Group: SYSTEM_TOOLS
Level: SYSTEM

READ_GMAIL

also see: What lurks behind these Gmail/GTalk permissions?

READ_HISTORY_BOOKMARKS

Allows an application to read (but not write) the user's browsing history
and bookmarks.
Group: PERSONAL_INFO
Check the app READ_HISTORY_BOOKMARKS App. to see what information can be obtained with this permission.

READ_INPUT_STATE

Allows an application to retrieve the current state of keys and switches.
This is only for use by the system.
Group: SYSTEM_TOOLS
Level: SYSTEM

READ_LOGS

Allows an application to read the low-level system log files. Log entries
can contain the user's private information
Group: PERSONAL_INFO
No longer granted to user apps starting with Android 4.2+ (user apps can now only see their own log entries). Work-arounds are possible on rooted devices.
For details, see: Read logs from all apps on android from within an app for android 4.2+

READ_OWNER_DATA
READ_PHONE_STATE

Allows read only access to phone state.
Group: PHONE_CALLS
This permission gives access to your device's identifiers (IMEI/IMSI),
SIM ID, voice mailbox number, your phone number and, if a call is in
progress, the remote number. It's not required for things like
call state (whether a call is in progress/pending), network operator, or
the network provider used – according to the app permission.READ_PHONE_STATE, which shows what this permission is needed for (and what not)
automatically granted to apps targeted at Android 1.6 or before
good use: ???
bad use: you can be tracked across networks via your IMSI/IMEI/phone number
neutral use: targeted ads (service can see what ads have already been
displayed on your device, and don't need to be displayed again, for example)
See also:

Read phone state and identity
Why do so many applications require permission to read the phone state and identity?
Can Phone Calls application permission allow developer to read my contact book?

READ_PROFILE (4.0+)

Allows an application to read the user's personal profile data.
Group: PERSONAL_INFO

READ_SECURE_SETTINGS

Allows an application to read the secure system settings.
Group: HARDWARE_CONTROLS

READ_SMS

Allows an application to read SMS messages.
Group: MESSAGES
Check the app permission.READ_SMS to see what information can be obtained with this permission.

READ_SOCIAL_STREAM (4.0+)

Allows an application to read from the user's social stream.
Group: PERSONAL_INFO

READ_SYNC_SETTINGS

Allows applications to read the sync settings
Group: SYSTEM_TOOLS

READ_SYNC_STATS

Allows applications to read the sync stats
Group: SYSTEM_TOOLS

READ_USER_DICTIONARY (4.1+)

Allows an application to read the user dictionary. This should really only
be required by an IME, or a dictionary editor like the Settings app.
Group: PERSONAL_INFO

REBOOT

Required to be able to reboot the device
Group: SYSTEM_TOOLS
Level: SYSTEM

RECEIVE_BOOT_COMPLETED

Allows an application to receive the
ACTION_BOOT_COMPLETED that is broadcast after the system
finishes booting.  If you don't request this permission, you will not
receive the broadcast at that time. Though holding this permission does not
have any security implications, it can have a negative impact on the
user experience by increasing the amount of time it takes the system to
start and allowing applications to have themselves running without the user
being aware of them.  As such, you must explicitly declare your use of this
facility to make that visible to the user.
Group: SYSTEM_TOOLS

RECEIVE_EMERGENCY_BROADCAST

Allows an application to receive emergency cell broadcast messages,
to record or display them to the user. Reserved for system apps.
Group: MESSAGES
Level: SYSTEM
Pending API council approval

RECEIVE_MMS

Allows an application to monitor incoming MMS messages, to record
or perform processing on them.
Group: MESSAGES

RECEIVE_SMS

Allows an application to monitor incoming SMS messages, to record
or perform processing on them.
Group: MESSAGES
also see: Can the RECEIVE_SMS permission be used to intercept SMS messages?

RECEIVE_WAP_PUSH

Allows an application to monitor incoming WAP push messages.
Group: MESSAGES

RECORD_AUDIO

Allows an application to record audio
Group: HARDWARE_CONTROLS

REORDER_TASKS

Allows an application to change the Z-order of tasks
Group: SYSTEM_TOOLS

RESTART_PACKAGES

deprecated - No longer supported

SEND_RESPOND_VIA_MESSAGE (4.3+)

Allows an application (Phone) to send a request to other applications to
handle the respond-via-message action during incoming calls. Not for use by
third-party applications.

SEND_SMS

Allows an application to send SMS messages.
Group: COST_MONEY

SEND_SMS_NO_CONFIRMATION

Allows an application to send SMS messages via the Messaging app with no
user input or confirmation.
Group: COST_MONEY
Level: SYSTEM

SET_ACTIVITY_WATCHER

Allows an application to watch and control how activities are started
globally in the system.
Group: SYSTEM_TOOLS
Level: SYSTEM

SET_ALARM (2.3+)

Allows an application to broadcast an Intent to set an alarm for the
user.
Group: PERSONAL_INFO

SET_ALWAYS_FINISH

Allows an application to control whether activities are immediately
finished when put in the background.
Group: DEVELOPMENT_TOOLS

SET_ANIMATION_SCALE

Modify the global animation scaling factor.
Group: SYSTEM_TOOLS

SET_DEBUG_APP

Configure an application for debugging.
Group: DEVELOPMENT_TOOLS

SET_ORIENTATION

Allows low-level access to setting the orientation (actually rotation) of
the screen. Not for use by normal applications.
Group: SYSTEM_TOOLS
Level: SYSTEM

SET_POINTER_SPEED (3.2+)

Allows low-level access to setting the pointer speed. Not for use by normal
applications.
Group: SYSTEM_TOOLS
Level: SYSTEM

SET_PREFERRED_APPLICATIONS

deprecated No longer useful
Group: SYSTEM_TOOLS

SET_PROCESS_LIMIT

Allows an application to set the maximum number of (not needed)
application processes that can be running.
Group: DEVELOPMENT_TOOLS

SET_TIME (2.2+)

Allows applications to set the system time
Group: SYSTEM_TOOLS
Level: SYSTEM

SET_TIME_ZONE

Allows applications to set the system time zone
Group: SYSTEM_TOOLS

SET_WALLPAPER

Allows applications to set the wallpaper
Group: SYSTEM_TOOLS

SET_WALLPAPER_HINTS

Allows applications to set the wallpaper hints
Group: SYSTEM_TOOLS

SIGNAL_PERSISTENT_PROCESSES

Allow an application to request that a signal be sent to all persistent
processes
Group: DEVELOPMENT_TOOLS

STATUS_BAR

Allows an application to open, close, or disable the status bar and its
icons.
Group: SYSTEM_TOOLS
Level: SYSTEM

SUBSCRIBED_FEEDS_READ

Allows an application to read the subscribed feeds ContentProvider.
Group: SYSTEM_TOOLS

SUBSCRIBED_FEEDS_WRITE

Allows an application to write to the subscribed feeds ContentProvider.
Group: SYSTEM_TOOLS

SYSTEM_ALERT_WINDOW

Allows an application to open windows using the type
TYPE_SYSTEM_ALERT, shown on top of all other applications.
Very few applications should use this permission; these windows are intended
for system-level interaction with the user.
Group: SYSTEM_TOOLS

continue here
too many characters (Body is limited to 30000 characters), so it had to be split

I find no reference/link back to the official Android document from your answer. Would be greater if you would add one.

@NamG.VU That's because this isn't taken directly from any place directly off the web. It comes from multiple places, one of which could be the android docs (but not really), another is comments through out the android source code, and is experience using/developing with the permissions.

CALL_PHONE - The descriptions for this seem contradictory. Does it or does it not require the user to place the call? If the dialer app is skipped, then the user does not have to/press the call button

@AJ. early versions of android used to allow applications to "start" the call, later versions changed it to where it will just open the Dialer with the number pre-entered.

Continued from first answer (got too long, could be extended no more)
Permissions (continued)

TRANSMIT_IR (4.4+)

Allows using the device's IR transmitter, if available

UNINSTALL_SHORTCUT (4.4+)

Allows an application to uninstall a shortcut in Launcher (Homescreen)

UPDATE_DEVICE_STATS

Allows an application to update device statistics. Not for use by third
party apps.
Group: SYSTEM_TOOLS
Level: SYSTEM

USE_CREDENTIALS

Allows an application to request authtokens from the AccountManager
Group: ACCOUNTS
This app may use the "credentials" to log into an account. In most cases,
"credentials" just means the corresponding authenticator creates a fitting
token and hands that over (though, how to deal with that is left to the
authenticator). When using an account for the first time, the Account
Manager should make sure the user is asked whether he permits this.
details: What can an app do with the “USE ACCOUNTS ON THE DEVICE”
permission?

USE_SIP (2.3)

Allows an application to use SIP service
Group: NETWORK

VIBRATE

Allows access to the vibrator
Group: HARDWARE_CONTROLS

WAKE_LOCK

Allows using PowerManager WakeLocks to keep processor from sleeping or
screen from dimming
Group: SYSTEM_TOOLS

WRITE_APN_SETTINGS

Allows applications to write the apn settings
Group: SYSTEM_TOOLS
Level: SYSTEM

WRITE_CALENDAR

Allows an application to write (but not read) the user's calendar data.
Group: PERSONAL_INFO

WRITE_CALL_LOG (4.1+)

Allows an application to modify the system's call log stored on your phone

WRITE_CONTACTS

Allows an application to write (but not read) the user's contacts data.
Group: PERSONAL_INFO

WRITE_EXTERNAL_STORAGE

Allows an application to write to external storage
Group: STORAGE
also see: What does the “modify/delete USB storage contents” permission really mean?

WRITE_GMAIL

Modify Gmail
Permits an app to change your E-Mails in Google Mail. This includes sending and deleting.
Group: MESSAGES
also see: What lurks behind these Gmail/GTalk permissions?

WRITE_GSERVICES

Allows an application to modify the Google service map.
Group: SYSTEM_TOOLS
Level: SYSTEM
also see: What is the Android Permission “WRITE_GSERVICES” doing?

WRITE_HISTORY_BOOKMARKS

Allows an application to write (but not read) the user's browsing history
and bookmarks.
Group: PERSONAL_INFO

WRITE_OWNER_DATA
WRITE_PROFILE (4.0+)

Allows an application to write (but not read) the user's personal profile
data.
Group: PERSONAL_INFO

WRITE_SECURE_SETTINGS

Allows an application to read or write the secure system settings.
Group: SYSTEM_TOOLS
Level: SYSTEM

WRITE_SETTINGS

Allows an application to read or write the system settings.
Group: SYSTEM_TOOLS

WRITE_SMS

Allows an application to write SMS messages.
Group: MESSAGES

WRITE_SOCIAL_STREAM (4.0+)

Allows an application to write (but not read) the user's social stream data.
Group: PERSONAL_INFO

WRITE_SYNC_SETTINGS

Allows applications to write the sync settings
Group: SYSTEM_TOOLS

WRITE_USER_DICTIONARY (4.1+)

Allows an application to write to the user dictionary.
Group: PERSONAL_INFO

Groups
The individual permissions above fall in to one (or more) of the following permission groups:

ACCOUNTS

Permissions for direct access to the accounts managed
 by the Account Manager.

AFFECTS_BATTERY
APP_INFO
AUDIO_SETTINGS
BLUETOOTH_NETWORK
BOOKMARKS
CALENDAR
CAMERA
COST_MONEY

Used for permissions that can be used to make the user spend without their direct involvement.  For example, this is the group for permissions that allow you to directly place phone calls, directly send SMS messages, etc.

DEVELOPMENT_TOOLS

Group of permissions that are related to development features.  These
 are not permissions that should appear in normal applications; they
 protect APIs that are intended only to be used for development
 purposes.

DEVICE_ALARMS
DISPLAY
HARDWARE_CONTROLS

Used for permissions that provide direct access to the hardware on
 the device.  This includes audio, the camera, vibrator, etc.

LOCATION

Used for permissions that allow access to the user's current
 location.

MESSAGES

Used for permissions that allow an application to send messages
 on behalf of the user or intercept messages being received by the
 user.  This is primarily intended for SMS/MMS messaging, such as
 receiving or reading an MMS.

MICROPHONE
NETWORK

Used for permissions that provide access to networking services.  The
 main permission here is internet access, but this is also an
 appropriate group for accessing or modifying any network configuration
 or other related network operations.

PERSONAL_INFO

Used for permissions that provide access to the user's private data,
 such as contacts, calendar events, e-mail messages, etc.  This includes
 both reading and writing of this data (which should generally be
 expressed as two distinct permissions).

PHONE_CALLS

Used for permissions that are associated with accessing and modifyign
 telephony state: intercepting outgoing calls, reading
 and modifying the phone state.  Note that
 placing phone calls is not in this group, since that is in the
 more important "takin' yer moneys" group.

SCREENLOCK
SOCIAL_INFO
STATUS_BAR
STORAGE

Group of permissions that are related to SD card access.

SYNC_SETTINGS
SYSTEM_CLOCK
SYSTEM_TOOLS

Group of permissions that are related to system APIs.  Many
 of these are not permissions the user will be expected to understand,
 and such permissions should generally be marked as "normal" protection
 level so they don't get displayed.  This can also, however, be used
 for miscellaneous features that provide access to the operating system,
 such as writing the global system settings.

USER_DICTIONARY
VOICEMAIL
WALLPAPER
WRITE_USER_DICTIONARY


text:
Improve scrolling lag in Android
I am not referring to the App opening/closing animations (that can be modified in the launcher or the Developer Options changing the animation scale) but the actual scrolling of websites, webviews, and within applications.
I am noticing this on a few flagship devices, but it occurs far less on Nexus devices. I'm assuming the OEM skins or the 1080p screens on these devices (or both) are contributory factors.
I've tried changing goveneors and I/O schedulers to no avail. This is persistent lag across a range of browsers (Chrome, Samsung, HTC, Dolphin, Boat, Firefox) and across other apps such as Google Plus, the Play Store and Facebook.
Is there any way to improve this scroll lag, it is severely degrading the performance on several devices including S5, M8, Note 3 and others.
Edit: Devices are rooted so all suggestions welcome.

First I would jump into the developer options and play around with rendering settings in there. This is going to pertain to the GPU probably a lot more than the CPU.
You can also enable some helpful rendering overlays to get visual feedback regarding touch areas, rendered areas, and gpu utilization.
Unfortunately I can't say that one particular item or another will fix it so you will have to play around with them until you see some improvement. Things to try:

High performance mode
Force GPU rendering

The next step would be to try to overclock the GPU's which is going to vary by device.
I would suspect that a mobile friendly site would have much less of an issue rendering all the scrolling than a full desktop site. Another option would be to zoom in more and see if that alleviates some of the lag.
Yet another option would be to try out some custom roms on each of the devices that boast smoother performance. The trade off you're looking for is more performance which is usually at the cost of more battery drain. Efficiency is a great thing but I would always prefer stable smooth performance first and then efficiency.
Do you see any difference if you start scrolling from a still screen vs continuous up and down scrolling? (ie not letting the gpu stop rendering) If so, bumping up the minimum clock at least temporarily may improve this area. The performance governor is your best bet for now.
For the M8, I would recommend ViperOne. I run it on my M7 and its very smooth. You can overclock the GPU with built in software. The only thing I see some lag on is when there are a ton of complex button/slider items that need to be loaded which happens to only be on a few pages within the ViperTweaks sub-app.

Hi @Enigma, thanks for the answer, I'm going to try some of this out later and I'll get back to you. It's consistent across websites and this is on new Flagship devices. It's the one thing Android seems to keep messing up. I can't flash on the M8 at present but am trying ROMs on other devices as I type this! :) I'll have a lash. I'm going to have to install a new kernel on the Samsung devices to get tweaking the gov etc. I should add this happens in Facebook, Google+ and other apps. Force GPU rendering is degrading the performance sadly.

Sounds good. Do try the developer options in the mean time as that does provide a small window into some kernel functionality. If you find a good Samsung rom already paired with a good kernel you may have better overall smoothness (worth keeping in mind anyways).

The issue is persistent for ALL scrolling. The GPU doesn't seem to be involved, and the 2.5Ghz QUAD core should be more than enough to render websites!! This is the very reason I am tempted to get a few more Apple devices as this is endemic on my devices. I'm paying 600 euro PER PHONE and all i get is stutters and lags sadly.

That is unfortunate. You may also want to take a peak at ram usage. The more that is readily available, the more efficient/quickly new content will be loaded. Greenify would be a good testing tool to keep unused apps out of memory. I have high hopes that a good kernel and some tweaking can get the performance where you want it.

Greenify installed, RAM the usual usage for the respective device. I think the best bet is for me to give a few things a try and I'll reply once I do it (busy evening ahead of me so will be tomorrow probably), and I'll be back to you. :) Thanks!

Hi, I've accepted and added the bounty, I'm away at the moment but I've been tweaking and testing on the phone and improved things a bit and found what is app specific lag. What I was thinking (if you are agreeable) is on Friday when I'm back editing in a few findings of mine into your answer, and then you can edit out anything you don't want in there? Or I can add a few comments here for you to add and then we can delete this big train of comments to tidy this answer up? Thanks, Ross

Sure just propose an edit. I don't think the comments are doing any harm though.

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/

sort: votes


text:
Facebook for HTC Sense not working
Somehow, Facebook for HTC Sense has disappear from my HTC Vivid.
In /system/app I've found HtcFacebook which is  com.htc.socialnetwork.facebook. When I try to install it errors with Application not installed.
I've tried to find this package on the Internet to install it, but could't find it anywhere.
How can I get the HTC Facebook back onto the device?

After many failed tries to reactivate the HTC Facebook, I've decided to reset to factory defaults. This fixed the issue. Now Facebook for HTC is working fine.

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
Is the Google branded Galaxy Nexus HSPA+ the same as GT-I9250?
I purchased the Galaxy Nexus HSPA+ directly from Google Play. I'm looking to buy a Proclip holder that's specific to the Samsung Galaxy Nexus (GT-I9250) http://www.proclipusa.com/brodit-device-holder/samsung-galaxy-nexus-(gt-i9250)/holder-with-tilt-swivel-511324-18854.aspx
Is the Google sold device the same form factor?

Yes, the HSPA+ Galaxy Nexus phone from Google Play Store is the i9250 model.  That clip should fit it just fine.


text:
What's a secure way to message/talk to someone in CM9?
I'm using CM9 nightly (20120712 i.e. today).
I need to talk securely, without the chance of eavesdropping, to someone who also has CM9 nightly (not sure how up-to-date but not more than 1 month old).
What apps/webapps can I use to do this? Ideally I would like to be able to talk but messaging/email would be fine.
Are apps like Twitter/Gmail/Gtalk secure end-to-end? I do have HTTPS set up on my account but don't know how far it applies to the mobile version.
But really I am willing to use anything as long as it known to be secure enough to prevent MITM attacks and eavesdropping by unwanted parties.

I found the following but I don't think this is a definitive answer though it looks close to what I need, secure end-to-end encryption with no chance of snooping/sniffing/MITM.
http://en.wikipedia.org/wiki/Off-the-Record_Messaging#Phone_apps
I wasn't fully aware of OTR though I had heard the term used elsewhere but didn't know the full implications. I think OTR is what I'm looking for.
Still looking for further input though.

have you tried the apps listed in your link?

As I discovered them only 10 minutes ago, I haven't had the chance to actually test them yet.

gotcha. Just wondering. Update your answer if they work the way you want :)

Will do, but it's a matter of using them to talk to the other person and checking it all works fine. I did use Tor on Android a while back and it looks as if Gibberbot relies on Tor, so it should be fine.

There are solutions for any android device. Google Talk: Gibberbot (also on FDroid) and for SMS: TextSecure


text:
Why does the CM7 Radio FM app require bluetooth to run?
The FM Radio app on my stock ROM(s) (Samsung 2.2 and 2.3) only required to plug in earphones. And that was the case with any phone radio app on any cell phone.
But why does the app which comes with CM7 require both bluetooth turned on and earphones plugged in?
(Apparently, from the "about" page in the settings, it is developed by MIUI)

What handset is this you're referring to?

@t0mm13b Samsung Galaxy Fit. But I don't think it's relevant as on other ROMs the FM Radio worked without this requirement.

Check this and note what it says about Multimedia Broadcast section, specifically, 'Analog Radio';  http://pdadb.net/index.php?m=specs&id=2750&view=1&c=samsung_gt-s5670_galaxy_fit

The radio chip-set is more than likely, shared with Bluetooth and thus issues the commands specific to bluetooth to be able to switch on the FM receiver. This will depend on the handset in question.
You do need the headset to be plugged in as that acts as a FM Antenna.
The FM radio framework was an add-on to the CM source at the time of GB 2.3.7; the headset acting as antenna is indeed the mechanism (don't ask me how/why, but its common among certain chip-sets that requires it).
The actual FM Radio app was developed by Andorko, he used to hang out on the Zte Blade Community, developed the radio and one of the CM devs on that same community, integrated the Radio framework into CM, (Which was non-standard). As due to the popularity of the FMRadio application, it was tweaked and adapted for other chip-sets in question based on handset.
Depending on handset, Silicon Industries is one, si470x (x being 8 or 9) is common (used on Galaxy 5, Zte Blade), there's Texas Instruments (TI) which shares the bluetooth functionality within the TI chip-set - we're talking SoC (System on Chip), by sending a series of bluetooth HCI commands, the FM radio receiver starts up.
By your comment below 'why did it work before?' that is assuming it was a stock ROM that came with Galaxy Fit handset, then in that case, the FM radio support was based on some proprietary software within the stock FM application itself.
CM 7.2 handled it differently using a non-standard framework for communicating with the FM radio, in which the above radio application that comes with CM, was adapted for that very reason.

Can you elaborate a little bit? How does the headset act as an antenna and uses the Bluetooth chip? And why did it work before (is it the app just assuming the "worst-case scenario"?) Thanks for the answer anyway :)

Ok, so I guess in the stock rom, they knew which chipset they were dealing with, so there was no need to make compatibility maximal, right? Maybe there is no way to "detect" which chipset requires what. Thanks a lot.

Well, of course, Samsung knew exactly what was involved and used some proprietary features of the Stock ROM to do just that. There is no way to detect it what chip-set is required. This was down to both, driver in the kernel (mostly Si470x and TI) and within the CM source to communicate directly to the kernel to handle the FM facility, some are open, others are closed!

Googling a bit, I found lots of "BT/RDS" receivers. I didn't know they were related in any way.

Well, you've learnt something ;)

hehe thanks :) too bad android didn't set a "standard" regarding this, as it does for all the other hardware. But we can't blame it :) we should blame manufacturers here :)

Well, tbqh, it's not Google's position to set standards for extras on top of vanilla Android, in respect to hardware differences. But yeah, manufacturers wants to stand out as "unique", on top of that, carriers too... its brutal business behind the scenes! :)


text:
How to manually install ICS on Sony Ericsson Phones?
Attempting update from 2.3.4 to 4.x and the pc companion software keeps telling me my phone is up to date! Anyone know if it's possible to do a manual install?

what year is your handset?

Last September - it's SI is one of those listed as eligible for an update. I'm guessing it's something to do with my network T-Mobile in the UK?

FYI - I was constantly refreshing the sonymobile's page to see if my 2011 ST15i's SI number showed up. But no, it did not, it was when I checked Sony's PC Companion suite for an update itself, then after the software got updated, it recognized that the ST15i was eligible for upgrade to ICS.

You can manually install update using Flashtool,and also you need ftf file for it,
http://androxyde.github.com/index.html?1349610344000 -Flash tool
http://forum.xda-developers.com/showthread.php?t=1918920 -ftf file.

That will not work unless the boot loader is unlocked!

You do not need unlocked bootloader for it.


text:
automatically turning on usb mass storage when usb is connected
Majority if not all times when I plug in my USB I want to use the USB Mass Storage functionality thus I was wondering there is a way to enable USB Mass Storage once a USB is connected.

Related: Why can't I see Android storage as a partition on PC?

Auto Mount Your SD Card should do that for you:

Automatically mount your SD card. Quit manually mounting your SD card every time you plug your phone into your computer.

I used that one one of my phones when I still connected it frequently via USB, and it did its job wonderfully. The app is available for free on the playstore, so nothing to lose :)

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Is it safe to restore the phone.apk from a stock Samsung ROM to CM9?
I was using the stock Samsung ROM on my Samsung S2 i9100. Changed over to Siyah Kernel and then made the leap to CyanogenMod 9.
Although I prefer and appreciate the myriad settings and usability of CM, there are a couple of issues where I preferred the functionality of the stock ROM:

The phone.apk - not just the dialer, but the incoming call screen
and the large size buttons to answer a call or to bring up the
keypad etc. I know I can use an alternate dialer like DialerOne or dwContacts but that doesn't help me to change the incoming call screen.
Pressing the physical home button to answer a call. There are times
when it's exceedingly difficult to use the onscreen slider and a
press to answer the call is far easier.
FM Radio - although Spirit Radio works as an alternative.

For items 1&2, can I overwrite the existing phone.apk and contacts.apk with the previous ones that I have backed up using Titanium Backup to return this functionality?

The answer is usually "No."  The framework changes introduced with manufacturers' UI overlays (Samsung's TouchWiz in the case of your Galaxy S II)  most likely make the stock apps like Phone, Contacts, Calendar, etc. incompatible with custom ROMs like CyanogenMod ROM that are based on AOSP (Android Open Source Project).

Would you know of some way to restore similar functionality @Chahk?

Not off the top of my head.  Although I imagine there are many 3rd-party apps out there that would help with customizing the incoming call screen.

Have tried some, not all. Don't work reliably per my experience.


text:
Setting an external keyboard to the Colemak layout
I have found soft keyboard applications that provide the Colemak layout for the virtual keyboard. However, I need the layout when touch-typing on a physical keyboard.
In my case, I'm using a regular USB keyboard plugged into an Iconia A500 tablet. The keymap should be freely customizable by modifying system files, but I'd prefer to do this without rooting.
How can I remap the keys of a physical keyboard to the Colemak layout?

See also http://android.stackexchange.com/questions/5128/how-to-switch-keyboard-layout-for-external-keyboard

Looks like the External Keyboard Helper app lets me switch layouts of an external USB keyboard on my Nexus 7, no root access needed.

Thank you for mentioning this app! I'm currently use an Apple Wireless Keyboard on my Android device. And that External Keyboard Helper app allows me to remap the useless upper-right Eject CD to Del. Tips: when trying to setup this, the Del key can be chosen by a key name "Forward Delete".

As a partial solution...
I've had some success with extkeyboardremapper (AKA laurent2o1o Keyboard). I successfully swapped Q with A by following the translated French instructions.
I haven't got as far as creating a full layout, but I wonder if I could just copy layouts from somewhere in Ubuntu.
Edit: On Ubuntu and probably most other Linux systems, these files are found in:
/usr/share/X11/xkb/symbols/

For non-Linux users, here's the web repo of the source:
http://cgit.freedesktop.org/xkeyboard-config/tree/symbols?h=2.2-branch
The files aren't directly compatible with extkeyboardremapper, but they can serve as a guide for making the k2g.cfg file. Colemak and Dvorak can be found in the us file, other files such as gb just amend the US version it seems.
Edit: Using the X11 keyboard layout files as a guide, I made a k2g.cfg for Colemak, to complete my solution.
Here's how to use it:
mkdir /sdcard/keyremap

Make this file:
/sdcard/keyremap/s2k.cfg
86 => 773

This is because Android doesn't seem to have a keycode for <LSGT>, so let's call it 773 for now.
Make this file:
/sdcard/keyremap/k2g.cfg
==== USA - Colemak ====

0 68 ` ~ 0303 ~
0 8 1 ! ¡ ¹
0 9 2 @ º ²
0 10 3 # ª ³
0 11 4 $ ¢ £
0 12 5 % € ¥
0 13 6 ^ ħ Ħ
0 14 7 & ð Ð
0 15 8 * þ Þ
0 16 9 ( ‘ “
0 17 0 ) ’ ”
0 69 - _ – —
0 70 = + × ÷

0 45 q Q ä Ä
0 51 w W å Å
33 f F ã Ã
46 p P ø Ø
48 g G 0328 ~
53 j J đ Đ
49 l L ł Ł
37 u U ú Ú
43 y Y ü Ü
44 ; : ö Ö
0 71 [ { « ‹
0 72 ] } » ›
0 73 \ | ~ ~

0 29 a A á Á
47 r R 0300 ~
32 s S ß ~
34 t T 0301 030B
35 d D 0308 ~
0 36 h H 030C ~
38 n N ñ Ñ
39 e E é É
40 i I í Í
74 o O ó Ó
0 75 ' " õ Õ

0 54 z Z æ Æ
0 52 x X 0302 ~
0 31 c C ç Ç
0 50 v V œ Œ
0 30 b B 0306 ~
42 k K 030A ~
0 41 m M 0304 ~
0 55 , < 0327 ~
0 56 . > 0307 ~
0 76 / ? ¿ ~

0 773 - _ – —
0 62 0020 0020 0020 00A0

==== United Kingdom - Colemak (extension) ====

9 2 " ² ⅛
10 3 £ ³ £
11 4 $ € ¼

75 ' @ 0302 030C
68 ` ¬ | |

73 # ~ 0300 0306
773 \ | | ¦

The prepended 0's effectively comment out the line. I've commented out all but the necessary lines due to this bug, but if the bug gets fixed, or you use the AltGr characters more than Ctrl shortcuts, then just uncomment them.
US users can cut the UK extension at the end, others will have to replace it with their own.
If you really want to duplicate your Backspace key, you need to add this line to s2k.cfg:
58 => 67

...but you may find that the backspace function is merely added to the CapsLock key.
Now just install extkeyboardremapper, enable it, and select it!

Just discovered a bug that CapsLock doesn't work for mapped keys.

I have the same problem with External Keyboard Helper: I just can't manage to make Caps Lock another Control. Although I can choose it in the custom layout, it simply doesn't seem to be applied.

I have a similar issue trying to get my physical keyboard to work with Dvorak. I came across the following links:
http://www.mjvanderwielen.com/?p=1321
http://jahrome.free.fr/index.php/keyboard-mapping-android-htc-desire?lang=en
These essentially describe how to create your own keyboard mapping file. You'd need root access to do this. I haven't tried this myself though (yet.)

According to the first Android related link on the front page of http://colemak.com/ the AnySoftKeyboard app (market link) is their main recommendation for Android phones. One of the bullet points in the featuireslist on their home page is:

Physical keyboard is supported
  as-well.

It sounds like that could do the job for you?

This doesn't seem to work. My external USB keyboard still has US QWERTY layout when I am using Colemak AnySoftKeyboard.

I can confirm that ASK doesn't work for physical keyboards. They have an issue open in their bugtracker: http://code.google.com/p/softkeyboard/issues/detail?id=181

Apparently, Android 4.1 has built-in support for changing the layout of USB and Bluetooth keyboards, /and/ allows users to install custom layouts without root.
Not much use for devices without Jellybean, but it's good to know that up-to-date devices don't have this issue anymore.
https://code.google.com/p/android/issues/detail?id=17119

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
How do I delete an email in Gmail from the notification screen?
The latest Gmail app update (26 MAR 2013) introduced a feature for devices running Android 4.1 (Jellybean) and higher wherein a user could directly archive/reply to an email from within the notification pull-down.
The "What's New" section on the Play Store however also lists the ability to delete an email.

Android 4.1 (Jelly Bean) and up:
• Reply, archive or delete from notifications - no need to open the app

I'm running CyanogenMod 10.1 (Android 4.2.2) on my Samsung Galaxy S2 (i9100) and the options for Archive and Reply show up when I pull down the individual email notification but nothing for Delete shows up, even while in Landscape mode.
Any ideas on how this can be implemented or a setting that I've missed to enable this functionality?

Yes - there is a setting you need to change.
The Notification bar's actions are based on what you have GMail set up to do when swiping away an email within the app.
To change it from Archive:
Open Gmail and go to Settings there change the Swiping conversation list from Archive/unlabel/delete to Always delete
This changed my Notification bar action from Archive to Delete

Just tried it on mine. As advertised.

Accepted. Unfortunately, the behaviour also causes conversation swiping within the app to equal deletion. I wish they'd fit 3 buttons like ARCHIVE / DELETE / REPLY (user-choosable ideally) within the pull-down of the notification.

Agreed. Also, within Gmail itself it should have options to assign left-swipe and right-swipe, that way you could swipe left to archive, right to delete (or the other way). Maybe next update...

Works on Android 9 (Pie) as well!

Since v8.4.x, Gmail has been providing a separate setting to change the notification action and reworded "Gmail notification action" to "Default notification action."
The setting can be accessed by:

Open the Gmail app
Tap the hamburger menu (3 horizontal lines icon) on the top-left corner
Select "Settings"
Select "General settings"
Select "Default email notification action"
Select between "Archive" or "Delete"


text:
How does partitions work in Android? Can they be modified safely?
I understand how partitions work on a hard disk, also how to use programs to create, change, and delete these partitions. I am also using Android for quite some time. In this question, I would like to focus on the Android partitions only.
I found CyanogenMod Wiki - Common Partitions and directories (archived).
But I would like to understand a little bit more:

Is the concept similar to hard disks?
Can these partitions also be changed? Or would it be necessary at all?
Are there tools to change the partitions?
Can I brick my device forever when working on the partitions?

In *nix operating systems, most of the system resources are exposed as a folders like /system etc which is sometime analogous (where it involves storage) to partitions in Windows world. USB flash drives, memory cards, even serial and parallel ports are all exposed as a folder accessible from root /. I am not a *nix user and hence I can't say any more.

Technically spoken, one could of course change the partitioning of Android devices (some Custom ROMs even offer interfaces to it). However, without deeper knowledge I'd keep my fingers out of it (at least when it comes to /system and /recovery partitions), as things like system updates might depend on the "known defaults" for the device in question. As this goes somehow deep into system internals, I don't think it is a topic well fitted for our site. I'd rather recommend the XDA-Developers forum for this.

The Android firmware is composed of several image files.  These image files are flashed to (device specific) locations on your devices internal memory.  Typically these images are for the bootloader, recovery, fastboot, and the system (OS).  The remaining memory is mapped to your internal storage.  Since each device expects them to be located at different locations depending on the manufacturer, you cannot modify them safely.


text:
Accidentally turned on TalkBack, how do I turn it off?
I accidentally turned on TalkBack in the Accessibility menu. When I turned it on, I got some kind of walkthrough on how to use it. I couldn't cancel it. So I turned off my phone.
When I turned it back on again, it took me 15 minutes to unlock my phone. Apparently I had to touch a button to give it focus and then double-tap it to click it.
Now my question is: how do I turn this off? I can't reach the settings because I don't know how to access a dropdown and I can't scroll through all my apps.

Related: Scrolling with talkback on.

Somehow, I could get into the Settings menu by turning aeroplane mode on and starting Google Maps (which is on my home screen). Google Maps then sends you to Settings. In there, I can scroll using three fingers.

I had this problem with LG Android also - accidentally turned ON talkback. Here's how I got it turned off.

You can swipe by using two fingers
Tap once on Settings
Then double-tap on Settings to activate
Repeat process on the following
General/Accessibility/Vision
In Vision, you should see TalkBack where you can turn it off (again by using the same single, then double-tapping process)

You can easily fix this by holding down both the volume up and volume down buttons simultaneously.

This will toggle the TalkBack 'feature' off or on (which is how it accidentally turned on for me).
This shortcut also allows you to turn off this 'feature' if the screen inputs are not working correctly, as happened in my case.

This shortcut toggle works on my LG V60, however it appears to be a feature on all Android phones (ref: Android Accessibility Help - Turn on TalkBack).

My fix:

Press Google Assistant button on phone, button below volume up/down button on LG V40 phone on left side, starts Google assistant.
State "Open Settings"
Double press on general, then "Accessibility" then "Hearing" then turn off "TalkBack"

Double tap on the "Green" square that appears with a voice in the background.
It's difficult to navigate with this TalkBack option, but follow the "double tap" procedure and reach "TalkBack" feature which is "ON".
Same double tap, you'd be able to turn off "TalkBack".

If Google Assistant is enabled and "Ok Google" trigger is set up, try the following voice command:

Ok Google, turn off TalkBack and flip the switch

Oh dear, this is obviously a thing!  Not only was I stuck in talkback, but there was some sort of debug overlay at the top 10% or so of the screen so I couldn't see icons properly.
On a samsung A22 the solution was to drag down with 2 fingers, which exposed the settings icon, even though I couldn't actually see it.  It took a few tries to actually be able to press it once to highlight, then double press to open settings.  Then scroll to accessibility with 2 fingers and turn the damned thing off.
Did no one at Samsung ever actually try to use this?

Not sure what you meant by "Did no one at Samsung ever actually try to use this?", but it's a standard gesture for TalkBack on every Android. As for the debug overlay, I believe that's a different issue, not the TalkBack accessibility feature specifically


text:
Listen which URLs an app tries to connect
Is it possible to listen/monitor an app's network activities?
I have this one app, and I couldn't figure out where it gets its images. I tried to google an app to listen to other apps connections, but I didn't find any. I'm looking for similar functionality as Google Chrome's network tab from developer menu.
I have rooted Nexus 4 with 4.2.2.

OS Monitor lists network connections by app:

OS Monitor and Connection Tracker listing connections (source: Google Play; click image to enlarge)
As you can see, OS Monitor lists up all connections, and lists the corresponding app "owning" this connection along. This should enable you to see all servers your suspicious app connects to. There are other apps available with the same feature as well, as e.g. Connection Tracker shown in the second screenshot.
If you really need the full URL, the above won't bring you there (both apps use methods similar to netstat, which only reveals the hosts). Instead, you might want to take a look at e.g. tPacketCapture, which "sniffs" your network traffic (without requiring root), and saves the protocol in so called .pcap files. These again can be read then by e.g. Shark Reader.

I couldn't really get the URLs of connections in neither of them, or then I couldn't find the place for that. OS Monitor is crashing.

"OS Monitor crashing" must mean you're running JellyBean (known issue, they're working on it). And no, both apps seem to use netstat, which does not reveal the full URL but just the server. As you didn't specify what exactly you intend, I obviously mis-interpreted this part as "checking where that server is". If you really want the full URL, you either can look into the logs (logcat, maybe it's put there), or need a "packet sniffer".

I have been using Packet Capture app, which for me is simpler than setting-up "wireshark" on Android.
The app is free, doesn't require root access, but may request to install user certificate to decrypt SSL connection (it's using MITM technique, as mentioned on its app page; you don't need to install it if you don't want to know the content of SSL connection)
Usage

Open Packet Capture app
Tap the Play (green triangle) icon to start capturing
While it's active, open the app you want to listen its network activity
Wait until the app finish its network operation
Switch to Packet Capture app, and tap the Stop (red square) icon to stop capturing
Open the log by tapping its entry

when I run Packet Capture on Android R, it just displays a white screen, the app does not even open. Is there any other alternative?


text:
Reinstall the original music and video player app for Samsung I9000 Galaxy S to be used with Android 4.1.2
On the Samsung I9000 Galaxy S, I have updated the ROM to Android 4.1.2. I would like to reinstall the original music player as well as the video player.
How do I do this?

i9000 does not have an official ROM, so I'm assuming you're using a custom ROM like CM10. Stock players from Touchwiz are rarely availble, and for the most part do not work flawlessly on AOSP based ROMs.
Try Winamp and MPlayer as alternatives, they work on any ROMs so you can move freely between ROMs too.


text:
Is there a way to use a different account with YouTube?
I'm having problem using YouTube. I use different Gmail accounts for email and YouTube and I would like them to be separated.
Is there a way to tell YouTube to use a different account from the "system" one?

Yes, add both your account to Settings > Account, then you can choose which account to sign in to on the YouTube app.

Make sure to sign out first

Swipe left, and tap on Sign In

You should be presented with an account chooser

So I added the new account but on the youtube app I don't see the option to switch. It keeps logging in with my old account

@dierre: I've added some screenshots, what YouTube app version are you using? Very old version does not support multiple account, IIRC. These screenshots are from 4.4.11, the latest available on Google Play at the moment.

ok so, the thing now is that when I click login I just got an error "Cannot perform this action". Really weird stuff. BTW I'll accept it. Would you like to start a chat to help me solving the problem?

@dierre: try clearing the cache?

@LieRyan, you really shouldn't use blur on your screenshots. Instead, completely color over them. There are algorithms that can de-blur information, and in your case, I can see with my own eyes your two email addresses (if i squint, or if I adjust brightness and contrast in an image editor).

@Lie: Could you reduce the size of those images. They're huge.

@LieRyan: so this is weird. I just downgraded my version of the app on my Nexus 7 and finally it asked with which account to log in.

Thank you. Works perfectly on the latest version as of today (5.0.21). Had to clear cache and restart YouTube for it to work. Cheers!

I have YouTube app version 5.3.32 and the only way I could change accounts was to clear the data from Settings > Apps > YouTube and when launching the app again it asked which account I wanted to use.

No, you cannot add an account to the YouTube app and we are forced to use one account. I really do not understand why they haven't added that yet...

Since some previous versions, you can add new account directly from YouTube app (as with other Google apps).

Open the drawer menu by tapping the 3 horizontal bars on the top-left (or swipe from left edge to the right)
Tap the current user/name on the top
Tap Add account.
You'll be redirected to add account wizard, follow the instruction.
After that, you can select the account you want to be logged-in from YouTube app directly.

Reference: YouTube Android App basics (tested on version 10.18.55)

Log-in to Youtube with your other account and then add it to Google account. So Next time  you can choose either one from Gmail (there is option to switch accounts in Gmail).


text:
Small clock icon above AM/PM on 4x2 clock widget
Just received JellyBean 4.1.2 on my Sprint Samsung Galaxy S3. I have always used the 4x2 digital clock widget and I noticed a small icon that looks like a clock appearing just above the AM/PM. This also appears when displaying the weather for the various cities. What does it mean?

Can you provide a screenshot to make it easier for us to see? We cannot see it from here :D

Ya screenshot would be nice, but it might be an edit button to change the appearance of the widget.  Could the icon possibly look like a gear?

Is it an indicator that an alarm is set?

Going by your description, you're referring to the object circled in this screenshot

That thing indicates that the city the time is being shown for is currently running on daylight savings time.  In this screenshot, we see that New York is observing daylight savings time, and Phoenix isn't.

That's it. I'm trying not to be so curious considering what that does to cats

@SusieB - Curiosity was framed for that.  =)


text:
How to run built-in Sound Recorder?
If you go to Settings -> Apps -> All, you'll be able to find the "Sound Recorder" built-in application in JB 4.2.2, but it's not shown on the app drawer.
Curious, how to run it?!
PS: it's not a question about choosing recording application, but about curiosity of running the built-in one

I suspect the Sound recorder could be just a component that is used by several apps, such as Google Now and Voice Search. If you take a look at the list of apps, there are also others that can't be run directly, such as MusicFX, NFC Service, Search Applications Provider etc., most of which take exactly the same amount of space, 12.00KB.
Note that this is just an assumption, I have no further proof.

Yep, I actually came into the same conclusion, but was looking for some proofs or just similar thoughts

But, huh, they could choose the better name for the service (who I am to judge though)

It's launchable, there are apps in gplay store to open the activity. Can't confirm that they are working, using lollipop

This app has no inbuilt GUI link on many builds. You can use the app Sound Recorder Shortcut by KN Inc to access it through a shortcut though. The app needs no permission. The recordings are saved on the SD card in path /sdcard/. The files names are recording*.3gpp. The recording was just ok though with some amount of background noise.

I managed to record with the help of built in app. Go to Messaging app->Attach->Record Audio.

Here's how to run it:

Open your app list.
Go to Voice Recorder.
Open it and record.

There is no either "Voice Recorder" or "Sound Recorder" in "app list"

Are you in stock 4.2 or is a custom ROM? Voice Recorder should be in a stock ROM.

I'm on a vanilla JB 4.2.2 shipped with Nexus 4

I think Nexus 4 doesn't have it preinstalled. Does it have something like "Google Voice" or something similar?

Nope, there is no Google Voice. And I've added a screenshot of a app details taken from "App > All > Sound Recorder"

There must be an .apk floating around somewhere.  My CyanogenMod 4.2.2 has an app in the drawer named "sound recorder".


text:
What is the difference between nordic, global, etc. firmware versions?
Here I see various versions of the official 4.1.B firmware for the Xperia Neo V. What are the differences between nordic, central europe, etc. versions?

Languages support I guess, plus the build number targets the specific SI numbers found underneath the battery hence the differences between them, however minor they may be, to target the region itself.

Plus, regulatory domains - for the most common one, WiFi channels are limited to the first 12 in the USA, whereas 14 are available in Japan and 13 in most of the EU. These are legal, not technical limits, enforced by whatever technical authority exists in the given country (e.g. FCC in the U.S. of A.). Smartphone makers usually comply with these limits by providing different firmwares for different jurisdictions (of course, if there are multiple jurisdictions that are similar in those respects, you just might get a firmware labelled "Nordic" for DK+NO+SE+FI or "North America" for CA+US+MX).


text:
How can I get exchange email subfolders on my Samsung Galaxy S3?
Does anyone know how I can access exchange email subfolders on my Samsung Galaxy S3?
I have set my Samsung Galaxy S3 up with my corporate exchange 2010 server and it syncs all the inbox emails, calender appointments, and contacts without problem but I cant access any of my email subfolders.
This device is running Android 4.0.4.

It's there all along!
Open up the email app and press the menu button.
Go to View>Folders
You now need to tap the folder icon next to Inbox and it will 'expand' and display all the subfolders under it.
This MUST be the icon and not the text. It wont work if you press the text so you must press the icon.
I have to say this is pretty poor UI design, as it is not obvious to end users.
I'll try and add a screenshot when I next get the s3.

Dammit Samsung..


text:
Can I save my htc desire if the battery is dead?
I ran my HTC Desire on a 0% charged battery - and it shut it self down. Now it won't charge anymore and wont start even when plugged in.
What are my options?

There are two options from my point of view:

Buy a cheap replacement from ebay (search for 'BA-S410 HTC battery', the Nexus One also has the same battery)
Leave it 'charging', maybe it revives on its own

Background:
LiIon batteries need a safety circuit because they must stay within certain charging levels (not under nor overcharged). If that circuit detects undercharge it may just think it's dead and prevent further charging for safety reasons.

Thank you for your answer - I'll try my luck with leaving it overnight in the outlet and see if it charges.
Any idea if an external charger will be able to charge it?

Left it fro 6 hours ... didn't charge :(.
Now for eBay ...

Good news everyone! :) After taking out the SIM and re-inserting it (don't ask me why) - the device turned on. And to my surprise, the batter was 100% full now!

How long have you left it charging for? If it hasn't been long (a couple of minutes then your phone is probably fine). Connect the phone to the mains and leave it plugged in (don't try to turn it on) for about 15 or 20 minutes. It should start up then.

Thank you for your answer - I tried it for about 20 min so far and I still don't see the charging light turning on. Should it turn on?


text:
Does Android have a "device driver" architecture?
Since 1990, when a new version of Windows comes out, the (only) thing that stops PC owners from upgrading is whether there are compatible device drivers for their hardware (network adapter device driver, display adapter device driver, printer device driver, etc.).
Does Android have "device drivers" that Acer, Archos, HTC, Huawei, and other phone manufacturers can publish on their website such that Android device owners can, if they want, upgrade their phone's OS and afterwards (download and) install the appropriate drivers?

Android does not have "device drivers". If you were to think of the entire Android ecosystem within your handset, split into 3/4, using the Java Programming language, the remaining 1/4 is the kernel written in C/Assembler. It is there within the kernel is where the drivers are embedded. That is part of the kernel's job to interact with touchscreen, accelerometers, compass, etc, and certain interactions with the hardware gets delegated to the Android side of things. That is a summary in abstract form for the layman to understand.
On to hardware manufacturers such as Acer, Huawei, HTC, Samsung, Sony, Zte, to name but a few, what each of those companies do, is publish the sources to the kernel, so that it can be built. Although, having said that, some are not exactly GPL compliant, some provide sources, which may not be fully complete, quite possibly, due to the restrictions on certain closed-source for a particular hardware, or others just flagrantly violate the GPL and not publish it at all. Perhaps, some do distribute the source in which the process of rolling your own kernel can fail due to malformed errors in the code or missing extra code.
That applies to, generally older kernels, version 2.6.x, in which a mix-and-match of the appropriate sources gets merged in manually, to create a build, this is where it can backfire quite horribly, the build breaks, kernel refuses to boot and lots of hacking to get the build to work.
Atheros, is one very classic example of a wifi chipset found in quite a large majority of handsets, notably, the sources for the device driver, are quite hard to find, which has resulted in broken builds of the driver, in turn, when integrated with the kernel, as a whole, Android refuses to start the wifi. Due to obscurity of the source, hackers have attempted to get the appropriate wifi driver from other stock ROMs thereby exacerbating the gambling on the functionality of the wifi which either work or break.
The newer kernel versions 3.1.x, have most of the device drivers employed for usage with Android, merged into the main kernel sources thereby minimizing the chances of mix-n-matching, merging the source manually for a hardware, be it a new compass, acclerometer etc.
If there's anything amiss feel free to comment, and amend this accordingly.

Steve Kondik's recent Cyanogenmod presentation explains a bit about how the device layer works in Android, and explains a bit about why its complicated (skip to minute 27 or so): http://www.youtube.com/watch?v=puSdhvC0ExY&feature=player_embedded

It's eye-awakening that Android prides itself on running on hundreds of devices, yet it has no "hardware abstraction layer". Oh irony. Dear Android, it's 2012, not 1985....

@WilliamC sure Android runs on hundreds of devices, "hardware abstraction layer" hal - well... in a way you're correct, that hal is found on linux desktops (most distros having to support a vast array of devices such as PCI, on first boot from a live DVD etc which are quite standardized this applies to windows also) but sorry to prick your conscience, to each and to their own manufacturer, with a vast array of circuitary etc... hal at this stage is not quite viable due to differences in it. Its a different story with PC world of BIOS's,standards etc, sounds paradoxical though! :)


text:
What's a good app for managing media files?
I prefer to manually organize my media (music, podcasts, video) on my SD card using a file manager (as opposed to letting the media player organize it all by tags, because it mixes music with podcasts and doesn't organize untagged files).
I've been using the "File Manager" app which works fine, but the problem is when I select and play a file with it, it will play in the player of my choice but when I 'minimize' the player the audio stops.   It seems that when I manually select a file to play it's not opening the file and letting it run in the background while I multitask.
Any tips or app recommendations appreciated !

This isn't an answer to your question but it might help: I use BeyondPod to download,manage and play podcasts and there's an option to hide podcasts from Android's Media Server (which scans folders looking for media files) so my podcasts never show up in my Music Player.  So when I want to listen to music I open the "Music" app and when I want to play a podcast I open BeyondPod.

Cool, good tip Matt - thanks I'll try it out.

Just saw this: Music Folder Player

Wow, good timing - I'll check it out!

How do you"minimize" ? Pressing the BACK key is almost akin to quitting. However, pressing the HOME key usually allows you to multi-task and allows the currently running app to carry on in the background.
Try pressing the HOME key to see if the audio continues so you can then switch to whichever app you like.
You can try the Meridian Player - it allows navigation via specified folders and the freeware version should work fine for you. Multi-tasking / background playback is definitely part of the feature-set.

Yeah, I am using the HOME key.  Seems that when you open a file with FIle Manager, it will open it in an external app but any navigation away from it and it will quit back to FIle manager.  As if File Manager is the parent.  And hence, you can't get audio files to play in the background when multitasking.

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/2.5/


text:
Why does the in-call volume change on its own on my Samsung Galaxy S3?
I have a Samsung Galaxy S3 (SCH-I535) running Android 4.4.2 and I'm having an extremely annoying issue: Whenever I make or receive a call, if I adjust the in-call volume to the desired level (usually somewhere between 80% - 100% if I am in a noisy place) then during the call, the call volume will suddenly drop to roughly 25% - 35%
This happens repeatedly during a call. I am not using a headset of any kind: I am simply holding the phone up to my ear. I am positive that I am not pressing any buttons on the side of the phone, and I press the lock button to turn the screen off before holding the phone up to my face, so I'm sure I'm not triggering any on-screen functions with my cheek/ear.
This makes it doubly annoying because the volume buttons don't appear to work reliably when the phone is in this state. So after a few minutes at the desired volume, suddenly I can't hear he other party and I need to ask them to please wait, bring the phone away from my face, unlock the screen, adjust the volume back to maximum using the volume buttons (ever time I see the volume slider has dropped from where I last had it set) lock the screen again and then resume my call.
This will happen repeatedly, every few minutes while on a call.
I have the stock Verizon/Samsumg OS, phone is not rooted, and I can't find any setting which might be causing this. I don't have any custom volume adjustment apps installed. Looking for any assistance! Why does the in-call volume drop on it's own on my Samsung Galaxy S3?

The problem was caused by an app that I installed for allowing the company I work for to page me. This proprietary app had a bug that caused it to drop the in-call volume during a call; Updating the app fixed the problem.


text:
OTA Update on a rooted Nexus5 with Custom Recovery and Kernel
A few months back, I rooted my Nexus 5 using Towelroot, installed TWRP and ElementX Kernel. Now as the Android Lollipop update is around the corner, I don't think I'll be able to install OTA update because of rooted phone and custom recovery. In some forums, I even read that it might mess up my phone.
So now, I want to know what is the safest way to get the official Android Lollipop update, I don't mind losing root, custom kernel and all that, I even searched going all stock, but that seems like a cumbersome solution with many risks. One easy way I was thinking of is downloading the Android Lollipop System image (tgz file) when Google uploads it and flashing that into my phone using TWRP.
However, I don't know how and can't find anything about how to flash a tgz file. Can I do it by placing it in the memory, booting into recovery/install/AndroildL.tgz.  Will that do it? If yes, then what changes will it make> will my custom kernel and root be gone or not? Thank you

To install OTA revert back to stock with the factory image. You will go back to Stock Kernel and recovery. It's the best way. Or wait til someone builds a pre-rooted stock ROM and flash that, or a custom Lollipop ROM once they start getting released.

"revert back to stock with factory image" can you please tell me how to do it using TWRP? or is their any other step by step guide available?

Cool, consider it done! And now it is done!

I think your best bet is to unroot your device and restore it to stock. This means stock ROM, recovery and kernel, and you will be unrooted. This is often referred to as "flashing a factory image", sometimes incorrectly. But that's what we're going to do!

Note:  This process will wipe your phone completely. Backup your storage before you continue.
I am also not responsible if anything goes wrong. Ensure you verify this is the correct device and code name (hammerhead) before you proceed.

From this excellent XDA thread:
For this process, you will need to:
Install adb and fastboot drivers. To do this, use this simple program

For MAC users
*Note: MAC users will have to write ./ before every command in this thread. For example : ./fastboot flash recovery recovery.img

Linux users should know their stuff

Download the latest factory images from here

Extract the archive you downloaded (Use WinRAR). It should look like this:

Unlock your bootloader (In case you haven't already) Link here
Flashing the factory images

Power off your phone.

Boot it in fastboot by pressing and holding Power Button + Volume Down at the same time.

Connect your phone to your PC through your USB cable.

Execute the flash-all.bat script (for Windows) or flash-all.sh(for MAC and LINUX) in the folder where you extracted the factory images.
!! For MAC: You'll have to edit the flash-all.sh, and add "./" before every fastboot command.

Wait for everything to flash.

After everything finished, select "Recovery" using the volume buttons.

When a small dead Android appears, press Power Button + Volume UP.

Select "Wipe data/factory data reset"

Reboot. Your phone should be stock.

Note: The XDA Thread has further detail on re-locking the device and resetting the tamper flag should you need to claim warranty. It's a bit outside the scope of this answer, but it might be of use!
Note 2:  Some Nexus devices will show as having 16 Gb after this on the 32 Gb model. The below is a fix via cmd:
fastboot erase boot
fastboot erase cache
fastboot erase recovery
fastboot erase system
fastboot erase userdata

fastboot flash bootloader C:/image-hammerhead-krt16m/bootloader.img
fastboot reboot-bootloader
fastboot flash radio C:/image-hammerhead-krt16m/radio.img
fastboot reboot-bootloader
fastboot flash system C:/image-hammerhead-krt16m/system.img
fastboot flash userdata C:/image-hammerhead-krt16m/userdata.img
(Note: this command will wipe your device (including /sdcard), EVEN if your bootloader is already unlocked.)

fastboot flash boot C:/image-hammerhead-krt16m/boot.img
fastboot flash recovery C:/image-hammerhead-krt16m/recovery.img

Maybe a stupid question, but wouldn't performing a factory reset also do the trick?

@S427 as far as I know you need a stock recovery at least on the device to install an OTA, but normally a stock kernel / recovery. Either way a factor reset won't reset the kernel or the recovery on the device so a factory image won't install on the custom setup. Thanks for the edit, dont' know what I did there :|

I know the credit belongs to XDA, but thank you for posting the guide here - it helped me unbrick my Nexus 5 after it self-bricked (yes, turns out that happens too)

Another option, without wiping any data, is to

when an OTA update is available, get the direct link and download the zip file to your PC,
download the latest image version of your custom recovery (eg TWRP) and the latest SuperSU zip to your PC
connect your device to your PC and reboot into bootloader mode
then dirty flash the stock boot, recovery & system partitions of your current Android version,
in stock recovery mode, install the OTA zip via adb sideload update.zip,
reboot into bootloader mode
flash back your custom recovery image
(alternatively) flash your custom kernel
reboot into recovery mode
in the custom recovery mode, root the device via adb sideload UPDATE-SuperSU-vX.X.zip
now clear cache and dalvik-cache and reboot the system

Done. OTA applied and you can just pick up from where you left.
This is not the only method, of course, and is not recommended for major version updates. But for minor version updates, this is, IMHO, preferable to dirty flashing the new system and to any method that require a data wipe.
A very detailed step-by-step version of this solution can be found here: https://gist.github.com/eyecatchup/ec0a852428c19705380e

I wanted to keep my userdata, so I followed the directions provided by Mistywing and it seemed to work well going from 5.0.1 to 5.1.1. on my Nexus 5. For the complete instructions, check out the Mistywing post:
http://www.reddit.com/r/Android/comments/36n4va/nexus_5_511_ota_from_lmy47d/crg3jza
Here are the highlights. I lost root and TWRP, but wasn't too worried about that at this point.
I got adb and fastboot working on my Mac. I downloaded the image from Google, I backed up my data, restarted in bootloader and ran these commands in order. I was careful to omit flashing the userdata file, which would wipe my data.
fastboot flash bootloader [bootloader file].img

fastboot reboot-bootloader

fastboot flash radio [radio file].img

fastboot reboot-bootloader

fastboot flash recovery [recovery file].img

fastboot flash system [system file].img

fastboot flash cache [cache file].img

fastboot flash boot [boot file].img

I restarted using the bootloader controls (used volume to get the green START option and then power to activate it). The startup after this took quite a long time "optimizing" my apps.
The OTA update notification went away and the OS seems much more responsive.

Install Multi ROM Manager, And install Lollipop image on it.

Could you provide a link and explain how to do that?


text:
How to stop Time Warner cable search on Firefox for Android?
I went into about:config and have the following:
browser.search.defaultenginename
Google

browser.search.official
true

browser.search.order.1
Google

keyword.URL
https://www.google.com/search?p=

And still, when I type in the search bar, it pulls up Time Warner Cable Road Runner search instead of Google. It looks like only if I have more than 1 word does it decide to use google -- maybe using only 1 word means I type a malformed URL? How can I fix this to use Google as a proper search engine?

Try adding Google search engine plug in from here http://mycroftproject.com/

Your issue is not related to Firefox but to your internet provider (Time Warner Cable). According to this site, it "hijacks" your browser's default DNS resolution failure behavior (also known as "404 page"), redirecting you to Road Runner.
Following this site instructions, you just have to go to Road Runner's preference page and disable the Web Address Error Redirect Service option then save.

When a hostname cannot be found in DNS, instead of letting your browser's DNS handle the condition Time Warner's servers search to come up with possible alternatives to what was sent as the web URI request.
You can (should) change the DNS servers for your Wi-Fi connection to be some public DNS servers such as Google's or OpenDNS's. If you are not using the Time Warner DNS servers, they cannot redirect a failed DNS lookup as they will not be handling the DNS.
Google's public DNS servers are 8.8.8.8 and 8.8.4.4.
For OpenDNS, you should set up a personal account there, even though it isn't absolutely necessary to use their public DNS server, there are some nice tools if you do so.
One other thing that should be noted here is that a "404 page" is something that is returned by a webserver that cannot locate a page within the site. This has absolutely nothing to do with DNS or what Time Warner is doing.

Just another quick thought here regarding this... It is pretty much generally accepted as a good idea to use DNS supplied by someone other than your ISP.

Change network.dns.disableIPv6 to "true" in about:config.

Mind to explain what switching off IPv6 has to do with the default search engine used?


text:
Pushing files to my tablet from PC
I have a Sony Tablet S.
When I'm browsing the Google Play webpage on my PC, I can install applications by just pushing the Install button and choosing my device - all done on my PC. Then a moment later, automagically, the application is installing on my tablet.
Is there some similar functionality to send pdf/mp3/mp4 files to my tablet from my PC?

Apart from mails with attachments, I only know about some solutions involving a server software app on the device :)

Awesome Drop does exactly what you are looking for.
Drag and drop into a page on your pc's browser and the are automatically downloaded to your device.
Edit:
Here are a couple other options:

Wifi Syncr: If you are connected to the same wifi network this will do exactly what you want.  You basically setup a shared folder in Windows and anything you put in that folder is pushed to the designated folder on your device.  It's a one way sync: PC => Device.  You may be able to set this up to work remotely over the internet if you use a Dynamic DNS service but I don't really know.
You can use a cloud service like Flow mentioned in his answer and couple that with an app that will automatically keep the local folders on your device synced so you won't have to manually download each file.  I personally use DropSync with my Dropbox account. I've also used FolderSync with Google Drive (FolderSync actually syncs with tons of cloud services).  Both are paid apps but have lite versions that limit you to one folder which would work.  The drawback to this method is that there is a way to set it up to detect changes on your local device and sync immediately, however it can't detect changes to the cloud directory so files would only be downloaded to your device on the sync schedule you setup.

This one is the closest to what I want. The best would be something like this but using my google account and Google Drive so that I would be able to drop the file at work and later when someone turns my tablet on at home it will be automatically downloaded.

@SeeR I updated my answer with a couple other options that might be closer to what you are looking for.

I think most similar way to do this like what Google Play does, is:
If your files are saved on PC, and your device is connected to the same network as your PC (including local networks without internet connection), then you can use remote android controllers, like free and powerful AirDroid to upload files from PC to the device (batch files and folder transfers are supported).

Instead of explicitly pushing a file to your Android device, have a look at cloud storage providers. For example Dropbox or Google Drive. IMHO that is a superior approach, but it comes with two drawbacks:

privacy/security concerns
(Sometimes) the file will have to be uploaded first before you can retrieve it on your device. There is no direct file transfer from your PC to the device which is desirable when dealing with large files.


text:
App to hand write notes
I am looking for an app that would be good for taking hand written notes on a 10 inch screen tablet
The closest app that i found is "note everything"  What makes it short of my requirements is
1(most important) Drawn notes that i can write on are each 1 tablet screen size.  I want something that can be scrolled down forever as i need more space.  Something the way a normal document works.  At worst it should let me instantly page another full canvas forward, not have to create a new note for every page
2. text notes and hand written notes are separated into separate files.  I would like the whole note to be hand written, but be able to add typed ares
3. There are no lines in the paint section.  Makes it hard to write
Can anyone suggest anything better?

Quick notes is alright.

This app only allows one page per note.

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/2.5/


text:
Facebook message notification
Is there away to make my phone stop beeping when I get a Facebook message if I'm already on Facebook on a different computer?

Is there away to make my phone stop beeping when I get a Facebook message if I'm already on Facebook on a different computer?

Emphasis mine. No, there is currently no way for the Facebook app to only send you messages when the phone is the only device connected. The only option you have is shutting of certain kinds of notifications completely.

In my experience, if you reply on a PC to the person who is sending you the messages, the notifications will be silent on your phone. Other than that, it doesn't seem to be currently possible.


text:
Is the setting OFF/ON of the security flag different from enabling/disabling of fastboot?
I am following the book XDA Developers Android Hackers Toolkit 2012.
 In the beginning chapters , it says that :
The second-stage bootloader checks to see if the security flag is on (S-ON) or off (S-OFF) and depending on that , it checks for the signatures in kernel and OS that is to be loaded . The book says that if the security flag is S-OFF , then the bootloader no longer checks for signatures and also makes the entire system writable .
Now , coming to fastboot :
Fastboot is a protocol that allows low level commands to be sent to a device to do such things as write files to the OS . Most manufacturers , therefore , disable the fastboot protocol at the factory .
Can the security flag be S-OFF and fastboot be disabled ? Can anyone elaborate on the relation between the security flag and fastboot protocol ?

S-OFF is mainly found in HTC devices, and is a separate security mechanism whereas the /system directory cannot be mounted RW across boots.
It also restricts other features.
If S-OFF is enabled, fastboot can't be disabled, as fastboot would have to be enabled to turn S off. As such, fastboot would most likely be enabled, unless it was re-locked in some way (which would in turn lock S to ON).

Does a 'locked' bootloader refer to one with a disabled fastboot or one with S-ON ? Thanks

Locked bootloader = disabled fastboot.


text:
Google Play Games doesn't restore highscores?
Maybe this question is totally dumb, but I was always under the assumption that if I connect a game with my Google Play account (if that's offered), my highscores, progress in games, etc. will be saved and restored if I connect it on another device or re-flash the phone's ROM?
However, with many games (like HexaBlast, Lara Croft, Temple Run etc.), no game stats and levels seem to get saved, I'm starting from point zero.
If Google Play Games isn't good for that, what's the actual point of connecting a game to Google Play Games at all?

Google Play Games Services support saving game progress since the beginning, and it's upgraded on November 2014. From Android Developer blogs,

[...], when Google Play Games launched, one of the very first features we included was the ability for users to save their game to the cloud [...]
[...] this past year (ed. 2014) at Google I/O, we launched an entirely new Saved Games feature, powered by Google Drive.

However, being able to save doesn't mean it will automatically save your game progress: the developer has to implement the logic that uses this service.
Anecdotally, I have played some (rhythm) games that use this service and worked properly when I replaced my Nexus 4 with Nexus 5. On your case, unfortunately, I have to say that this is fully the developers' fault.
As for why they use Google Play Games service, its features are not only for saving games: achievements, global highscores, etc.


text:
List body sensors available on Android devices
How can I list body sensors available on Android devices?

Think of any possible sensor, it's available. That's because Android uses the Linux kernel, meaning it possible to utilize any sensor out there. That might require a custom kernel, but it works.

Cool, but I was just wondering about buil-in body sensors available so far. For instance I know there is one that can measure your pulse. What other bio sensors are there?

There are a lot, from step sensors and counters to anything. If you look at the data sheets of some phones and tablets, you will see a lot of different sensors. Feel free to make a community wiki answer and add as many as you can find.

Please note that we cannot give you a list on "all sensors that might be available on the thousands of possible Android devices". This site is for end-users, not for "scientific research issues". To interpret it as an end-user question, for my answer I "rephrased it in my mind" to match: "How can I find out what sensors are available on my Android device".

ADB can be your friend here:
adb shell dumpsys sensorservice

will provide you with a list of all your devices sensors plus details on them. In the following example, I've just captured a list of their names (better readability) using my Linux machine with my Wileyfox Swift connected:
$ adb shell dumpsys sensorservice |egrep -B99999 "^halVersion" |awk -F '|' '{print $1}' |grep -v -e '^[[:space:]]*$'
Sensor List:
liteon-light
liteon-proximity
BOSCH Acceleration Sensor
BOSCH Gyroscope Sensor
BOSCH Magnetic Field Sensor
BOSCH Orientation Sensor
BOSCH Gravity Sensor
BOSCH Linear Acceleration Sensor
BOSCH Rotation Vector Sensor
BOSCH Game Rotation Vector Sensor
BOSCH Gyroscope Uncalibrated Sensor
BOSCH Magnetic Field Uncalibrated Sensor
BOSCH Geomagnetic Rotation Vector Sensor
Rotation Vector Sensor
Gravity Sensor
Linear Acceleration Sensor
Orientation Sensor
Corrected Gyroscope Sensor
Gyroscope Bias (debug)
9-axis fusion disabled (0 clients), gyro-rate= 200.00Hz, q=< 0, 0, 0, 0 > (0), b=< 0, 0, 0 >
halVersion 16973825

Distinguishing the sensor types is a different issue and IMHO not covered that easily. But knowing what sensors are there altogether, you can tell them apart yourself.
Self-promotion: My tool Adebar includes those in the device documentation it generates.