text:
What is the format of Android's logs?
I'm trying to gather data about my phone by analyzing the log files in /dev/log. I'm specifically looking at /dev/log/main. I always thought that any sane log format would be plain text, yet these files appear to be either binary or in some character set that neither I nor my Linux text editors can identify.
What is the format?
Here are a couple of screenshots:

First, here's a snippet of the log as interpreted by vim (^@ refers to the null byte; I'm not sure about the other colored control sequences):

Next, this is what the log looks like in a hex editor:

I'm using a Galaxy Nexus running Jelly Bean. The logs were collected using root and a terminal emulator, since aLogcat doesn't seem to use root and thus can't access all logging info.

If you want sane information, I recommend sane commands :) (no offense meant, just kidding). So the question should read:
How to obtain log information from an Android device?
And now we are on the better side. There are multiple approaches which can be used:

utilize apps to display (color-coded) log information
utilize ADB (part of the Android SDK) to remotely extract the very same information
use ssh from remote (or a local terminal app) to aquire the information directly from the device

To fully handle this topic it takes more than this simple answer (if interested, you can e.g. find more detailed information on many web sites, or in Andrew Hoog's book Android Forensics: Investigation, Analysis and Mobile Security for Google Android, which I had the honour to translate into German. There are probably many other sources as well.
So I will just give a few examples here to get you started:
Utilizing apps
The probably best known app in this context is aLogcat, available for free in the playstore (and the dev will happily accept your donation for the other variant of the same app). You'll find a screenshot below1. The app allows you to filter the logs, to start/stop recording log messages, and even to store the recorded snippets to your SD-Card -- of course in plain text, as you requested.
Another app in this section is Log Collector, which simply tries to grab the entire available log and send it via the share menu2.

The Android Debug Bridge (ADB)
The Android Software Development Kit (SDK) includes the adb command for various tasks. Amongst many others, it offers the adb shell to execute commands on the device. Using this, you can gather your desired log information as well: Just prefix below commands with adb shell.
Command prompt on the device
Using a terminal app (e.g. Android Terminal Emulator or Terminal IDE) you can access the logs directly at the command prompt, locally on your device. A little more comfortable, this can be done running a ssh server (e.g. DroidSSHd or DropBear SSH Server) on your device, and access it from your computer. This way you can work on a big screen, while investigating your logs.
Commands to access your log information
There are a lot of powerful commands you can use to access your log information from the command line, and I will only give a few examples here.
dmesg
The dmesg command extracts the kernel log:
$ dmesg
<6>[82839.126586] PM: Syncing filesystems ... done.
<7>[82839.189056] PM: Preparing system for mem sleep
<4>[82839.189361] Freezing user space processes ... (elapsed 0.05 seconds) done.
<4>[82839.240661] Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
<7>[82839.242279] PM: Entering mem sleep
<4>[82839.242889] Suspending console(s) (use no_console_suspend to debug)
<7>[82839.252410] vfp_pm_save_context: saving vfp state
<6>[82839.252716] PM: Resume timer in 26 secs (864747 ticks at 32768 ticks/sec.)
<6>[82842.091369] Successfully put all powerdomains to target state
<6>[82842.092468] wakeup wake lock: wifi_wake

logcat
With logcat, you can access many logging information -- but most times, this will require root. It has some parameters to filter the information, e.g. by selecting the log buffer to read with -b. Please read the information provided on the developers page on logcat for details. To give you two examples: logcat -b events would list up events, or logcat -b radio information on your device's radio modul.
dumpsys and dumpstate
The two commands dumpsys and dumpstate give you detailed system information:
$ dumpsys
Currently running services:
    LocationProxyService
    SurfaceFlinger
    accessibility
    account
    activity
<snip>
DUMP OF SERVICE account:
Accounts: 1
    Account {name=xxxxxxx@googlemail.com, type=com.google}
<snip>
DUMP OF SERVICE alarm:

$ dumpstate
========================================================
== dumpstate: 2012-08-18 23:39:53
========================================================
Build: Gingerbread GWK74 - CyanogenMilestone2
Bootloader: 0x0000
Radio: unknown
<snip>
------ MEMORY INFO (/proc/meminfo) ------
MemTotal: 487344 kB
MemFree:   10436 kB
Buffers:   14136 kB
Cached:    145460 kB
<snip>

bugreport
And if you are too lazy to remember them all, simply use the bugreport command -- which calls all above and bundles it for a nice, humm, bug report to the developer...
Of course, you can redirect the output from all those commands to a file to copy to your computer, and in most cases you should do so -- as your screen buffer would be far too small to handle it all: bugreport > /mnt/sdcard/bugreport.txt would be one example for that part.

$ dmesg or dmsg? There must be a typo in one of these :)

@jadkik94 that's my favorite one to check if anybody notices... No, forget the second part -- and thanks for noticing :) Fixed.

I always forget which one's the correct one :) and always too lazy to search for it... :P

All hail to the bash-auto-completion :) Moreover: I copy-pasted the examples from my book, where I copy-pasted it into from a real-life-example, so I knew which one had to be the correct version...

Thanks for this detailed answer. One question, though. While logcat provides most of what I'm looking for, is there a decent way to access the files directly? I'm thinking that when I want to grep through the logs, I might not remember to use logcat -f, and there are no man pages on Android. It seems that "everything is a file" has been somewhat abandoned on Android, which makes it more difficult to use.

That may get hard. Logs on Android are using a so-called "ring buffer". Due to limited ressources, they are not kept in the file system forever but are "recycled". These two facts taken together probably give you a reason why the files are using a binary format (probably easier to maintain for a ring buffer). -- And even if you forget -f, > mylog.txt works fine for all the tools mentioned. Guess the thing you rather care about is -b (to select the buffer, and how that one is named), -d (dumping the entire log) or -v (setting the log format). A little text file will do to remember ;)

I further noticed that logcat does support --help, so I think I'm good to go. Thanks.

By the way, do you know of a method to make aLogcat use root? It seems that non-root processes can only see their own log data, which makes aLogcat rather useless for trying to examine some other app's logging data.

There was a change in the system with JellyBean, which causes apps like aLogCat to no longer be able accessing certain logs. They work fine with at least Gingerbread (I use *aLogCat with GB devices, but have no 4.x devices to check). I'd say file a report to the developer -- but better check first if it's not already known to him ;)

The change had to do with a new permission required to read logs from other apps.  Currently aLogcat can only read its own logs.  In order to get it to read logs from other apps, you need to manually give it this new permissions like so: adb shell pm grant com.nolanlawson.logcat android.permission.READ_LOGS

Oh -- need to divert my above statement: At least some hail to Chahk :) Thank you and +1 for this info!

For developers (or other interested parties) who need to parse this raw file, here are some resources:

logcat (the program that can output binary logs), it calls android_logger_list_read() to gather log entries: https://android.googlesource.com/platform/system/core/+/master/logcat/logcat.cpp
Information about Android Logging in general: http://elinux.org/Android_Logging_System
The low-level logging library for reading/writing logs: https://android.googlesource.com/platform/system/core/+/master/liblog
An utility to dump raw (binary) logs, optionally switching versions: https://lekensteyn.nl/files/logread.c
Kernel source for logger: https://github.com/android/kernel_common/blob/android-3.10/drivers/staging/android/logger.c

The actual format of the log format is detailled at:

https://android.googlesource.com/platform/system/core/+/master/include/log/logger.h

A copy of the relevant parts, slightly annotated and re-ordered for your convenience:
#define LOGGER_ENTRY_MAX_LEN (5*1024)

struct log_msg {
    union {
        /* Maximum size of entry: 5121 bytes */
        unsigned char buf[LOGGER_ENTRY_MAX_LEN + 1];

        struct logger_entry_v3 entry;
        struct logger_entry_v3 entry_v3;
        struct logger_entry_v2 entry_v2;
        struct logger_entry entry_v1;
    } __attribute__((aligned(4)));
}
/*
 * The userspace structure for version 1 of the logger_entry ABI.
 * This structure is returned to userspace by the kernel logger
 * driver unless an upgrade to a newer ABI version is requested.
 */
struct logger_entry {
    uint16_t    len;    /* length of the payload */
    uint16_t    __pad;  /* no matter what, we get 2 bytes of padding */
    int32_t     pid;    /* generating process's pid */
    int32_t     tid;    /* generating process's tid */
    int32_t     sec;    /* seconds since Epoch */
    int32_t     nsec;   /* nanoseconds */
    char        msg[0]; /* the entry's payload */
} __attribute__((__packed__));

/*
 * The userspace structure for version 2 of the logger_entry ABI.
 * This structure is returned to userspace if ioctl(LOGGER_SET_VERSION)
 * is called with version==2; or used with the user space log daemon.
 */
struct logger_entry_v2 {
    uint16_t    len;    /* length of the payload */
    uint16_t    hdr_size; /* sizeof(struct logger_entry_v2) */
    int32_t     pid;    /* generating process's pid */
    int32_t     tid;    /* generating process's tid */
    int32_t     sec;    /* seconds since Epoch */
    int32_t     nsec;   /* nanoseconds */
    uint32_t    euid;   /* effective UID of logger */
    char        msg[0]; /* the entry's payload */
} __attribute__((__packed__));

struct logger_entry_v3 {
    uint16_t    len;    /* length of the payload */
    uint16_t    hdr_size; /* sizeof(struct logger_entry_v3) */
    int32_t     pid;    /* generating process's pid */
    int32_t     tid;    /* generating process's tid */
    int32_t     sec;    /* seconds since Epoch */
    int32_t     nsec;   /* nanoseconds */
    uint32_t    lid;    /* log id of the payload */
    char        msg[0]; /* the entry's payload */
} __attribute__((__packed__));

You can tell the differences versions apart by looking at the third and four byte. The format is apparently also dependent on the endianness of your platform. For v1 messages, __pad equals to 0. v2 (and v3) messages use 24 (0x18).
For main, radio and system logs msg field is interpreted as follows (source):

priority: 1 byte
tag: 0 or more bytes
literal \0 as separator
message: 0 or more bytes
literal \0 as terminator

If this message is truncated, the trailing \0 may be missing.
For events log however, msg field contain the following binary data:

Tag: 4 bytes integer key from "/system/etc/event-log-tags" file.
Message: serialized tree starting from the root node. Each tree node starts with a 1-byte value from AndroidEventLogType enumeration:

EVENT_TYPE_INT - node value is 4 bytes integer
EVENT_TYPE_LONG - node value is 8 bytes integer
EVENT_TYPE_STRING - node value is 4 bytes integer length, followed by the length bytes containing a UTF8-encoded string
EVENT_TYPE_LIST - node value is a single-byte length, followed by the length tree nodes each of its own AndroidEventLogType.


text:
Using Calendar while calling
Can I access the phone calendar whilst on a call on a Samsung GT i8500.  If so, how?

Sure, why not? The dialer is just another app. Just pull up the calendar app like you would any other while your call is still active. Is there some reason why that's not working for you?

Yes you can.. while the call is active, press the home button. The current call will be minimize on the top notification bar. you can start any other app, while the call is still going on.

source: Stack Exchange

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

sort: votes


text:
How can I prevent apps from running in the background?

Possible Duplicate:
How can I stop applications and services from running?

There is already a similar question to this one, but mine is narrower in scope and not addressed in the other question:
Consider the case of an app that meets the following criteria:

Let's take a file manager as an example, but it could be a different app just as easily. The specific app isn't important to this question.
This app has no legitimate need to run in the background. I only need file management when I'm actively using the app. (In case my specific example does turn out to have a need, suppose for the sake of the discussion that it actually doesn't.)
The fact that it runs in the background is confirmed by a system monitor.
Even though I believe that it has no legitimate need to run in the background and don't want it to do so, I don't want to uninstall it.

Can I prevent such an app from running in the background?
Practical application
To illustrate the need for this specific question, and why I'm not naming specific apps, consider what I had in mind when I wrote this question:
I would like to go through my apps and decide which ones I want to run as services. Some should run without restrictions. Some should never run. Some should only run when some set of conditions is met. Using the information from an answer to this question, I could implement this--possibly by some custom scripting, possibly using Tasker, or possibly using another approach. Trying to handle this via each individual app's settings would be well-nigh impossible.
Of course, if what I'm asking in this question isn't possible, then this application of it isn't viable.
Notes based on the comments and answers

The reason why I want to do this is irrelevant. Perhaps it's to save battery. Perhaps it's another reason. This question is about how, not why. A warning that a particular solution could have negative side-effects is useful if presented along with that solution. Saying, "It's impossible" is legitimate if true. Saying "Don't do it" isn't useful.
This is not a duplicate of the question I linked to in my first paragraph. That question was about saving memory. This one isn't. That one said, basically, "Don't try." That's not a valid answer to this question.
The specific apps are unimportant, which is why I was vague. I did give a hint as to a specific example I had in mind, but I'm looking for a general answer here.
A solution must also prevent an app from automatically restarting; otherwise, it isn't much of a solution.
A number of people have stated that this is a duplicate. Let me try to explain more clearly why it isn't:

This question is about how to prevent an app from running in the background, which includes stopping it from restarting if killed.
The answers so far have fallen into a few general categories:

You shouldn't try, because doing so is unnecessary. I'm not disputing this point at this time, but "You shouldn't try" is very different from "You can't." Logically, it's addressing a different question, namely "Should I try to kill apps that I don't want to run?"
Use method X to kill the app. Unfortunately, when I tried said method, it didn't prevent the app from restarting, just like others predicted. So, it isn't really an answer.
Ping the developer/it's a bug. This is the most useful of the suggested solutions, but my question was looking for a generic solution.

The other questions that this question has been said to be a duplicate of cover the same ground as in my previous point. Thus, my specific question has not been addressed, despite many claims to the contrary. It's appearing, however, that the answer is a simple "You can't".
There's a related question on meta. In Jeff Atwood's answer, he says in part, "It's generally sufficient to link to the other question and explain why it doesn't meet your needs." The whole thread is apropos to this question. I've done this since the beginning, and provided further details in subsequent edits.

As this is not a real answer I'll just comment: many custom ROMs have a function to make a long press of the back button completely shut down any active app. I frequently use this to quit apps that I want gone completely until I open them next time. Other than that, it's good to know that background apps shouldn't affect your battery life.

Your question is a duplicate of too many questions; it is not narrower in scope, you're just spelling out what many others didn't. Saying it isn't a duplicate didn't make it not a duplicate. The solutions always fell into three categories: 1) use task killer, 2) uninstall the app, or 3) disable the service in the app. There are also many questions discussing pros and cons of task killers. At this point, I don't see anything in this question that hasn't already been discussed in other threads. Please be more specific, managing background task can only be decided on case-by-case basis.

@LieRyan: See my edit above, where I explain how this is, indeed, a different question.

I think we need some canonical question of that type. The duplicates 1, 2, from 3 don't fall into that category. I propose to migrate the answers from 3 here and mark it a duplicate.

The simple flow of the activity life-cycle, which is documented over on Google's developer pages, and employed and used by a large majority of developers, What you're coming across is this how can I control an app that a developer has made, to prevent it from going into the background - you cannot! The developer may have made a design decision over the life-cycle and used a service instead! But this question is moot as you're not being specific and dodging the true question - what apps are you referring to?

Finally, there's some discussion of the real issue. The question as you summarized it is perfectly reasonable, since in some worlds (I come from the Linux world) you can in many circumstances do just that. So in Android you apparently can't. Fair enough. That's the answer I was looking for. By not being specific, I'm not dodging the true question. I'm attempting to push people to answer the true question instead of answering more comfortable irrelevant questions, as people have been trying to do. If I was more specific, I'd get answers specifically related to those apps, not general answers.

Please note, this site (and by extension the rest of Stack Exchange) works best with specific questions that have the possibility of a single, definitive answer. A "general" question may be overly broad to get useful answers.

The problem here is that the lack of specificity means too many entirely distinct cases are lumped together: there is background residence without actual running, simply pending resource reclamation.  There is background running to do something on your behalf you didn't realize still needed to happen.  There is background running due to bugs/developers who don't understand activity and service lifecycle issues.  And finally there is background running to accomplish things you wish the app were not trying to do, that are either useless or actively detrimental.

tl;dr
It's ok if the app in background is just an activity. Activities just consume some memory are usually  not able to run computations in the background. Therefore no CPU or battery is used for them. But if the app in background is running a service:
Ping the developer
Ping the developer! One of the greatest daemons that come with Android are Services that run in background for no reason or when a simply interval check with Android's AlarmManager would be sufficient. We need to kill them all with fire and not by ignoring them. Everything that does not involve a fix by the developer is just a dirty hack that by experience will result in other negative side-effects.
Activities that run in Background
Pure Android apps and their activities usually stay around in memory for a while after they were put out of view. But at some point they may get deleted by Android's ActivityManager if there is an ongoing memory pressure. This is intended behavior, we (the users) want it that way and it works good in recent Android versions. Therefore there is nothing wrong if you see your file manager hanging around in memory.
Services that run in background
But, if it's a service that you see running forever without apparent reason (and without the possibility to disable the service somewhere in the Apps settings), you should contact the developer. In 99% of all cases, there is no reason to waste your precious memory by doing so. Android provides with intents and the already mentioned AlarmManager enough facilities to avoid long running services. Sometimes developers will response with "but Google Maps does that too". I argue that this is never an excuse to point at others, plus it doesn't provide a valid reason to run a background service.

Good explanation and to the point, +1 from me. I'm just mad you stole my Google-Maps-Argument xD In too many cases, Google itself gives the worst examples (see e.g. background sync settings, which are permanently ignored by several Google apps, and other "background activities" which are not configurable -- I could sing a long song about those...).

Can I prevent such an app from running in the background?

You're refusing to accept the answers you're getting because you don't think they fit, but they do. Your question is how to stop apps automatically instead of letting them run in the background. The answer you're getting is that in most cases this is unnecessary and completely bypasses the way Android is created to deal with background apps.
There's plenty of apps available to kill apps in the background, you can also swipe them away or you can use short commands like "long press back" in certain roms to shut down the process. Very rarely however is this to be expected from the user; a misbehaving app should be reported first of all, instead of being worked around.
If an app has "no legitimate need to run in the background", but it is still using system resources (please make sure this is actually true), then that app is poorly designed. It's not a fault in the Android operating system.
That being said, there are plenty of ways to shut down apps manually. Doing it automatically makes no sense, most apps behave well.

You correctly summarized my question and a commonly-stated position. But there's a logical problem here. The answer "It's not necessary" logically doesn't answer the question "How can I..." See my edit to my question for more.

It's counter-productive to answer questions that likely build on a misunderstanding. It's like expecting an answer to the question "how do I copy files with the dd command" and then refuse to accept that cp is a better alternative. I can see the point of answering every question from a learning perspective, but we also don't want to confuse people coming into the question externally via searches and so on.

@bigbadonk420 - good point, questions with an invalid premise often can't really be answered.  But your example is an odd one, given that a stock android install has a dd command but lacks a cp one ;-)

Use Llama, an app that can automate many things including killing an app when you go to a different app. It does require root to kill apps.
Create a new Event. Add the condition called Active App, and choose the status App stopped or in background. Choose the app you want to focus on.
Next, add an Action. Select Kill Application (root privileges), then select your app again.
Now, whenever you leave the app, Llama will kill it.
Note that the app may have other ways of starting, such as starting on boot or recieving a text or any other Intent that it handles. To keep it from handling those Intents, use the app Permissions Denied, or use a custom rom like CyanogenMod that have the ability built in. These apps can revoke permissions for any app (again, root required).
Edit: It looks like the free version of Permissions Denied is no longer available. I can still access the google play page (because I have it installed), but it's gone for new users. The paid version is still there, though.

Not recommended to be killing apps that run in the background, especially services, as that will instantly restart and suck up battery juice... just my 2cents. ;)

The OP doesn't specify what apps they desire to be killed. Killing Facebook, for example, will save battery life, since it won't be checking for updates. And it won't automatically restart; only some services are able to do that. There are situations where killing an app is good.

I used Permissions Denied on my previous phone once. When it started up, it immediately started making changes I hadn't asked for and destabilized my phone. I won't be using that app again.

Thanks for the answer. Since I'm a Tasker user, I set up an equivalent configuration. However, it didn't prevent my test app from restarting.

If you are running ice cream sandwich or jellybean you can go into settings hit apps and manually shut down the app by tabbing over to the running apps. Alternatively you can hit the recent app button and swipe them of the screen. However this method wont get all background processes.

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


text:
Shortcut of end the call
This might seem a foolish question but I'm facing this basic issue on my Samsung Galaxy Y Duos (android 2.3.6). This is my first Androide device and using it only since a week and a basic issue is ruining my Android experience.
While on call, if I press home button by mistake (Habit of last mobile), call minimize to top bar. This is specially painful when I need to cancel the call in urgency and I found call is minimized to taskbar, which then take considerable time to open the call and end it.
Is there any way to end the call immediately (shortcut) or at the least prevent the call to minimize during call.
Most basic and primary purpose of phone is to make/receive calls. I'm sure android must have taken care of that but its frustrating for me not to find that basic function.

There is a setting under Accessibility which allows you to end calls by using the power button.

Go to your phone settings menu. Under Accessibility, click the checkbox for Power button ends call.
Be careful using this with bluetooth. I have accidentally ended calls because I wanted to put the phone in my pocket; I pressed the power button (don't want my touchscreen active: I might accidentally end the call!), and the call ended.

Power Key End Call will let you end a call by pressing the power key. This should solve your problem; you can press the power key on any screen and end the current call.

That's not very helpful. How about a name? How/why does it solve the problem?


text:
Android custom factory apps
I want to protect my phone in case of stolen, so i want add an app which will install after factory reset. I have root acces. I want to that app be automatically installed, and factory reset won't remove it. What do i need to do?

You don't mention the app you will install. Is it a homemade app? If it is something developed by someone else, even if the app were to be reinstalled, you would need a way to configure it. Of course, if you built the app, you could hardcode the phone-home address.

A factory reset removes all user data, so the app would start with a fresh slate even if it's on the system partition because it's data is stored on /data. You'd need an app that's written to survive this by including the user's data in the package file.

The only downside is they could still flash another custom rom which would circumvent this

I used Avast! for this but the "rooted" installation of its anti theft function disappears when I install new ROMs and wipe, so I'm not sure I trust it.

Basically what you need to do is to install a custom rom on your phone. Tweak the rom so that your app is included as a system app. If the user does a factory reset, the systems apps go back to their default state.
You'll want to test it out, though. I don't know if a factory reset wipes all the data for system apps (clean slate) or if it resets it to how the app was when the rom was installed.
On top of that, though, a user who steals your phone may install a rom of their own. In that case, you are out of luck. As far as I know, there does not exist a custom recovery that can be password protected (to keep people from installing another rom).

Even if there was a custom recovery with password protection for flashing ROMs, there is nothing preventing a knowledgeable thief from flashing a different recovery over it.

I was assuming the rom would have some protection on it as well, like a password or pin. And you can set up the rom so that ADB is only enabled on demand. With that, I can't think of how a thief could overwrite either the rom or the recovery.

Reboot to recovery/fastboot and all ROM's protections are ignored since the ROM itself is not running.  As a rule of thumb, when a device is physically in the hands of a determined thief, all bets are off.

I was continuing the train of thought where the recovery would, in fact, be protected by a password - boot to recovery: password; boot to rom: password. True, you assume the thief could get control, but so many people brick their device because they lose access to the phone via recovery or rom (which would be the case with our hypothetical phone and thief). If the thief can unbrick using a serial cable or other method, then sure there is nothing you can do to stop them.

Although if the thief can't access either the rom or the recovery, then they would also be unable to do a factory reset. So perhaps my scenario is no longer within the realm of the original question.

I agree that the passwords would be enough of a deterrent to a "regular" thief.  However, a knowledgeable person can easily work around such restrictions. For example, most Samsung devices provide a "Download mode" which is separate from Recovery console and can be used to flash ROMs in their proprietary format.  HTC and most other Android manufacturers have a "fastboot" mode that is again separate from Recovery and allow for flashing  firmware over USB.


text:
Google Chrome for Android: Chrome Web Store

Possible Duplicate:
Does Chrome Mobile on ICS support extensions?

I have a Samsung Galaxy Y and Google Chrome for Android is incompatible with my Phone, so I am not able to test it. Can someone tell me as to whether Chrome Web Store and its apps are available in Google Chrome for Android too?

The short answer is: no, Chrome extensions (which are packaged as .crx files as mentioned below) are not supported on Chrome for Android.
This is answered in detail by the Chrome Web Store FAQ:

Will apps work on Android?
If your app is pure HTML, CSS3, and JavaScript and is hosted on your servers there is a good chance that it will work in the browser on Android. However, .crx files (including packaged apps) are not supported on Android. Users cannot install their apps onto the Android browser, but they can most likely use those apps by directly accessing the app's URL.

https://developers.google.com/chrome/web-store/faq#faq-app-19


text:
Installing Android using only fastboot on HTC Vision
I lost my system somehow. My phone turned off and reboots during starting up.
I'm only able to go to hboot (fastboot/recovery etc.) on my phone, and I'm unable to run Android system.
I have tried many possible solutions with help of #g2root on freenode:

First I downloaded the stock ROM and saved it to SD card (PC10IMG.zip).

It begins to load, and I see [1]-[12] positions.
When I agree to install, there's "- Updating" text near to "[1] Bootloader". Nothing else happens for more than 30 minutes.

Then we tried to get rom.zip from official HTC Unlocker for Desire Z, saving it to the SD card.

This time the only list item there was "[1] Bootloader" and also "Updating" text and nothing happens.

The last thing I tried was to run EXE file from HTC that is supposed to update my HBOOT.

It also doesn't work.

Here are my HBOOT params:

VISION PVT SHIP S-ON
  ?HBOOT-0.85.0013
  MICROP-0425
  RADIO-26.10.04.03_M
  eMMC-boot
  Apr 11 2011,23:36:27

Is there anything else I can try to recover my phone?

Have you tried running fastboot flash zip rom.zip from a connected pc?

Yes, and it also hangs.


text:
VLC speed play in Android app
In VLC player there is a "faster" and "slower" button that makes the video go faster or slower so that if you need to learn something (for example a guitar solo) you can slow it down a bit or if someone is talking too slow in a documentary you can speed it up a bit.
Does anyone know any Android app that does the same? I have a couple of documentaries that I need to speed up on my tablet and it's driving me nuts that I cant do it.
I have tried these apps so far:

VLC (neon)
[UPDATE: VLC does support playback speed adjustment by now.  (See
answer below.)]
MX player
Poweramp
and a couple others

Any help would be appreciated, thanks in advance!

VLC for Android supports playback speed regulation up to 4.0x, with audio pitch adjustment (optional).
The setting is under ⋮ ( Advanced Options).

Image source: https://wiki.videolan.org/Documentation:Android/#Video_playback_interface

When you play an audio file in vlc tap the track name at the bottom to bring up the playlist. In the upper right tap the dots then the image of a man running. This changes playback speed. In settings you can check a box that says "remember playback speed" so that you won't have to do this again next time


text:
Why does my screen turn itself ON?
I am having a problem with my phone's screen arbitrarily turning itself on.  It has been going on for a while, but I finally got a logcat of it, so here it is.  If anyone can find anything in here that looks like it is causing the problem, and how to resolve it, please let me know.
I'm particularly suspicious of the first entry at 10-01 18:25:44.411 and the other entries that say E/power, but I don't know what to make of the rest.
10-01 18:25:32.079 D/PowerManagerService(  279): Screen__Off : releaseWakeLockLocked flags=0x0 tag=AdControllerWakeLock myUID=1000 myPID=279 myTID=505
10-01 18:25:32.079 I/PowerManagerService(  279): Ulight 7->0|0
10-01 18:25:32.079 D/PowerManagerService(  279): setLightBrightness : mButtonLight : 0
10-01 18:25:32.129 V/MmsProvider(  425): Query uri=content://mms/inbox, match=2
10-01 18:25:32.300 D/dalvikvm(  279): GC_CONCURRENT freed 2041K, 47% free 10031K/18759K, external 11107K/12124K, paused 9ms+8ms
10-01 18:25:32.300 D/StagefrightPlayer(  181): reset
10-01 18:25:32.300 D/StagefrightPlayer(  181): reset over
10-01 18:25:32.300 D/StagefrightPlayer(  181): reset
10-01 18:25:32.300 D/StagefrightPlayer(  181): reset over
10-01 18:25:32.330 D/dalvikvm( 1425): GC_CONCURRENT freed 503K, 47% free 3365K/6279K, external 0K/0K, paused 1ms+3ms
10-01 18:25:32.360 I/APACHE HTTP (thCr=11) - NafHttpAuthStrategyDefault( 2143): (thUse=11) NafHttpAuthStrategyDefault()
10-01 18:25:32.360 I/APACHE HTTP (thCr=11) - GbaSupportIndicatorRequestUpdaterDefault( 2143): (thUse=11) GbaSupportIndicatorRequestUpdaterAbstract() userHeaderPredefined=null
10-01 18:25:32.430 D/dalvikvm( 2143): GC_CONCURRENT freed 378K, 49% free 3115K/6023K, external 0K/0K, paused 3ms+2ms
10-01 18:25:32.440 I/APACHE HTTP (thCr=11) - NafHttpAuthStrategyDefault( 2143): (thUse=11)    cached value : gbaSupportIsPossible=null
10-01 18:25:32.440 I/APACHE HTTP (thCr=11) - NafHttpAuthStrategyDefault( 2143): (thUse=11)    The current context is NOT a context of GBA service.
10-01 18:25:32.440 I/APACHE HTTP (thCr=11) - GbaSupportPermissionRequestCheckerImpl( 2143): (thUse=11) isCurrentProcessRequestedGba()#finished   result=false
10-01 18:25:32.440 I/APACHE HTTP (thCr=11) - GbaSupportPermissionRequestCheckerImpl( 2143): (thUse=11) isCurrentProcessAllowedToUseGba()#started   result=false
10-01 18:25:32.440 I/APACHE HTTP (thCr=11) - NafHttpAuthStrategyDefault( 2143): (thUse=11)    The GBA permission wasn't requested for this process.
10-01 18:25:32.440 I/APACHE HTTP (thCr=11) - NafHttpAuthStrategyDefault( 2143): (thUse=11) It is impossible to support GBA now (many possible reasons: no Android Context, current client is GBA service, etc.), then it will be just usual HTTP.
10-01 18:25:32.440 I/APACHE HTTP (thCr=11) - NafRequestExecutorWrapperRedirectionHandler( 2143): (thUse=11)    It isn't GBA flow, redirection responses are not handled.
10-01 18:25:32.570 V/DATA    (  425): [DCT(0) ] intent received :android.intent.action.SCREEN_ON
10-01 18:25:32.570 D/WallpaperService(  279): ACTION_SCREEN_ON
10-01 18:25:32.580 D/PhoneUtils(  425): updateRAFT() : FactoryMode : false
10-01 18:25:32.740 D/dalvikvm( 2143): GC_FOR_MALLOC freed 300K, 52% free 2928K/6023K, external 0K/0K, paused 34ms
10-01 18:25:32.750 D/DATA    (  425): [DSST(0)] pollstate() : reason = data network state changed
10-01 18:25:32.840 E/power   (  279): *** set_screen_state 0
10-01 18:25:32.840 I/PowerManagerService(  279): Light Animator Finished curIntValue=0
10-01 18:25:32.840 D/PowerManagerService(  279): enableLightSensor false
10-01 18:25:32.850 D/SensorManager(  279): unregisterListener:: disable all sensors for this listener,  name = GP2A Light Sensor listener = com.android.server.PowerManagerService$13@4052ad40
10-01 18:25:32.850 D/KeyguardViewMediator(  279): onScreenTurnedOff(3)
10-01 18:25:32.850 D/KeyguardViewMediator(  279): notifyScreenOffLocked
10-01 18:25:32.850 D/KeyguardViewMediator(  279): resetStateLocked
10-01 18:25:32.850 D/KeyguardViewMediator(  279): handleNotifyScreenOff
10-01 18:25:32.850 I/OrientationDebug(  279): [pwm] in updateOrientationListenerLp()
10-01 18:25:32.850 D/LockPatternKeyguardView(  279): onScreenTurnedOff()
10-01 18:25:32.850 D/KeyguardViewMediator(  279): handleReset
10-01 18:25:32.850 V/OrientationDebug(  279): in updateOrientationListenerLp(), Screen status=false, current orientation=5, SensorEnabled=false
10-01 18:25:32.850 W/PowerManagerService(  279): CurLockF mPS:0 mUS=0
10-01 18:25:32.850 W/PowerManagerService(  279): type=PARTIAL_WAKE_LOCK              'RILJ' active (mS=0)  activeT=20
10-01 18:25:32.850 W/PowerManagerService(  279): type=PARTIAL_WAKE_LOCK              'sleep_broadcast' active (mS=0)  activeT=3
10-01 18:25:32.850 W/PowerManagerService(  279): mPokeLocks.size=0:
10-01 18:25:32.850 D/PowerManagerService(  279): sendNotificationLocked on=false
10-01 18:25:32.850 D/PowerManagerService(  279): mNotificationTask : off
10-01 18:25:32.850 V/WindowManager(  279): Setting event dispatching to false
10-01 18:25:32.870 D/VoldCmdListener(  173): volume shared /mnt/sdcard ums
10-01 18:25:32.870 D/MountService(  279): doGetVolumeShared :: path = /mnt/sdcard, method = ums, result = false
10-01 18:25:32.870 D/VoldCmdListener(  173): volume shared /mnt/sdcard/external_sd ums
10-01 18:25:32.880 D/dalvikvm(  425): GC_EXPLICIT freed 351K, 41% free 4104K/6919K, external 0K/1280K, paused 48ms
10-01 18:25:32.880 D/MountService(  279): doGetVolumeShared :: path = /mnt/sdcard/external_sd, method = ums, result = false
10-01 18:25:32.880 D/MountService(  279):  :::: isUsbMassStorageEnabled :: ret = false
10-01 18:25:32.890 D/StatusBarService(  407): animateCollapse() - updateViewLayout
10-01 18:25:32.910 D/DATA    (  425): [DSST(0)] Poll ServiceState done: oldSS=[0 home null null null  HSPA CSS not supported -1 -1RoamInd: -1DefRoamInd: -1EmergOnly: false] newSS=[0 home null null null  HSPA CSS not supported -1 -1RoamInd: -1DefRoamInd: -1EmergOnly: false]
10-01 18:25:32.910 V/DATA    (  425): [DCT(0) ] intent received :android.intent.action.SCREEN_OFF
10-01 18:25:32.920 D/WallpaperService(  279): ACTION_SCREEN_OFF
10-01 18:25:32.930 D/PhoneUtils(  425): updateRAFT() : FactoryMode : false
10-01 18:25:32.990 D/SurfaceFlinger(  279): About to give-up screen, flinger = 0x88720
10-01 18:25:33.601 D/BatteryService(  279): update start
10-01 18:25:33.601 D/BatteryService(  279): US/CANADA GSM Models
10-01 18:25:33.601 D/BatteryService(  279): updateBattery level:37 scale:100 status:2 health:2 present:true voltage: 3811 temperature: 283 technology: Li-ion AC powered:false USB powered:true icon:17302234
10-01 18:25:33.631 D/PhoneUtils(  425): updateRAFT() : FactoryMode : false
10-01 18:25:34.412 E/AlarmManagerService(  279): android_server_AlarmManagerService_set to type=0, 1349130344.397000000
10-01 18:25:34.412 V/AlarmManager(  279): Adding alarm Alarm{40d4f110 type 0 com.gau.go.launcherex.theme.GalaxySTheme} at 0
10-01 18:25:35.202 E/AlarmManagerService(  279): android_server_AlarmManagerService_set to type=1, 1349130355.212000000
10-01 18:25:35.202 V/AlarmManager(  279): Adding alarm Alarm{411a20e8 type 1 com.tecace.tetheringmanager} at 0
10-01 18:25:35.202 V/AlarmManager(  279): sending alarm Alarm{411a20e8 type 1 com.tecace.tetheringmanager}
10-01 18:25:35.233 I/TetheringManagerService( 1885): Running time = 40 seconds
10-01 18:25:40.297 D/dalvikvm( 2109): GC_EXPLICIT freed 17K, 48% free 3321K/6343K, external 0K/0K, paused 63ms
10-01 18:25:44.391 E/AlarmManagerService(  279): android_server_AlarmManagerService_set to type=0, 1349130387.981000000
10-01 18:25:44.391 V/AlarmManager(  279): sending alarm Alarm{40d4f110 type 0 com.gau.go.launcherex.theme.GalaxySTheme}
10-01 18:25:44.391 V/AlarmManager(  279): pending wakeup alarm com.gau.go.launcherex.theme.GalaxySTheme
10-01 18:25:44.411 E/power   (  279): *** set_screen_state 1
10-01 18:25:44.411 D/PowerManagerService(  279): reactivateScreenLocksLocked mProxIgnoredBecauseScreenTurnedOff=false
10-01 18:25:44.411 D/PowerManagerService(  279): Screen__On : acquireWakeLock flags=0x3000001a tag=AdControllerWakeLock uid=10147 pid=2143   myUID=1000 myPID=279 myTID=279
10-01 18:25:44.411 I/PowerManagerService(  279): Ulight 0->7|0
10-01 18:25:44.411 D/PowerManagerService(  279): setLightBrightness : mButtonLight : 237
10-01 18:25:44.421 D/SensorManager(  279): registerListener :: handle = 3  name= GP2A Light Sensor delay= 200000 Listener= com.android.server.PowerManagerService$13@4052ad40
10-01 18:25:44.421 D/PowerManagerService(  279): enableLightSensor true
10-01 18:25:44.502 D/KeyguardViewMediator(  279): onScreenTurnedOn, seq = 18
10-01 18:25:44.502 D/KeyguardViewMediator(  279): notifyScreenOnLocked
10-01 18:25:44.502 I/OrientationDebug(  279): [pwm] in updateOrientationListenerLp()
10-01 18:25:44.502 V/OrientationDebug(  279): in updateOrientationListenerLp(), Screen status=true, current orientation=5, SensorEnabled=false
10-01 18:25:44.502 I/OrientationDebug(  279): [pwm] needSensorRunningLp(), return false #3
10-01 18:25:44.502 D/KeyguardViewMediator(  279): handleNotifyScreenOn
10-01 18:25:44.502 D/LockPatternKeyguardView(  279): onScreenTurnedOn()
10-01 18:25:44.502 D/UnlockScreen(  279): max failed attempt for device disable :0
10-01 18:25:44.502 D/UnlockScreen(  279): isDeviceDisabledForMaxFailedAttempt return :false
10-01 18:25:44.502 D/PowerManagerService(  279): sendNotificationLocked on=true
10-01 18:25:44.502 D/PowerManagerService(  279): mNotificationTask : on
10-01 18:25:44.502 V/WindowManager(  279): Setting event dispatching to true
10-01 18:25:44.512 D/PowerManagerService(  279): acquireDVFSlock : level : 1,    timeMS : 3000
10-01 18:25:44.602 I/Notification(  784): package = com.gau.golauncherex.notification class = com.gau.golauncherex.notification.service.NotificationService
10-01 18:25:44.802 E/MP-Decision(  744): Error(-22) changing core status to online
10-01 18:25:44.812 I/PowerManagerService(  279): Light Animator Finished curIntValue=237
10-01 18:25:45.002 D/SurfaceFlinger(  279): Screen about to return, flinger = 0x88720
10-01 18:25:47.515 D/PowerManagerService(  279): acquireDVFSlock : level : -1,    timeMS : 100
10-01 18:25:47.595 E/power   (  279): release_cpu_max_lock() return -1

UPDATE
It looks like the Galaxy S Theme is what was causing the problems.  Luckily, it was not a stock app, but one I downloaded, so I uninstalled it.  For now, I am reserving my accept for a few days to be sure that it has stopped happening.

Are you running some live wallpaper in which go launcher is using as theme? That could be a contributor to the screen turning itself on periodically, the alarm goes off as per in the logcat... my 2cents.. :)

You already pointed to the correct lines -- the interesting ones are the two immediately before it:
10-01 18:25:44.391 V/AlarmManager(  279): sending alarm Alarm{40d4f110 type 0 com.gau.go.launcherex.theme.GalaxySTheme}
10-01 18:25:44.391 V/AlarmManager(  279): pending wakeup alarm com.gau.go.launcherex.theme.GalaxySTheme
10-01 18:25:44.411 E/power   (  279): *** set_screen_state 1

So GoLauncher GalaxySTheme had requested a wakeup. I've read about similar issues before on another site with other GoLauncher components (cannot remember which ones it were -- but it were some I don't use myself). In your case, there seems to be something special with the Theme used. I take it you explicitly installed GalaxyS GO Launcher EX Themes (compare the apps package name in this url with the log message quoted above: Yes, this is the one having requested the wakeup). You could try to (temporarily) deactivate/remove this theme and see if this helps.

Yupp -- I cross all fingers for you :)

Check if that happens with different launcher, if it doesn't you can try go launcher again with a different theme.

Did you installed any "Battery widget"? I am wondering would E/power refer to some battery widgets. I had the same problem before, after uninstalling all battery widgets and restart the phone, problem solved!

There is a flag ACQUIRE_CAUSES_WAKEUP in PowerManager, which can be used by third-party apps to turn on the screen. I would suggest an easier way to find the cause by using Wakelock detector app from Google Play.
More info about Wakelock

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


text:
PC Companion won't update my computer past 1.6
A couple years ago, I picked up an Xperia X10i secondhand.  The phone itself has been working great; no problems whatsoever.  It's a real workhorse.  I unlocked it almost instantly, and followed some steps I Googled way back when to open it up completely.  I can't quite remember what it was, but it was supposed to root the phone.  I don't think I managed to actually root it, but it's been working fine, regardless.
Lately, I've been wanting to update the firmware on it.  Every time I use the Sony Ericsson PC Companion or Update Service, though, to try to update the firmware, it just tells me I have the latest version.
How can I go about updating this to 2.1 or higher?  Are there steps a technically-savvy, but Android newbie could follow to update the firmware?
I'm willing to blow it all away if I have to, although I'd really prefer to not have to do that.

To me this looks much like Sony abandoned support for this device. If that's true, your best chances are making sure the device is rooted, and go for a custum ROM (I guess CyanogenMod does support it, check their devices page and this XDA thread). This Google Search might also prove helpful.

If SE has dropped support for your device (which seems likely) your only way to upgrade your phone is to take root control over your phone and install a custom ROM, a third party version of the Android operating system.
There's a huge modding community, largely centered around the XDA developers forums. There's actually a subforum there for just your device, and the subforum for your device that you want (there's also Q&A sections and whatnot) is XPERIA X10 Android Development.
There's plenty of informative threads in that forum, including:

[HOW-TO]UNLOCK bootloader for X10
Help for Newbies, All questions & Answers for X10

As for what specific ROM to use, I'll leave that up to you. Your first step however should be unlocking your bootloader, getting root and getting CWM Recovery installed on your phone. When you have that installed, you can always create a complete backup of your phone, so if anything breaks you can always restore to that backup via the recovery, since the recovery remains untouched between ROM installations.
If you want to venture into rooting your phone and trying custom ROMs, I wish you good luck! It's a learning experience :)


text:
Online note taking
I need to be able to save text (like url, sms, etc) on my android phone which can also be viewed on the Internet through a URL.  Right now I use Google Drive (which takes time) or Facebook chat (by sending text to s friend and then copying the same.)
App suggestions are welcome as well.

Have you tried Evernote?  You can create notes in the phone and read on the Web, and create on the web and view on your phone.  The sync works perfectly!

There's also Springpad for similar functionality.

Or catch notes.


text:
CM10 Kindle Fire nonresponsive usb storage
Finally got around to rooting my Kindle Fire, first thing I did was install the latest CM, in my case, CM10. So I played with that for a while and decided to flash to the next ROM, plugged it into my computer, enabled usb storage, began to transfer the new ROM to the /sdcard and as it was doing so, the Kindle unplugged itself (or so the computer thought), and is currently stuck on the 'USB storage in use' screen, and has been for the past hour. Any help?

Also should mention the ADB doesn't recognize the device.

NVM, time and a limited battery got the fire to power down, so i could chargeit and turn it on and such. Can we close this thread?

I am interested in this. I am currently running a version of CM9 that the developer has since abandoned. Where did you get CM10 from, RoyalPain?


text:
What to do when the Dalvik cache is full but the operating system does not recognize it?
I have a strange scenario - my dalvik cache is full of dex files - around 150MB of space, but it appears that the operating system does not recognize these files as related to any application.
I installed an App Cleaner and it says my cache is empty.
I went over some applications I use and saw that according to the OS they have no cache, but when I ls the /sd-ext/dalvik-cache directory I see these applications have dex files.
Can I simply run rm /sd-ext/dalivk-cache/* to solve this? Is there any risk?
Tech details:
ROM: MIUI
SD Extension: A2SD+
Rooted: YES

Don't confuse the App-Cache with the Dalvik Cache: App Cleaner refers to the App-Cache (e.g. cached files from the internet, aka "webcache", or from other components of the app), while the Dalvik Cache's .dex files are placed on app installation (they are an optimized version of the app code). So basically you compare apples with oranges.
As for your problem: e.g. Titanium Backup offers to cleanup the Dalvik Cache. There might be other apps available providing this feature (e.g. SystemCleanup), but in all cases this requires root -- unless you want to do a factory reset, which completely cleans the Dalvik Cache, amongst others.

Thanks for the clarification - I tried using Titanium Backup and it also said my dalvik cache is empty - is there any risk in deleting everything there manually?

If you have CWM Recovery installed you can clear the Dalvik cache from there. That said, there shouldn't be an issue removing them manually, but you'll likely need to be root.

Dalvik Cache empty? That's strange for a running system. And no: You can safely purge/wipe it (e.g. from ClockworkMod Recovery). Only consequence is the next boot taking longer, as it automatically re-creates all the required .dex files. This also happens after a factory reset (for the pre-installed apps), by the way.

Thank you all for the clarifications - I now understand the difference between dalvik and application cache and even better - now I understand my problem was not with the size of the cache but with how much data my applications keep (the whole reason for this question was due to lack of space on my phone's internal memory)

I thought so :) For all of those cases (app cache, app temp data and Dalvik cache), the SystemCleanup app seems to be helpful. Did not use it myself, but description and rating look promising. So hopefully you solved your problem -- and I'm glad I was able to enlighten and help you :)

root phone
delete all files in folder dalvik-cache
reboot phone to  regenerate cache
this deletes useles cache


text:
Which component controls the "universal" app background
On Gingerbread, which component(like SystemUI.apk) controls the universal background?
To better explain myself, here is a screenshot

I'm referring to the blue background with the gradients

Which device are you using? It looks like that is not a universal background, but rather simply the background for the Settings app. Does the background show up anywhere else besides when you go to Settings?

Yeah it does. Some examples include Root Explorer, the blank area of the dialer e.t.c . I no longer use this rom (If your wondering, its Technoduos 1.5 on Samsung Galaxy Y)

This is actually a system theme. Any app that is written to run under the theme of the device (unless you're root your devices theme is not changeable) will grab backgrounds, etc from that theme. It is like how most apps on the Nexus devices run with the Holo theme.
Edit: Just to clarify I am saying this is not an app, it is just a theme.


text:
Some 2.1/2.2 apps not working
I just upgraded my Galaxy gt i5800 to 2.2 froyo from the kies firmware.
Why am I getting "not compatible with this device" from some apps that say they require 2.1 or 2.2? Can anyone please explain.

Can you provide some examples of the apps that are listed as incompatible?

The "Not compatible with this device" message encompasses more than just the OS version.  The Play Store also checks for other software and hardware components that the app's developer listed as requirements.  These components can range from a minimum screen resolution, to having particular hardware (e.g. Tegra 3 chipset).
You can try searching for a given app on Google Play Store website to get a better idea of the incompatibility.

Thanks for the advise probably screen res whats the problem. 1 thing i dont understand zynga poker wont dowmload through google play says not compatible it used to load and has loaded from another source? Thanks for the advise it it worth doing the rom upgrade (to overclock etc.)  or should i just stay with the samsung firmware via kies.


text:
HTC One V rooted - can't upgrade from htc release
I have an htc one v and there's a system update from htc.
I'm trying to do the update, it needs to restart in order to finish the update.
When it restarts clockworkmod jumps in and the update never finishes.
I was trying to a zip update through clockworkmod but it does not work.
Any ideas ?

Two ways to flash official update from manufacturer on rooted phone:
1) Look for flashable zip with untouched or just rooted official ROM with latest updates included.
2) Revert your ROM and Bootloader to manufacturers default and then install update
You can find stock roms and instructions to revert to stock in XDA Developers Forums


text:
How to add a physical keyboard layout
I'm using a Logitech Tablet Keyboard for Android with Galaxy Nexus (Android 4.1).
When I go to Settings -> Language & input -> Physical Keyboard and tap on Logitech Tablet Keyboard Gen there is an option to "Set up keyboard layouts". There are many predefined layouts but the "Polish (programmer)" keyboard layout is missing. How can I add one?
I have looked at /system/usr/keylayout and /system/usr/keychars but I don't see the other layouts there.
I know there is an app that does not require root, but it's aa virtual keyboard that works with bluetooth keyboards https://play.google.com/store/apps/details?id=com.apedroid.hwkeyboardhelper and I'm interested only in adding the layout to the built-in physical keyboard layouts.

It's quite an easy task. See the source of the InputDevices system package. Or get the ready to use Polish programmers external keyboard layout plugin from there: https://sites.google.com/site/polishhardwarekbd/
You'll find the app source there as well. Regards.

Awesome, it worked like a charm! Thanks for that link.

You should install extra keyboard layouts:
https://play.google.com/store/apps/details?id=varzan.extraKeyboardLayouts
.
It is free and helps me to type on Mongolian language and included many other languages.

Thank you sir..

I'm interested in this too.
However, as a temporary fix I found that the soft keyboard you have selected seems to affect the way a bluetooth keyboard functions. For example:
I usually use Go! Keyboard. While I have this selected my shift key is a latch (double press for shift-lock) and ctrl-c and ctrl-v do not function. However, when I switch to Hacker's Keyboard, shift requires me to hold it down and ctrl-c, -v and -a all work as they would on  a PC.
What I would really like to do is edit the way the fn- functions or some of the iphone of mac keys work to attatch them to my back, recents and menu buttons. This must be possible because one of the keys already works as 'home.'

Interesting. If you pull the notifications and click on Input Method there is a physical keyboard turned on but the soft IME is selected too. I'm using Swype and CTRL+C/V/X are working correctly when editing a large portion of text (for example in Writer) but those hot keys are broken in Internet application's address bar (I suppose the keys are intercepted).


text:
Batch Update Android alarm ringtone?
I have a bunch of alarms on my Android phone and I want to change their current ringtone to a new one. The new ringtone is in MP3 format and is located in the sdcard. Is there any way to change them all at once, rather than opening the alarms one by one?

No. As far as I know, you will have to change them all manually.
You may want to try out other alarm clock apps, though. I use Alarm Clock Extreme (free & paid), and while I can't batch update in that either, I can set defaults for every option for new alarms.
If you really want a bunch of alarms to have one ringtone that can be updated later, you could use Llama. One of the features in that app is that you can set a ringtone to a profile (called a LlamaTone). Then when you create an alarm, you tell it to use the Llama ringtone; Llama registers as an option for ringtone selection. In the future, you only change the Llama ringtone, and all the alarms will be updated. Basically, you are creating an alias or shortcut.

Edit Yes, you can! If you have root, that is. The main alarm clock app keeps all of its alarms in a SQLite database. You can run a sql query to update them in one go.
First, create a new alarm with the ringtone you want ALL other alarms to use. Then run the commands below (in bold). Modify the alert to be the same as the alert you wish to use.
sqlite3 /data/data/com.android.deskclock/databases/alarms.db
sqlite>.headers ON
sqlite>select * from alarms;
_id|hour|minutes|daysofweek|alarmtime|enabled|vibrate|message|alert|intent|no_dialog
 1|15|5|0|0|1|1||content://media/external/audio/media/27||0
 2|15|12|0|0|1|1||content://media/internal/audio/media/58||0

sqlite>update alarms set alert="content://media/internal/audio/media/58";
sqlite>select * from alarms;
_id|hour|minutes|daysofweek|alarmtime|enabled|vibrate|message|alert|intent|no_dialog
1|15|5|0|0|1|1||content://media/internal/audio/media/58||0
2|15|12|0|0|1|1||content://media/internal/audio/media/58||0

the built in alarm clock has a default for new alarms, at least on ICS and later it does, it's in the settings menu in the app.

I have about at least 70 alarms in my phone. Today one of my friend tried to prank me by changing all these alarms ringtone to a new scary one. She must have been way too bored to do so. Anyway thank you very much for your answer, now I'm going to change it back to the original ringtone.

Your pain of editing 70 alarms moved me to find a better solution. Hopefully you have root (and hopefully you see the solution before you have finished all 70 alarms!).

It's just brilliant, thanks a million! I have done like you said and everything went back to normal now. More than 100 alarms and the query took place in a blink of eye!


text:
Jelly Bean update for an Unlocked AT&T HTC One X?

Possible Duplicate:
When will my device get the Android 4.1 update (Jelly Bean)?

Now that the Jelly Bean update for the One X has been made official for atleast the GLobal version: http://www.engadget.com/2012/10/02/htc-jelly-bean-one-series/
Would I be able to update an Unlocked "AT&T" HTC One X when the update is releasaed?
Thanks

Installing the Global version of 4.1 firmware on the AT&T-branded One X model will most likely be impossible due to the hardware differences between the different variants of this handset:

[AT&T variant] is 0.4mm longer than the international model, and
  features a 1.5 GHz dual-core Qualcomm Snapdragon S4 (MSM8960) SoC with
  an integrated on-die LTE (4G) modem instead of the Nvidia Tegra 3 [found on the international model]
  which requires an external modem and is LTE-incompatible, and 16 GB of
  internal storage instead of 32 GB.

You will either have to wait for HTC and AT&T to release an official version of Jelly Bean for your model, or take the plunge and root, bootloader unlock, and flash a custom ROM on your own if you want 4.1 sooner.  Instructions for doing so can be found at XDA-developers forums.


text:
I can flash Cyanogenmod though my bootloader is locked
I am using a Samsung Galaxy Nexus and CWM as recovery. Even though I locked my bootloader after installing the recovery, I can flash Cyanogenmod 10 using CWM without any errors. Now I am wondering why this works?
When I unpack the Cyanogenmod 10 .zip on my computer, there's also a boot.img, so I guess it also replaces the bootloader? Maybe when the bootloader is locked, this step is skipped (but no error shown) and the stock ROM bootloader is also OK?
This ends up in my final question: While it works, am I maybe missing a bootloader update when flashing Cyanogenmod while my bootloader is locked?

The boot.img file is written the /boot partition, not the bootloader partition. They're different.

Thanks! Hmm, then in which case do I actually have to unlock the bootloader? What about changing the recovery, I guess this is also not the bootloader partition?

Correct, the recovery image exists on a separate partition. From what I know (but I'm not 100% positive) you really only need to unlock the bootloader on the Galaxy Nexus to be able to flash unsigned images via fastboot.


text:
Problems connecting to IMAP email account on 3G/4G
Ever since I got the JRO03O OTA from Verizon on my Galaxy Nexus, I've been having problems retrieving email over a 3G/4G connection.  After the sync times out (I assume it times out, because it takes awhile to give up) I get the message "Couldn't connect to server."  When I'm on a WiFi network, email retrieves without problems.
The account in question is on my own IMAP server, running on Ubuntu 12.04 server on a VPS.  The server configuration has not changed in any way since long before I started having these problems - this started when the OTA came through.  My server listens on the newer non-standard ports, 587 and 993, so Verizon doesn't block them - they no longer allow the standard ports 143 and 25 in my area, and more and more ISPs and coffee shop hotspots are blocking them now in favor of the secured IMAP ports.
I do have a secondary account on this phone - a corporate Exchange account, which has no problems retrieving email regardless of what network it's on.
This leads me to two conclusions:
1) The problem isn't in the server or the network. I'm not seeing it with my tablet (Nexus 7), only on my Galaxy Nexus - and only when on the Cell tower networks. Even if I have my tablet tethered off the GNex, indirectly using the cell networks, the tablet has no problems connecting to my IMAP server, but the phone fails to connect.
2) The problem is not related to Exchange, as my corporate account has no problems over either WiFi or 3G/4G. The problem is restricted to my personal IMAP account, which is set as the default email account on this phone.
I'm not sure if it's relevant, but the company Exchange account is not configured on the Nexus 7, just the IMAP account, and of course, my Google account, but that's through the GMail account.
I've done a lot of searching, but can't seem to find a solution.  Does anyone have any ideas?
Cheers!
Lou

I did submit a bugtracker issue, as this is an question noone will be able to solve at stackexchange: https://code.google.com/p/android/issues/detail?id=56219

Running into the same problem....adding more info:
I just had my Droid 4 upgraded to 4.1.2.  When trying to configured IMAPS, I'm getting the same error.  I run the IMAP server I'm connecting to, so I can do some additional troubleshooting.
I'm running dovecot as an IMAP server.  Here are the log messages:
dovecot: imap-login: Disconnected: Inactivity (no auth attempts): rip=x.x.x.x, lip=x.x.x.x, TLS handshaking
dovecot: imap-login: Disconnected: Inactivity (no auth attempts): rip=x.x.x.x, lip=x.x.x.x, TLS handshaking
dovecot: imap-login: Disconnected: Inactivity (no auth attempts): rip=x.x.x.x, lip=x.x.x.x, TLS handshaking

I also ran a packet capture.  The phone goes through the TCP 3-way handshake (SYN, SYN-ACK, ACK), and then does nothing.  No packets after the last ACK.  That probably explains the inactivity message in the dovecot log.
In the configuration, I told the client to use TLS (Accept all certificates), use port 993.  I have tried multiple 'Authentication Methods' (auto, plain, etc).  Nothing worked.
These settings (IMAPS, 993, auto) worked fine on 4.0.4

This is not an answer to the question. If you have the same problem, wait for an answer. If not, do a search. If none of the results solves your problem, create a new question. :)

While not directly an answer to the question, knowing what things haven't worked can be equally valuable. Even partial answers can have value. I think this is fine to stay.


text:
Connecting Google Nexus 7 to Linux
Has someone been able to connect Google Nexus 7 to Linux. I'm using Linux Ubuntu 12.04?
I've already installed mtp-tools and mtpfs but still cannot get it right. Can someone help?

Without any special tools, I see the content of /sdcard

nopes i'm not seeing it

it clearly says that device loaded as storage but does n't connect

can you connect any kind of USB flash drives to your Linux computer?

yes I can, like pendrives ....

When you connect the device, you should see a "connected as media device" on the nexus screen (I don't know the exact text, I see the german text only "Als Mediengerät abgeschlossen"). On the linux pc, you need tools like libgphoto2 or libmtp. I suggest to install the android sdk, then you can do adb shell to look around on the nexus, adb pull ... and adb push ... to transfer files from/to the sdcard folder. Note, this is different from my earlier comment, I forgot that I used gphotofs.

Related http://android.stackexchange.com/questions/27926/nexus-7-doesnt-have-sdcard-folder-when-connected-to-pc

Try this :
sudo apt-get install mtpfs
mkdir ~/NexusDrive
mtpfs ~/NexusDrive
nautilus ~/NexusDrive

hortstu says:the above terminal input worked for me with a kindle fire 10.2.6. I just changed NexusDrive to KindleFire

Using LinuxMint (Nadia).
I followed the instructions above.
The 'NexusDrive' appears on the desktop.
I can't open it and view contents.
Error message, 'Could not display "/home/paul/NexusDrive". The file is of an unknown type'
If I try to unmount the Nexus 7, 'Unable to unmount NexusDrive. unmount: /home/paul/NexusDrive is not in the fstab (and you are not root)


text:
Looking for Location-Specific Screen Locking Behaviour
I'd like to have a feature that allows my Android phone to change its lock mechanism automatically dependent on location.  For example, most of the time I use pattern unlock when out and about but tire of unlocking it constantly at my desk at work. Other solutions are:

manually change to a slide lock while at work - but must remember to revert it back after;
enable dev feature: no sleep while USB charging - but is a bit of a hack;
there are likely other semi-solutions...

I'd like for my phone, when it detects my work zone for example, to require me to unlock using the current pattern lock only once and then automatically revert to a slide unlock thereafter, until the phone leaves the zone at which point it reverts back to pattern unlock for higher security.
Is there an app or configuration that supports something like this already?

Guess you'd need to use the GPS and figure out the latitude/longitude of each zone, then use tasker to determine the GPS coordinates...

Usually a combination of GPS and WiFi is used. GPS doesn't necessarily know exactly what floor I'm on but WiFi SSIDs and strengths helps support a more granular location. Indeed, location-based services are prevalent. I wonder if they're available in the kind of app that I'm seeking.

Apologies @t0mm13b, I didn't read "tasker" in your comment as the app named Tasker until I saw it referenced in the answer below.

No worries there - The tasker master below has answered! :)

As t0mm13b already suggested, Tasker can do that easily:

Condition: [Location]
Task: Keyguard disable/enable

For location, you can use different sources:

GPS (most power-hungry variant, as it requires a permanent GPS scan -- but most accurate)
network based (less power-hungry, but still requires at least WiFi -- but less accurate)
cell based (least power-hungry, not to say: using almost no additional power, as the mobile cells are either used for telephony and mobile data -- but also least accurate)

You can even combine them: having e.g. cell-based combined with GPS would only start GPS scanning when the cells already match.
The trickier part will be the "require once" element, which will be doable with a more complex Tasker profile. If this is relevant to you, I will update my answer to include some hints on this.
Other (and easier to learn) solutions might be available as well, but I'm not sure whether they can control keyguard. So you might want to take a look at Llama - Location Profiles, which can at least handle the "location-based" part quite well. And of course you can check the "other users also liked" section for these apps on the playstore.

FYI - Llama can also handle WiFi SSID conditions, IIRC.

Oh, completely forgot about those -- thanks for the hint! Tasker of course can handle those as well. Question is just if Llama can handle keyguard...

It can enable/disable screenlock as well as enter/clear password lock. And it's free as opposed to Tasker. A good alternative, IMO.

Llama's Screen Lock action reports itself "buggy" and I haven't been able to get any incarnation of it to work on my Nexus S (have given it admin privs).  Otherwise I'm impressed at the slew of options in Llama and that it doesn't use a lot of battery. It also supports WiFi (experimental) in addition to phone masts for better location resolution. (Next I'll try Tasker to see if that suffices the requested screen lock behaviour.)

I'm trying the Tasker app now to disable keyguard when my home network SSID is detected, but haven't figured out how to program a Task to do this. If you could update your answer to provide pointers for somebody completely new to the Tasker app to achieve keyguard disablement it would be much appreciated. I'm sure I'll eventually get there on my own.

Success! I was able to glean the proper Tasker steps from this example @ http://tasker.wikidot.com/keyguard-off by substituting a "Wifi" context for the "Power" context seen in the example.

If you are OK with using password protection for your lockscreen instead of the pattern, it does work with Llama, which is free (unlike Tasker).
As John K pointed out, the "Screen Lock" action does not seem to work for most people. However, you can use the "Screen lock password" action to set an empty password to disable the lock screen, and set it back to your normal screen lock password to enable it again.
However, your phone will likely (haven't tested) unlock automatically when you arrive at work without requiring the initial unlock you want. EDIT: yes it does
I posted this in case anybody still needs this (as I did) and couldn't comment on the accepted answer as I am new to this site.

An update -
Google has since introduced a location based Smart Lock feature into Android which effectively fulfils the question's need.


text:
How can I change the user agent string sent by Chrome on my Nexus 7?
Reading the reviews of the BBC Media Player on Google Play, one user said that since Chrome supports HTML5, he had managed to persuade the BBC iPlayer website to play him streams meant for iPad/iPhone devices by spoofing an IOS user agent string on his Nexus 7.
How might I go about getting the same thing to work myself?
I have looked at How can I change the user agent for the stock browser? and Method to change browser User Agent based on site but both seem to concentrate on the Dolphin browser. Also, please mention if a solution will require me to root my Nexus-7.
Incidentally, I also tried using Phoney with Firefox, but although Firefox supports HTML5 and the iPlayer website shows pages without either install flash or use external app messages, it still won't play the streams (it just sits swirling its progress wheel), hence looking for a solution for Chrome.

I didn't find any way to do this except by connecting your phone to your computer and using remote web debugging feature to change user agent string.

Use this documentation to enable and start using Remote Debugging: https://developers.google.com/chrome/mobile/docs/debugging
Open any web page in your Chrome for Android
Navigate to localhost:9222 in Chrome browser on your computer and choose tab from your list of tabs opened in your Chrome for Android. You will see developer tools screen.
Go to developer tools settings on your computer by clicking on settings icon in bottom left corner of developer tools and change user agent string there
Reload web-page in your Android phone

Of course, user agent will fall back to default after you disconect your phone from computer.

I know it's not exactly a solution, but, have you tried using Firefox?, you can change the agent string on that browser.

I tried using Phoney with Firefox, but although the iPlayer website shows pages without either install flash or use external app messages, it still won't play the streams, hence looking for a solution for Chrome.


text:
remove apps with htc bootloader unlocked
Will just unlocking the bootloader per HTC website allow me to remove apps like Blockbuster, Nova, etc on an EVO 4G?

No. Unlocking your bootloader allows you to flash unsigned images to your device, but it doesn't (in and of itself) give you root permissions which you need to remove bloatware. However, having the ability to flash unsigned images makes it very easy to gain root via a custom recovery, so unlocking your bootloader can often greatly simplify the process.
If you need instructions for getting root, there's a fairly exhaustive guide here.


text:
How to disable "Forgot Password" on the lockscreen

I have entered a wrong password five times – now if I click on Forgot Password I can enter a Google account with password, then it will unlock the screen.
How can I disable or hide that Forgot Password option before screen lock to force me to factory reset?
Phone is not rooted, using Android 2.3.5.
Edit:
I have tried without Google account: after 5 try still the Forgot password, but than it is a Factory reset, so it is related to Google account.

What's the problem that you're trying to solve here? From what I can work out, if you forget your password you want to be forced to factory reset your phone immediately, with no other option for some reason?

exactly. With a Parental control app I am changing the password and I am locking the device. It is to easy to unlock. Take a look at Kaspersky's Parental Contro app.


text:
MadTeam's CyanogenMod 7 restarting itself randomly
I installed MadTeam's CyanogenMod 7 on my Galaxy 5 few weeks ago. First time I root and install a mod, but fairly uneventful process. My phone got way faster, and except for maybe getting a little slower to connect to the wifi and/or obtain an IP address, it is better in every possible aspect.
What is bugging me is that it is prone to restart itself randomly, possibly many times a day, except that I don't notice it most of the time. Just now I noticed because it was in front of my keyboard, and it vibrates when showing the boot animation. The boot itself is quite fast, so it really never posed any problem so far, and it never restarted mid-use, only when inside my pocket or laying on the table (ie. during standby). I just worry that it may become too common or happen during a call, while texting or something.
I fiddled a lot with the configs after installing it to discover what it had to offer, but I avoided changing anything that wasn't UI/usability-related. I took the performance settings warning seriously.
Any possible explanation? Or is this somehow normal, like a hard memory cleaning procedure? I did some seaching, but nothing about such issue.

Phone: Samsing GT-I5500 (Galaxy 5)
Mod: CyanogenMod-7-20120912-MADTEAM-galaxy5 (Android 2.3.7)

Updated mod to 20121001 version.
Got two unresponsive events (once unlocking screen and another one activating wifi) which caused phone restart seconds later, and according to phone uptime counter, an spontaneous reset 2AM last night. Within 48h.
Wifi got awfully bad after update (same baseband I5500LUYJPE), took dozens of tries to get an IP, but apparently it was solved by forgetting the network and typing the password again.
In short: wifi improved, random restarts remain.

Did you update the baseband as recommended to match your Galaxy 5? Some basebands are known to cause the sleep of death (I have one here!), boots up CM fine, then after a while, it goes to sleep and then completely dies which results in charging up the battery again.

@t0mm13b Yes, I changed it. After installing the mod, it was set to the stock ROM's baseband, I5500BVJJP7. I felt the wifi was bad (worse than now), so I followed the MadTeam devs suggestion and changed to I5500LUYJPE. The wifi improved somewhat, but I'm unsure if this baseband is responsible for this behavior, because I switched in less than an hour. I'll take a look about the SoD and see if it fits my case, and I might try the older baseband. Thanks!

Sometimes strange things happen when one forgets to wipe the Dalvik cache when first installing CM. As it doesn't hurt, you could try this (you should be able to do so from the recovery menu). That cleans up things, and the Dalvik cache will be rebuilt on the following boot (so don't wonder if that boot takes a bit longer than usual).

@Izzy Well, when installing I'm sure I did wiped the caches... twice. I could wipe it again, but I just found out that a new version of the mod was recently released, promising a SoD fix for some cases, plus better DHCP handling. I'll try it later today, and post whatever difference it makes. Thanks for your suggestion.

Could be good news. In case that solves your problem, I suggest you post the results as an answer. Crossing fingers!

So, to avoid a hanging question:
Using the new ROM for almost two months. Tried the original stock baseband I5500BVJJP7 but it felt overall worse, so I went back to I5500LUYJPE. Now any issue is rare... it's weeks since I last noticed a random restart, my phone reports over 160h uptime (not 100% reliable, I've seen it not restart after a crash), and wifi is most of the time fast to get in IP.
In the end, as things improved with a new ROM, I suppose the issues are due to small quirks of the ROM itself. Should improve over time.


text:
How do I send text messages multiple recipients on CyanogenMod 9?
How do I send text messages to multiple recipients on  CyanogenMod 9? I don't see any contacts icon in my messaging app i.e, ICS Messaging App. Is there any way to do it? I am using an HTC Wildfire S.

There isn't a contact picker per se.
After you type in one contact, type a comma and start typing the name of another. Separate multiple contacts by commas.

If you will not found any clue, Handset SMS do that, see Android store : https://play.google.com/store/apps/details?id=com.handcent.nextsms&hl=en

OP is asking about the stock messaging app @sputnick

POST edited accordingly. What mean OP Sparx ?

Original Poster - the author of the question.


text:
Get Source Code from an .apk file?
Having an .apk file, is there any way I can get its source code?

Before that, have you checked if the package is open source?

An .apk is simply a .zip file. But unfortunatedly any app build for 'release' will probably be protected by ProGuard.

@MatthewRead The Op asks if he could get the code from an api, and I answered what this phenomenon is called and ways to at least prevent from making a similar app. He doesn't say how to prevent from getting the code So yes it does answer the question.

here is a beautiful gem to do this

Even if ProGuard was used you still can get some interesting insights. Here is a StackOverflow question with a detailed explanation: Android: Getting source code from an APK file. YouTube video with a detailed guide. And a blog entry about that: How to retrieve source code from an Android APK file.

If you get lucky and your .apk file wasn't protected by Proguard or analog, you can use APK tool. It is a tool for reverse engineering 3rd party, closed, binary Android apps.

Apktool does only generate Smali-Code, not Java code - that is a big difference.

From one of the comunity wiki by Parnkul Garg in SO:

Procedure for decoding .apk files, step-by-step method:
Step 1:

Make a new folder and copy over the .apk file that you want to decode.

Now rename the extension of this .apk file to .zip (e.g. rename from filename.apk to filename.zip) and save it. Now you can access the classes.dex files, etc. At this stage you are able to see drawables but not xml and java files, so continue.

Step 2:

Now extract this .zip file in the same folder (or NEW FOLDER).

Download dex2jar and extract it to the same folder (or NEW FOLDER).

Move the classes.dex file into the dex2jar folder.

Now open command prompt and change directory to that folder (or NEW FOLDER). Then write d2j-dex2jar classes.dex and press enter. You now have the classes.dex.dex2jar file in the same folder.

Download java decompiler, double click on jd-gui, click on open file, and open classes.dex.dex2jar file from that folder: now you get class files.

Save all of these class files (In jd-gui, click File -> Save All Sources) by src name. At this stage you get the java source but the .xml files are still unreadable, so continue.

Step 3:
Now open another new folder

Put in the .apk file which you want to decode

Download the latest version of apktool AND apktool install window (both can be downloaded from the same link) and place them in the same folder

Download framework-res.apk and put it in the same folder (Not all apk file need this file, but it doesn't hurt)

Open a command window

Navigate to the root directory of APKtool and type the following command:
apktool if framework-res.apk

apktool d myApp.apk  (where myApp.apk denotes the filename that you want to decode)

now you get a file folder in that folder and can easily read the apk's xml files.
Step 4:
It's not any step just copy contents of both folder(in this case both new folder)to the single one
and enjoy the source code...


text:
32gig sd card corrupt

Possible Duplicate:
How to recover data from a damaged SD card?

I have a 32Gb micro SD card that I've solely used for my Samsung Galaxy S3.  The card has been completely cleared and is not recognizable to the phone.
I took a few pic of my daughter, plugged the phone in to charge and went to bed.  This morning when I got to work the phone indicated that it was safe to remove the memory card. I didn't prompt this so I restarted the phone and went to send a pic after it started up again but noticed all my pics and vids were gone.
Is there something that I can do to recover the files or does anyone know if there is a reason that this has happened?

There are already a couple of similar questions which might prove helpful: How to Restore Deleted / Formatted Files on HD Micro SD Card, How to recover data from a damaged SD card?, How can I recover a deleted file on Android?.

You may also want to check that your memory card isn't a fake, which can also lead to what appears to be corruption.

Try accessing the memory card from another device or a memory card reader connected to a computer. If it still looks empty, you can use data recovery software on the card to try to extract any useful data. There's plenty of apps available for this, so you'd have to search for something suitable to your OS and your budget (some of them cost money) - look for articles like 5 of the Best Free Linux Data Recovery Tools.
If you find that your card works flawlessly in another card reader, then your phone is likely at fault and should be returned for a replacement.
If you manage to recover data from the apparently empty card, you should probably replace it as soon as possible as it doesn't seem to be completely reliable.


text:
How does compass calibration work?
I am wondering how compass calibration works / why e.g. drawing an 8 or rotating the phone to all 3 axis works (or at least shall work) - I mean I would understand the calibration process, if an application would say me: Point to north, then press that button down there, but you can start at basically zero knowledge for the app, just by rotating your phone! How is that done? Also, do I need to enter a special calibration mode or can I draw these figures (like the 8) directly in Google Maps? How does Google Maps know that I am not just really moving the phone but want to calibrate the compass? Thanks for any hint!

Flagged as dupe, please don't post two separate questions for the same problem. Edit your existing question with new information; http://android.stackexchange.com/questions/30328/compass-configuration-file

Moving an object through a magnetic field can induce an electric current, which I'm guessing is being measured in this case.  The figure 8 ensures that the phone is moving along every possible vector in a 2D plane, which ought to allow it to distinguish north from south.  I think.  As for Maps sensing it, that one's easy -- what other time do you make such an absurd motion with your phone?  It's quite different from normal movements and ought to be simple to detect.

@bigbadonk420 This is not a duplicate, it's a completely different question.

Technical information: http://electronics.stackexchange.com/questions/22144/magnetometer-shaped-calibration

Compass calibration works by detecting the magnetic field intensity of earth. But sometimes due to strong interference from other electronic devices like transformers, compass sensor may get wrong idea about the magnetic poles of earth and can point in wrong direction.
So to ensure that, it asks users to recalibrate compass by rotating in figure-8 direction so that it can judge the magnetic intensity in all directions. From that data, it deduces the actual poles of earth.

This is actually a wrong answer.  Calibration can only cancel out the distortions coming from objects affixed to the device (thus rotating with the device during calibration). If the objects are in the environment, the phone will observe a fixed magnetic field and it will have no idea how far away from true North it's directed.

The purpose of calibration is to figure out how to compensate for how the components in your phone (screws, speaker magnets, etc.) interfere with the measured magnetic field.
The calibration process is based on the fact that you can separate the internal and external contributions to the magnetic field by looking at how the field changes as the phone is rotated. For example, in one orientation the magnetic field from the magnet in the speaker will add on to the Earth's field; but when the phone is oriented in the opposite direction, the two fields will partially cancel out.
As you wave the phone around, the magnetometer records how the magnitude of the measured field changes and uses this to calibrate the x, y, and z magnetic field sensors. See geometrikal's answer to a similar question for more details on this process. Note that this calibration does not let you compensate for the influence of other external objects (e.g., your refrigerator) on the magnetic field.
Regarding the implementation in Google Maps: I believe that Google Maps has no control over the compass calibration because there is no such functionality  in the Android API. The magnetometer is probably calibrating itself continuously, and Google Maps is just asking you to rotate your phone so that the magnetometer can collect the data it needs to get an accurate calibration.
In other words, you can calibrate your compass any time the magnetic field sensor is being used just by waving your phone – there is no "calibration mode".

But how does the android OS decide when to change it's calibration values, i response to movement or at regular intervals or both?

Android must just maintain a history of readings and keep applying the hard-iron correction on them. This is even specified in the documentation.

At any point in space, the magnetic field strength and direction is the net effect of all the magnetic field sources affecting that point.  The earth's magnetic field is one of them.  Magnetized screwdrivers, cars, refrigerator magnets, etc. all produce fields.  Fields are also produced by current flowing through wires.  It's like pouring water into a glass from multiple sources.  Once it's in the glass, you can't tell where it came from.
There is no instrument that can determine the "actual poles" of the earth by measuring the magnetic field at a point. What the phone can do, however, is sense the point where the phone axis is parallel to the N/S magnetic force line and determine which end of the phone is north-pointing.  If you do your dance far away from objects that might be magnetized, like cars and steel fences, the field the phone is measuring may be primarily the earth's field and hence the phone compass will be properly calibrated. If you then put the phone into a magnetized car, however, it will point the wrong direction for north. The steel in every car is magnetized to one degree or another.
High-precision compasses such are used on aircraft and serious maritime vessels actually have tiny correction magnets that are adjustable with screws for N/S and E/W errors. They are calibrated after installation by turning the vehicle onto known headings (a compass rose painted by a surveyor on a taxiway far from metal buildings, for example) and fussing with the magnets until the compass error is minimized. Then the residual errors are recorded on a "compass correction card" for use in correcting the indicated readings.  Search "compass correction card" to see the images.
In theory, the GPS could be used to calibrate the compass when walking or driving since the instantaneous GPS track is accurate. I have not heard of this being done, though it possibly is common.  It would work even in a magnetized car. However, in an airplane or a ship, this wouldn't work because the vehicle's heading is to one degree or another usually crabbed slightly into the wind and the GPS has no knowledge of this.

This doesn't seem to tell how and why the common calibration procedure in Android works.

I've tested the compass fields measurments provided by Android phone and found out, that if I rotate the phone by 180 degrees, the field doesn't change to exactly opposite, which must be the case if the sensors are correct. This might be due inner magnetism of the phone  details or sensor reading inacuracy.
If you don't compensate for that and just use reading as is and try to calculate the North direction, you'll find out that they are incorrect: rotating phone by 90 degress around vertical axis doesn't lead to rotating measured magnetic field by the same angle (that is true for any angle, it's just easier to check it with 90 degrees).
So the aim of calibration is to develop compensation formula which will transform wrong readings from magnetic sensor to more realistic values, from which we can calculate the correct bearing. My guess is that it is looking for optimal shift of zero for each axis which will give the result magnetic vector length independent on the phone orientation (that must be the case in ideal situation but is not the case when the zero is shifted on any axis).


text:
Docking Asus Transformer Prime back-to-front?
Is it possible to dock the tablet in a sort of "back-to-front" way such that if I were to close the tablet whilst docked, the front screen would be facing up?

Sorry, I'm totally confused: No, I don't think the tablet will turn around when you are getting close... Errm, surely that's not what you meant -- so maybe you can re-phrase your question to make it a bit clearer?

Sorry for the confusion, let me try again.
Suppose I have the tablet docked, facing it I have the keyboard in front of me and the screen.
I've seen somewhere that I can turn the screen around such that it is back to front... Reversed, so when I close it, the front screen is at the top and the rear of the screen rests on the keyboard. I've seen it before but only once...
I just want to verify this before I buy.

No, the tablet only fits into the Transfomer keyboard/dock one way, with the screen closed against the keyboard when folded shut.