text:
copy folder structure from internal memory to sd-card
I use the amazon downloader to buy mp3s with my android device. My problem now is that I cannot change the download folder but want the files to be moved to my sdcard. I already found a cron tool to run scripts from time to time. All I need now is a shell script to move all folders (including subfolders and files) from
internalmemory\amazonmp3
to
sdcard\Music
to be honest my knowledge is just good enough to do a "mv" but not good enough to go through all subfolders. I also am not sure about the directory structure of android devices. (pathes to sdcard and so on)

@MatthewRead Because he's using cron to do it periodically on a preset timetable.

@onik Lol, I somehow totally missed that sentence, thanks.

If you use mv on a directory containing files and subdirectories, it will move all of them. But in this case you may not want to move the amazonmp3 directory itself, so the command would be mv internalmemory/amazonmp3/* /sdcard/music/, assuming the internalmemory directory is correct.
The actual names for the internal memory and sd-card depend on the device, for example on my old Galaxy S they were /sdcard and /sdcard/external_sd/.

Just an addition. "mv" does NOT work on Android because the internal memory and sdcard have different file systems. You have to copy the files and then delete the old ones.
(oniks answer is still the best. This information is just for those who ended here using google)


text:
Do most phones default to Automatic Date and Time being on?
I guess this is really a question about carriers in the US since I suspect they control these types of default settings.
Do most Android phones default to have "Automatic" Date & Time setting on?
Someone reported SSL certificate failures in an app and the root cause was the phone's clock was set to 2004. I'm trying to figure out if this is a common occurrence. If most phones are set to automatic date & time I won't worry too much. If phones don't automatically have synchronized clocks, I suspect these type of error would be more common.

In my experience, the automatic date & time settings are on by default, and time zone detection doesn't work. If I leave my devices with the default settings, they are always 2-3 hours behind since my time zone is UTC+2 (or +3 during DST).

Yes.  No, I don't have a source. :P

source: Stack Exchange

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

sort: votes


text:
How to transfer files using WiFi Direct between 2 ICS devices?

Possible Duplicate:
Is it possible to send a file wirelessly without bluetooth or a wifi network in ICS?

I recently asked the question whether it was possible to transfer 2 files between two ICS devices here.
This leads to the question:  How do I transfer files between two ICS-devices using WiFi Direct?  Is there a way to do it built-in to ICS, or is there an app for it?
UPDATE:
The Samsung Galaxy S II apparently has this feature built in pre-ICS (go samsung!). Is this same method available in ICS?

I really don't think these should be separate questions.  I'm going to edit the other to ask this.

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


text:
What do I need to know about the "weird" Galaxy S Vibrant emergency call handling?
Vibrant support was dropped from CyanogenMod after 7.1 (Gingerbread) due to issues with failed 911 calls.  I flashed 7.1 a bit before this was made known, and have since reverted to my stock-based ROM.  This is obviously a bit concerning and I have a few remaining questions:

Did flashing CM damage anything?  (I.e., will emergency calls work now that I'm on a different ROM?)
Can this happen with stock-based ROMs?
Was it all emergency calls, or just 911?
Is it related to Gingerbread?
Has it been fixed in CM? I've seen a few things both ways.

The official announcement on the CM forums states:

The issue was in the RIL code, which is just typical code and libraries packaged in the ROM (e.g. /system/lib/libril.so, for example). The CM team recommended installing a Samsung ROM noting that any Samsung ROM is fine and any AOSP ROM would have issues. There's no permanent damage since the RIL code was replaced when you reflashed.
They specifically cited the issue was related to closed-source RIL code, so this wouldn't happen with a stock ROM unless Samsung severely borked their RIL code.
Only 911 was listed as a problem, but I don't know (and neither have the CM team ever stated) if other emergency numbers were affected.
Official support for the Vibrant didn't occur until 7.1, which was Gingerbread. It's really hard to say if older versions were affected, but I would assume yes (if they exist somewhere still).
The announcement states that the issue was fixed and the Vibrant is officially supported at this point.

Oh duh, I knew it wasn't supported before, and I know I've seen the original version of that announcement but couldn't find it again.  Glad they fixed it ... very different from the previous "unresolvable" status.

@MatthewRead I can't believe you still have a vibrant and that you are still running TouchWiz. I didn't even revert when the e911 issue was identified. I am now just waiting for official cm9 support. The vibrant also now has a new maintainer for CM since this issue was resolved as I believe the original maintainer had the device, but did not have a working SIM for it as he is not in the US.

@RyanConrad I've been extremely happy with Bionix, and CM7.1 was really bad. Definitely going to try CM9 though now that I know I can.


text:
Can a device pretend to be a USB keyboard?
What I'm looking for:
Is there a way to make the device claim to be a keyboard/HID when plugged into a USB port and "type in" the contents of the clipboard? More accurately; What would it take to make it happen?
Motivating use case:
I have a password keeper program on my phone but it's annoying to have to read the password off the device and try to type it into another computer.
Background:
I have an Android device that was built before MTP was supported for transferring file but, with recent upgrades, now supports it. Based on this, the USB class that it claims to be can't be hardware defined and must be defined in software.
IIRC, this project has Android devices (with what I think is a stock kernel) talking as some USB class that was definitively not built in. This indicate to me that you might be able to control what USB classes it support without kernel work but I don't know for sure.
As for the Host side (i.e. the PC), I've never seen a PC, Mac or Linux box need special drives for keyboards, even for some rather esoteric devices that claim to be keyboards (bar-code scanners, credit card and smart card readers, etc.) so the generic drivers should be good enough for what I'm wanting.
All that argues that what I'm looking for can be done from a hardware point of view, but says very little about what software support exists and nothing about if there is an app for it.

You might try using KeePass (KeePassDroid on android, keepassx on linux, etc.) on both your phone and your computer, and just sync the database file between them, or access the database file on the phone via USB from the computer. Other password managers may also have "real computer" counterparts.

@TREE: That might work for some cases, but one of the the specific target usages is where I don't have the ability to install something on the PC (either no access or a chicken/egg problem like system log-in passwords).

there is also a portable version of KeePass that can run from a USB stick. This might work from a mounted android USB Storage device, but certainly doesn't address all possible use cases.

Yes. This is definitely possible, requiring no modifications or drivers on the PC. As the OP mentions, the USB identification on the phone end is ultimately done in software (in this file https://github.com/android/kernel_msm/blob/android-msm-2.6.35/drivers/usb/gadget/composite.c), and it could be modified to identify itself as a standard USB keyboard.
This change would require a couple of things.

A modified kernel with a patched USB driver
An Android app that could talk to some interface exposed by the modified USB driver.

There is a paper that was published in 2010 titled Exploiting smart-phone USB connectivity for fun and profit. It describes using a phone to brute-force desktop login screens. The method they used involved making the phone appear as a USB keyboard.

More info to be found here.

https://github.com/pelya/android-keyboard-gadget
It has been implemented here.. and the required android app is also available

This doesn't exactly answer your question, but it might help in your use case.
Maybe you want to have a look at InputStick. It'll be a USB thumb drive that you pair to Android via Bluetooth. Plugged into a computer it emulates a generic USB HID to send keyboard strokes. An advanced Java API will also allow to specify i.e. device descriptors to emulate non-standard functions. It could provide a nice example that it's defined in software rather than hardware.
For reference, the developer also is working on example programs, such as a  Demo Password Manager.

At a minimum, this would require both software on the phone and on the PC. The 2 pieces of software would have to communicate with each other. Nothing like this, that I know of currently, exists.
And for the PC to think that the device is truly a keyboard, it would require a new driver that would tell the PC that the device is a keyboard, and how "to use it as a keyboard".
I am not saying that it is not possible, because just about anything is possible when it comes to things like this. What I am saying though, is that nothing like this exists, currently.
USB is both hardware and software, if it was software alone, then the same USB driver would work for all android devices on Windows, and this is not the case. USB mass-storage and MTP are handled by the drivers on the PC, not the device. What devices support both MTP and USB mass-storage and at the same time? I have found articles stating that devices can support UMS and MTP, but only support UMS if there is an external sdcard. You cannot mount the external sdcard with MTP and with UMS. MTP is for the internal storage. And I haven't read anything that can confirm or deny that you can use both at the same time.
You don't have to install drivers for keyboards, if they follow the "default" spec because windows already has the drivers for it. There are keyboards that come with their own drivers. As I said, it would be possible. I am not sure about how it would be done. It would, almost certainly, require a custom kernel at the very least for it to act like a keyboard and no additional drivers to be needed on the PC side.
Additionally, I agree with @davidbb that it is possible and I have already said that it is. The problem with a question asking if something is possible, does not ever solve the problem. It would be like me saying "is it possible for me to run ios applications natively on windows?". This is theoretically possible, but there is nothing that does this now and there is not something that a "normal user" (or even   an advanced user) can do to make this happen. This site is geared for users, so saying you just need to write a modified kernel is not an answer that is going to benefit anyone. So the real answer to the question is no, because there is not a modified kernel out there.

IIRC, the android end of the USB connection is done in software (it has to be to some extent for the same hardware to act as both a USB mass-storage device as well as MTP). Based on that, what is to prevent a device side only driver from make the device announce it's self as a generic HID? If that can be done, then the same PC side drivers that handle any other keyboard will handle it (just like is done for things like bar-code scanners and credit card readers).

Android devices (hardware) that were built before MTP was being used now operate as the MTP USB class, thus the classes that the device claims to operate as must be defined in software. I can't remember if I have ever installed a driver for a keyboard (or for that matter a non-generic driver for connecting an Android device) thus nothing should need to be installed PC side. Combine those and I'm almost sure that the hardware can do it. The only question left is: does stock Android provide access to the needed knobs, or would this take building a custom kernel?

Re: 2nd edit. I guess I'm looking for someone who knows definitively what it would take. (Can you move that last paragraph to the top?)

This answer is wrong, no software is required on the PC side.  Different phones require different drivers because the manufacturers don't all use the same vendor ID number.  Keyboards however fall in a different category of device where they are recognized by the host by type, so the vendor ID doesn't really matter.  The VID/PID, device type, protocols, etc are all implemented in software on the android side, and changeable by anyone with kernel source and a way to install the compiled result.

Have you tried Unified Remote. This is a great tool to use phone as keyboard and mouse. It doesn't use USB but wifi instead. There is an app on phone and computer that work together. Works great for me. Also if you get full version you get integration with many common applications.

I'm looking for a solution for cases that include things like typing passwords into BIOS boot prompts so I can't really install any kind of client.

I was searching for something similar and found https://github.com/pelya/android-keyboard-gadget. Seems the same thing can be used in your case.
In brief, what I got is you have to write the USB driver in the Android kernel to detect the device as HID.

It's now >six
years later and
somewhere in between someone created the Keepass2 USB Keyboard
Plugin for Keepass2Android.
Wanted to add this
information here for the sake of completeness and because I found
this question unanswered and the aforementioned plugin while
searching for exactly something like that.
I haven't tested it myself yet...

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


text:
In ICS, what differs between use on a phone, and use on a tablet?
Being that ICS is the merging of the phone and tablet versions of Android, what is different in ICS when it is used on a phone from when it is used on a tablet?
** Clarification:** This is referring to vanilla ICS

Assuming just vanilla ICS, with no custom UI from a manufacturer/carrier or anything:

A phone has a status bar at the top and soft buttons (or hardware buttons) at the bottom. A tablet will only have the bottom bar, with soft buttons on the left and clock/notifications on the right. The notification pane pulls down from the top status bar like in previous versions on a phone, but it pops up from the bottom-right corner on a tablet.
The default launchers and home screen layout are visibly different. The app drawer on a phone is in the center bottom, on a tablet it's top right, and phones have a sort of "dock" at the bottom that is visible on all home screens (tablets do not). Also, the Google search bar collapses on a tablet but is persistent across the top on a phone. The home screen transition animation is also different.
Apps that use the Action Bar will display a bit differently. On a phone the bar will almost always be split between the top and bottom of the screen, with some options on each portion of the bar (possibly unless they use very few icons/actions). On a tablet it just uses the top of the screen because there's plenty of room. Google Music is a good example of this.

The bottom bar on a tablet is apparently called the Combined Bar, since it combines the Navigation Bar (soft buttons) on the left and the Status Bar (clock/notifications) on the right.


text:
How to set http proxy filter?
I have an http proxy, which works OK, but there are some address on my lan which provides some web services.
I want to configure my device so that for some range of addresses the proxy is bypassed.
I have tried with 10.0.0.0/8, but it doesn't work!

Could you add what device you're using? At this point I'm not confident it's related to ICS.

Acer Iconia A500. And yes, the firmware is not (yet) official. I'll update this question when the official ICS firmware is released.

Have you tried 10.0.0.1-10.0.0.254 ?

I don't think it understands ranges in that notation, have you tried 10.* or 10.*.*.*?

Yes, I tried. It doesn't understand 10.* or 10...* (the "save" button is disabled)

It seems to accept 10.0-254, can't test it now since my current connection doesn't use a proxy. If you test it, let me know and I'll update my answer accordingly. Oh, and try 10.0-254.0-254.0-254 style too.

It accept these settings, but still it doesn't work! At this point I believe it's a firmware bug.

Unless the firmware vendor has modified the function which checks the proxy bypass list, specifying IP address ranges in the list is not possible — all entries are compared like domain names. Also the * wildcard is not supported, but is implied at the start of the domain name, as answered here (still valid even for JB).
So, if you want to use the builtin proxy support, you either need to list all required IP addresses explicitly, or, if your LAN has a DNS server, and all local servers are under some domain (server.lan.example.com or server.local), add that domain (lan.example.com or local for my examples) into the proxy bypass list, then access local servers using DNS names instead of raw IP addresses.
Alternatively, if you have a rooted phone, you can install a third-party proxy app such as ProxyDroid or Autoproxy; they should be more configurable than the builtin proxy support code.


text:
ICS and support for gamepad/controller devices
I own an Asus Transformer TF101 and finally the official upgrade to ICS has been released.
I remember some ICS video previews where they said that ICS would have native support for gamepad/controllers and I have some questions about it:

How can I understand if a market available USB gamepad is compatible with ICS?
Is there a list of already supported devices?
I also own a Microsoft PC Wireless controller, do you know if there is a driver written for ICS that supports that dongle?

USB controllers follow a spec which means any USB controller "should" work. So there is not a "list of supported devices" as they all are supposed to work as long as they are not proprietary. Even an Xbox 360 wired controller should work (not sure about a wireless 360 controller, even when plugged in with the charge kit). Now your wireless controller is probably a different story. This is probably using some proprietary protocol to communicate information from the dongle to the controller, but you could try it. As long as the android device thinks that the dongle is a USB controller, and the dongle handles the communications to the controller, it may work.


text:
What new features my tablet gains in the passage between Honeycomb and Ice Cream Sandwich?
I just received the official ICS upgrade for my Asus TF101 (Wi-Fi only version) and I immediately noticed that the device seems faster and has a renewed look & feel.
But what other features the new OS version brings for tablets?

Please refer to this Meta discussion: http://meta.android.stackexchange.com/questions/620/what-to-do-about-whats-new-in-version-questions

Selected excerpts from the official Android 4 Platform Highlights document:

The biggest changes will be for phones upgrading from Gingerbread to Ice Cream Sandwich, rather than for tablets upgrading from Honeycomb,
  as a lot of the new UI features were introduced in Honeycomb.
The UI change is a big difference and brings Honeycomb's Recent Apps button for easier access to multi-tasking to the main-line Android
  platform along with the System bar that it sits on.
The standard Lock  Screen now has quick access to the Camera and Notifications, and there will be album art and controls for music
  playing in the Music app on the lockscreen.
When an incoming call arrives, users can now quickly respond by text message, without needing to pick up the call or unlock the device.
Improved text input and spell-checking on the standard Android 4 keyboard
Android 4.0 introduces a powerful new voice input engine that offers a continuous "open microphone" experience and streaming voice
  recognition.
To meet the needs of users with tiered or metered data plans, Android 4.0 adds new controls for managing network data usage.
Enhanc[ing] the accessibility of Android 4.0 for blind or visually impaired users. Most important is a new explore-by-touch mode that
  lets users navigate without having to see the screen.
A new People app that offers richer profile information, including a large profile picture, phone numbers, addresses and accounts, status
  updates, events, stream items, and a new button for connecting on
  integrated social networks.
The user's own contact information is stored in a new "Me" profile, allowing easier sharing with apps and people.
an updated Calendar app brings together personal, work, school, and social agendas.
a new visual voicemail features integrates incoming messages, voice transcriptions, and audio files from one or more providers.
The Camera app includes many new features... continuous focus, zero shutter lag exposure... Stabilized image zoom... users can now take
  snapshots at full video resolution just by tapping the screen as video
  continues to record... built-in face detection locates faces in the
  frame and automatically sets focus... single-motion panorama mode...
Redesigned Gallery app with photo editor
Live Effects for transforming video
instantly sync and manage Google Chrome bookmarks from all ... accounts
Android Beam for NFC-based sharing [requires NFC hardware integrated into the device]
Face Unlock
Wi-Fi Direct lets users connect directly to nearby peer devices over Wi-Fi
built-in support for connecting to Bluetooth Health Device Profile (HDP) devices... users can connect to wireless medical devices and
  sensors in hospitals, fitness centers, homes, and elsewhere

Also your manufacturer, Asus, may have added or updated their own specific software, and some of the new features may only be available if your manufacturer hasn't customized/replaced the original Android app.


text:
Android HTC Touch2/Mega

Possible Duplicate:
Can I install Android on my non-Android device?

Language Turkish.
Merhaba ;
Benim HTC touch 2 bir telefonum var.Çok uzun süredir araştırma yapıyorum fakat bir türlü android yükleyemedim.Android yüklemek acaba mümkün mü?Bu konuda bilgi veriseniz çok sevinirim.
Teşekkür ederim...

Google Translate:
Hello;
I have a phone in my HTC touch 2. A kind of research I'm doing for so long now, but could not load android. Is it possible to install Android wonder? Information on this subject I would be glad veriseniz.
Thank you ...

Hello Nerkek! Questions on Android-SE are expected to be in English. Please try to reformulate your question in English, use an online translator if necessary. We'll try to edit it for grammar and spelling if there are some mistakes.

I've tried to translate the question... I think he is trying to install Android on a Windows Mobile phone?

If the translation is correct, it looks like you are trying to install Android OS on a Windows Mobile phone?
There appears to be a decent guide about this here. It wildly varies by which device you have.

Or here: http://android.stackexchange.com/questions/6849/can-i-install-android-on-my-non-android-device

@Chahk that's a better question, I'll mark this one as duplicate of it


text:
For updating an  Android OS which one is better amongst the, official Update and Custom ROM update

Possible Duplicate:
How do I update the OS in my device?
When will my device get the Android 4.0 update (Ice Cream Sandwich)?

I am using the Sony Xperia Arc phone.
I came to know that,The Official Mobile Update OHLA(open handset alliances) will be delaying the release of Android OS(ICS 4.0).
I have a little confusion about updating Android OS.I have seen some mobile OS update forums and they mentioned that we can update our Android phone easily to higher version i.e. Android OS(ICS 4.0) by rooting the device.But it seems the mobile warranty will be broken,the data will be lost and even we can find the bugs as well while updating through custom OS though we can update easily.
So I want clear solution for this confusion so could any one help me for this problem.
What would be my further steps for updating it to 4.0?

What phone are you using? I didn't see a mention in your question, and phones have different ways of rooting them.

Sony xperia arc

According to Sony's official statement, Ice Cream Sandwich (a.k.a. "ICS", a.k.a. Android 4.0) is coming to Xperia Arc at end of April or beginning of March of 2012.  If you are worried about the cons of rooting (i.e. voiding warranty, possibly breaking the handset, etc.) I would suggest that you wait for the official update from Sony and/or your carrier.


text:
Nexus S 4.0.3 (OTA) missing icon in the phone app
How can I solve missing icon issue? Restarted couple of times doesn't help.
Note: It was fine for a couple of months back. When it start happening, I just need to reboot, but now it's permanent.
The action buttons in the phone app should look like this:

But instead my phone app screen look like this:

Are you running an official OTA update, or a custom ROM?

what is that little "tick" in the right corner? maybe based on your DPI all the buttons do not fit and it needed to be put in a menu.

@Chahk yes, I'm running offical OTA, no unlock, root etc. For cm I do have other device ;)

@Ryan that's exactly my question. Pressing menu does nothing though.

@user802421 Have you tried a factory reset yet?

Not yet. I was hoping not to atm.

@Ryan pressing the "tick" (with a needle;) show contacts to add to the call.

I want to guess that maybe 4.0.3 maybe changed what you are used to seeing if you didn't change anything on the device. other then that... I have nothing, sorry.

Are you sure that that isn't the way it should be? Today I recived a 4.0.4 system update for my Nexus s. Try updating yours from 4.0.3 to 4.0.4.
Edit:
That is the way its ment to be. Me and many people I know have it like that. Where did you get the first image of the dock bar from?

I'm on 4.0.4 and it's happened from time to time. I still cannot reproduce the error though.


text:
How do HD voice calls work?
Most of the operators now support HD voice on Android devices. I was wondering about the following points:

How can an Android user be sure that a call is HD without guessing from the audio quality?
Does the phone hand over calls from HD to normal call and vice versa?

None of the carriers in the US support this that I know of. But according to the android supported codec page, AMR-WB (Adaptive Multi-Rate Wideband) is supported by android devices. As long as the carrier is actually using the "spec" to transmit the "HD Voice" over the GSM/CMDA network, there is nothing special that needs to be done for android devices, it will support both Normal and HD calls.
To explain a little further. When an HD call comes in on a device that supports AMR-WB, and it is enabled (based on the comments below that some may not have support enabled), nothing has to be done on the device side. All that is sent to the device is an audio stream, the stream is in the AMR-WB format and the device decodes that automatically. Because it is an audio codec specification and the support for that exists on the device you are able to send/receive using this codec.

you comment is availability of technology on device and operator but There are some devices say S2(international version) which requires explicit enabling of wb-amr support..there must some gateway where it detects the behavior of the call.. I dont no if the same applies to Galaxy s2 US version(skyrocket)

ok, but your question was not if it has to be enabled on the device, your questions was how does it detect it, and does it handle the 2 different types of calls, which I answered. No carrier in the US supports HD voice, so even if you have to enable it on the US version of the SGS2, it wont do anything.

I jus now found that there are more than 60 mobile devices world wide(status as of Nov-2011 might have grown now)  from different OEM which supports HD voice. Here is the difference. ON ANDROID some devices needs to be enabled explicitly and some are enabled by default. Now the point 1. how to detect on default enabled devices.

I have added to my original answer and I hope that helps explain it.

Edited my question with more clarity


text:
Automatically power on Android when the charger is connected
Is it possible to automatically power on the device once the charger is connected given that the device is initially turned off?

The battery charging graphic is displayed by /system/bin/playlpm file on Samsung devices.
If you are root, you can edit this file to:
#!/system/bin/sh
/system/bin/reboot

And be sure to add those permissions to the file:
chmod 0755 /system/bin/playlpm
chown root.shell /system/bin/playlpm

Your device will now boot when plugged

Hi, I have a Cyanogenmod device , do you know how can I do this on cyanogenmod ? Thanks

This only works on Samsung devices. This may be useful for you

If you're trying to do this, make sure you don't have carriage returns in your playlpm file or it won't work.

fastboot oem off-mode-charge 0 is the genuine method if your device supports. It's Google's recommended method but not all OEMs/vendors implement the command in bootloader. Or on some devices it's reset on next reboot. If off-mode-charge is disabled, bootloader won't pass androidboot.mode=charger commandline parameter to kernel when charger is inserted, so device boots normally.
Otherwise when ro.bootmode property is set to charger on boot, init doesn't continue the normal boot process. Instead limited number of services are started and charging animation is displayed. So you can instruct init to reboot the device whenever charger mode is detected. Create a new .rc file or edit any existing one:
# /system/etc/init/off_mode_charge.rc

on charger
    setprop sys.powerctl reboot,leaving-off-mode-charging

Or execute reboot binary:
on charger
    exec - -- /system/bin/reboot leaving-off-mode-charging

But if SELinux is enforcing, stock policy may not let init execute /system/bin/reboot. So use Magisk's context (or whatever rooting solution you use):
on charger
    exec u:r:magisk:s0 -- /system/bin/reboot

Don't forget to set permissions on *.rc file (chown 0.0, chmod 0644, chcon u:object_r:system_file:s0).
It's also possible to continue boot process instead of restarting the device by replacing class_start charger with trigger late-init in /init.rc file:
on charger
    #class_start charger
    trigger late-init

Or by setting property sys.boot_from_charger_mode:
on charger
    setprop sys.boot_from_charger_mode 1

This method should work on all devices irrespective of OEM as it doesn't depend on vendor-specific charging binaries like playlpm, battery_charging, chargeonlymode, zchgd, kpoc_charger and so on.
Also replacing binaries of important services like healthd - which take care of a lot of things related to battery, storage etc. - is not a good idea. In this case if the service runs both in charger and normal mode, device may get into bootloop.
On non-System-as-Root devices it's not necessary to modify /system partition (e.g. if you don't want to break dm-verity for OTA updates to work). Simply unpack boot.img and edit /init.rc file in ramdisk.
Though unnecessary, it's also possible to execute an init.d script from .rc file. For reference see How to run an executable on boot? and How to power off when charger is removed?.

RELATED:

Android device load process

@JeffLuyet thanks for the path correction. You can ask a new question if something isn't properly addressed in existing questions/answers. I just saw your proposed edit by-chance. No notification is sent. // I don't know exactly why it didn't work for you. I have been playing with init's .rc file at least since Android 7. And it always worked. Usually SELinux is the most problematic part. You should have seen at kernel logs (dmesg) right after first failed attempt. init logs its events to kernel log. That's how the problem can be identified.

@IrfanLatif Thank you for your post here. I have the following issue, do I have to be root for this? I get
gta3xlwifi:/etc/init $ cat > off-mode-charge.rc /system/bin/sh: can't create off-mode-charge.rc: Read-only file system

@omega1 definitely you need to be root. Or at least need to have custom recovery to modify boot.img or /system from there. None of the methods to automatically power on when charger is connected can work without root, except fastboot oem off-mode-charge (if supported on your device).

@IrfanLatif Thanks for confirming. It does not support  fastboot oem off-mode-charge and I have failed miserably at rooting the device (Samsung SM-T510), I've followed every guide I can find and either get stuck with errors or fail at different parts of the steps (I must be missing something). I managed to load into TWRP, could I modify boot.img from there? I might look that up and see if I can do it that way. Who'd have thought it would be so hard!?

I am getting the error FAILED (remote: 'not support on security'). What gives?

So, there are many ways to do so. The most proper one, as always supported by Google (and more and more by others, e.g. nvidia from nougat) is this fastboot command
fastboot oem off-mode-charge 0

Otherwise, you can either hijack the charging binary (not guaranteed to be possible on all devices, but just requires root) or patch your ramdisk (theoretically universal, but will require an unlocked bootloader).
For the first solution, you'll have to find somewhere in your system partition (usually the bin folder) where the program in charge of the battery animation and all resides. Some common names:

Motorola: charge_only_mode
Mediatek: kpoc_charger or ipod
Htc: chargemon or zchgd
Samsung: playlpm or lpm
Sony: chargemon or battery_charging
Most(?) AOSP-based roms: healthd

Once found, you can just replace it with a script such as that above by IET_DEMO.
Touching the kernel is instead something I don't feel like explaining and recommending if you don't know what you are doing.
Just for the records then, I'd just like to underline that offline charging exists because the boot process is fairly energy intensive, and especially on older phones without even fast charging the power draw from the system could be higher than that on the plug.

Just got this working for ZTE Force (Boost Force, Sprint Force, etc).
I used IET_DEMO's answer, but replaced the file located at /system/bin/battery_charging with this code:
#!/system/bin/sh
/system/bin/reboot

Hi, I have a Cyanogenmod device , do you know how can I do this on cyanogenmod ? Thanks

You'll need these commands:  adb shell 'su -c mount -o rw,remount /system' and adb shell su -c 'chmod 755 /system/bin/battery_charging' and adb shell su -c 'chown root.shell /system/bin/battery_charging'

For some older Samsung devices, this can be accomplished through NoMoarPowah!:

NoMoarPowah! can automatically reboot into Android when charging is done. Either when fully charged, or when the battery level reaches 15% and Android has enough juice to run.

You need root and you probably don't want to do it unless you really know what you're doing, since I would expect this to modify important system files.

It looks like this has been removed from the Play Store, but you can probably find the APK hosted elsewhere.  (I don't have a trusted link offhand.)

Kernel is loaded at a later stage in the boot-up process, so any modifications to it would not have any effect for when the device is powered off.
This functionality really depends on each device's hardware, most likely in the bootloader (more knowledgeable editors feel free to correct me.)  For example, my Motorola Atrix 4G phone begins booting up when I connect a charger, while my Samsung Galaxy Tab does not - it displays the "Battery Charging" graphic and requires being powered on manually.

so what brings up the Battery charging graphic on the screen ?!...now the bootloader is called when you hit on the power button manually, but what piece of code displays the battery charging graph on the screen ?!

In powered off state device's behavior on hardware events like power button and charger obviously depends on lower level code including SoC/PMIC firmware and bootloaders. But I haven't seen an Android device on which bootloader handles charging entirely itself without involving OS (not sure if there were in 2012). Bootloader hands over charge to Android kernel and even init is started. The only difference is that /data (and possibly other filesystems) are not mounted and a limited set of services is started as compared to normal userspace.


text:
VZW Galaxy Nexus exhibiting bizarre charging behavior
Lately I've noticed some weird behavior with my Galaxy Nexus. I am rooted, but running stock ICS.
Here is what it's doing wrong:

Phone sometimes will not charge, I must turn it off for it to start charging
Taking phone off the charger doesn't remove the lightning bolt [charging icon] from the notification bar.
Phone begins alerting constantly at 14% battery.
Battery life seems shorter

Is this likely to be an app doing this? I don't want to wipe my phone if possible, so is there a way to track down the cause?

alerting what at 14%? that the battery is low?

I've never experienced any of these problems before... I know you don't want to wipe your phone but you might have to consider it.

The first point sounds like it's drawing more power than the charger is giving it -- make sure you're using a wall charger and not a USB cable from your PC.

I've had the some of these issues on my Nexus S running the stock 4.0.3 as have other people, I think it's a software issue, there's a few threads on the Google forums about them.

According to the official bug report here, starting at about post 26, it seems the sentiment is that this is a hardware issue.
I have contacted Verizon and they are shipping me a replacement. I will update the question again if this does not permanently resolve the issue.
http://code.google.com/p/android/issues/detail?id=23789&q=label%3APriority-Medium&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars


text:
Are there guidelines on how much free RAM a phone should have - specifically Samsung Galaxy S?
I have a Samsung Galaxy S (AT&T Captivate) that is rooted.  I have various ways to tweak the amount of free RAM the OS leaves on the phone.  The default is 48 MB, but I was wondering if I could actually go lower without impacting phone performance.  Are there guidelines posted anywhere, or that can be deduced based on knowledge of the Android platform?  Or should I trust that the default settings are appropriate?  I understand that when it comes to free RAM, more isn't necessarily better, but I understand that there is still a threshold that I don't want to dip below.
I'm running a 2.3.6 Gingerbread based ROM.  For what it's worth, I'm running the Zeam launcher.

In the "linux world", what android is at its core, free RAM is wasted RAM. The system will attempt to use up as much RAM as needed. If more is needed, and there are applications that are no longer requiring the RAM it has allocated, the system will free up the RAM from that application an allocate it to the new application that needs it.
Having less RAM available will not necessarily affect the performance. What will affect it is if it frequently needs to free up RAM on the system for other applications. meaning if there a lot of running applications that are Active, and require the RAM, then you can see performance issues. This is because the the system needs to save the state of the application, free up the RAM and then allocate the freed RAM to a new application.
As for what a "low point" might be, I can't say. I have NEVER watched my available RAM, and never really experienced any performance issues because of RAM. for the record, I have the same device (but the T-Mobile version).

How does RAM on Android work?
First, we need to understand a bit about how RAM works on Android. If you are familiar with Windows computers, you will understand that more and more RAM is usually better and having enough free RAM will be necessary for the system to function normally.
However, according to HowToGeek, with Android, it works a little differently. Android is based on the Linux kernel, an operating system operating under a completely different set of standards than a Windows PC. And when it comes to RAM, it's completely different from Windows: Free RAM is the amount of RAM that is wasted.
So, on Android, you do not need to clean up RAM for other applications to run. The process is automatic and very smooth. RAM is not something you need to think of on most Linux devices.


text:
What is the process to install cyanogenmod to a galaxy tab 10.1?
I am new to this flashing business for the Android tablets. I did some of those flashing on a PanDigital tablet previously, but it's been a while. My tablet is the standard 32G WiFi tablet, and it's been rooted. How can I get the cyanogenmod ROM installed, and how does this fastboot thing work ? I also have the recovery.img file.
BTW: How can I backup the existing ROM, so I can restore if something goes wrong ?
Thanks :-)

I dont think CM is supported on the SGS Tab 10 yet. Here is a list of supported devices.

If it is a supported device, then this should basically be the process as it is the same for every supported device I have experienced.

Put the cyanogenmod update zip file on the device sdcard (or internal storage)
Also put the google apps update package that corresponds to the CM version on the sdcard
Boot the device in to recovery mode
You can create a backup in the Recovery image (probably clockworkMod recovery)
clear the cache and wipe the data
install zip from sdcard (selecting the cyanogenmod zip)
install zip from sdcard (selecting the google apps zip)
reboot the device.

If you have ROM Manager, a lot of this process may even be easier. With ROM Manager, which can also install ClockWorkMod Recovery if it is supported on the device, you can download CyanogenMod, the google apps package, clear the cache and user data, and perform the backup. It will then reboot the device and perform all those steps.
Now, as I said, I am not 100% sure that CM is supported on this device, so there may be other steps required to get an unofficial version working on the device. With that said, Samsung devices are usually pretty easy to get back to the Stock version if something goes wrong (soft brick). It is pretty hard to brick these devices, I have had a couple scares, but I have always been able to revert back to original stock ROM by using ODIN.

I got the Cyanogenmod file for my tablet. Everything I read says it runs just fine, except for the camera. Wherer can I find the Google apps update file ? Is this the file named recovery.img. What else do i need to get this modded Android loaded on my tablet ? I have both a Linux and a Windows station, although I'd rather stay with Linux.

you shouldnt need a PC at all except may to transfer the zip to the device. do not extract the zip, the Recovery will process the zip file. The google apps can be found at http://goo-inside.me

SO if I can transfer the files via the card reader to /sdcard on the device, that should be enough ? And the files are the cyanogem signed .md5 file, the .bin file and the google apps other zip files ?

the files are not already in a zip file? the zip is what you need to transfer to the device. not the files IN the zip.

I was not sure which file to retrieve to get the Google apps. I understand that I then only have to put both zip files in /sdcard and install them. I assume I install cyanogenmod then google apps (once I figure out the file name to download). What APK should I install to be able to backup the image for an eventual recovery ? I know. I have many questions.


text:
How can voice search improve recognition
I understand that Google will store the things I say and is supposed to improve recognition of my voice on my android phone.  How can it do this if there is no way to correct it?  I say a persons name several times and it incorrectly recognizes it the same way each time.
How is it going to improve and recognize what I say correctly?

Try this Can I train Google Voice Actions to better recognize my voice?
Digging around Android forums and elsewhere, I found a good number of testimonies from speech-to-text enthusiasts who saw better results from simply speaking at a normal clip. Google representative Nadja Blagojevic offered much the same advice for the search giant's voice product in both Android and its Chrome browser: "Speak naturally and clearly, but don't strain to enunciate too much or speak slowly."
http://lifehacker.com/5825965/speak-faster-to-improve-voice-recognition-apps
http://forum.xda-developers.com/showthread.php?t=630707


text:
Are Android USB plug-in chargers interchangeable?

Possible Duplicate:
Is my phone liable to explode if I charge it with a charger that came with a different phone?
Are Android chargers universal in terms of power (Voltage, amperage)?

I'm developing an app for my job for Android and we're testing on multiple devices.
I know I can charge the phones by plugging them in via USB cables and such but sometimes I may need to charge one or more via plugging them into the wall (or power strip).
Thing is, most of these phones come with a USB cable and a plug adapter to connect the USB cable to. Sometimes the plug adapter doesn't indicate which phone or manufacturer it came with and so it's really easy to get things confused.
What would be really nice is if I could just plug in all of these chargers to a power strip and just plug phones into any of the USB ports. Is this possible? Is it safe? Will I screw anything up if I just plug any phone into any charger?

I think those should cover this, let me know if not.


text:
How do I create a ClockworkMod installation package?
I'm a seasoned Linux veteran and recently bought a Samsung Galaxy S2 from T-Mobile.  I've been feeling the tinkering bug, so I opted to download the source code from Samsung's site and start fiddling.
My problem is that I've already got ClockworkMod installed on my phone, so I don't want to odin flash a new kernel and thereby corrupt ClockworkMod, so I'm looking for details on how to create a proper ClockworkMod install package (generally/always a zip file?) so that I can test the newly compiled kernels.
My searching on google thus far has brought up naught.  The ClockworkMod page seems to be pretty barren of documentation.  Can anyone point me to some documentation on the install package creation process?

Flashing a kernel with Odin breaks CWM?

I figured it would since ODIN seems to flash the main bootblock of the phone, but I could be totally off base there.  I didn't want to try it without knowing for sure.  My understanding was that CWM is a middle-man thin kernel that would pivot to the proper kernel, but again, could be totally off base.

The required part of a kernel .zip file looks like this:
META-INF
    com
        google
            android
                update-binary
                updater-script

You'll also want to have the kernel zImage file somewhere else, easiest if you just have it in the root of the archive.
updater-script contains the following at minimum (assumes zImage in the root):
assert(package_extract_file("zImage", "/tmp/zImage");
       write_raw_image("/tmp/zImage", "/dev/block/mmcblk0p8");
       delete("/tmp/zImage")
);

You can also do things like show a progress bar, print messages, wipe /cache, and so on.
You'll want to grab update-binary from another kernel package for the SGS2.  One at random is attached to this XDA post.
I tested this method on my SGS Vibrant without issue, using a kernel from an Odin package and an update-binary from another Vibrant kernel .zip.  Note that this is perfectly safe as long as you're writing to the correct partition -- for the Vibrant it was bml17, for the SGS2 it appears to be mmcblk0p5 (based on the kernel from XDA I linked above) or mmcblk0p8 if you're flashing an entire boot image (see comments below).  You'll want to verify it for sure.  Worst case your kernel doesn't work and you flash a known good one.

For the Samsung Galaxy S2 (T-Mobile) SGH-T989, the proper directive (gathered from a known good rom I already installed) shows that the boot block goes in /dev/block/mmcblk0p8, not p5.  Might want to edit that for safety's sake.  I made a zip based on this post and it worked like a charm!  Thanks!

@PeterGrace Ah, the boot image is more than just the kernel, so that's why it's different.

Is there a way to make sure that I should use /dev/block/mmcblk0p8? I've got a Galaxy S2 from Virgin Mobile Canada (same one a Bell Canada), so it's not from T-Mobile and I have no known good ROM (except for CM7, but it writes a boot image, not a zImage). Should I assume that my Virgin Mobile GS2 works the same way as your T-Mobile GS2 or is there a way to check for sure?

@Rognon You could try running mount to see which blocks are mapped where.  Otherwise, find a ROM.

@MatthewRead mount doesn't show either p8 nor p5. Googling around seems to indicate that the zImage should be written to p5, and so does this site : http://forum.xda-developers.com/showthread.php?t=1691867. I have tried to list the content of folder mentioned in the thread, but it doesn't exist on my phone...

I've found you can use fastboot without affecting CWM.
sudo /path/to/fastboot boot boot.img

or
sudo /path/to/fastboot flash:raw boot /path/to/zImage /path/to/ramdisk.img


text:
View live GPS tracking online during race
Are there any apps that will allow me to share my current location in real time?
I'm doing a half ironman triathlon  and I want to run/bike with my phone
(GPS enabled) and share my progress in real time.  Is there any app that allows this? I'm thinking my friends/family could go to a particular website and see my progress on a map in real time.
I am aware of apps like endomondo, runkeeper, etc. but they only record GPS data.

If I enable location sharing in Latitude, that comes with Google Maps, all my friends with whom I have enabled sharing can see me either from their phone or logging in to Google Maps.


text:
What's the meaning of signal strength colors in battery usage screens?
The battery usage screen has an indicator for "Signal strength" that, instead of being blue/black like WiFi, has many colors: green, gray, yellow. What's their meaning?

Could be related: What does it mean when the connectivity icons in the status bar go white in Gingerbread?

For easier reference:

Source: XDA

I assume that you mean on the graph you get if you go to Settings -> About Phone -> Battery Use and tap the graph at the top? I have a signal strength line there, under the battery level graph that has many colours in it that's labelled "Phone Signal" on my device.
(full size)
The reason it's there is that your signal strength can have a big effect on your battery life. If you have a good, strong signal from a nearby phone mast then your phone will run it's antenna in a low-power mode, whereas when it has a bad, weak signal it will turn up its transmitter into a full-power mode to help ensure that your communication gets out. As an extreme example I know that if I forget to switch my phone into Airplane Mode before putting it in the metal lockers at my sports centre, then I often come back to only a quarter or less of battery charge left.
I can't find an official reference for what the colours mean, the feature was introduced in Gingerbread but the official Gingerbread manual barely mentions the graph and that screen beyond telling you that it exists (p.48 of the 2.3.4 manual linked), from personal experience I know that Red is a bad/no signal, but other than green being a good signal, I don't know the significance of the other colours.
Some internet forum posters suggest these meanings for the signal strength graph, which seems to match up with what I see:
Red = No data signal (or possibly no signal at all)
Grey = No or minimal (2G/EDGE) data connection
Olive Green = 3G/4G connection with light data usage
Bright Green = 3G/4G heavy data usage (streaming media, etc)
Yellow = No consensus on what this means, but it only seems to show up as a very narrow sliver, and generally only when the connection seems to be changing state (eg from data network to wifi)
This seems to agree with what I see on my phone, that while wifi is on and connected to an access point (so any data should be going through wifi and not the phone network) I only have grey, olive or red in the signal strength, whilst when wifi is off I get the greens in addition.
There is also the indicator in the Android status bar that is normally green, but changes to yellow and then red when it is extremely low, the main battery usage graph follows these three colours with what looks like the same thresholds, but that one doesn't sound like what's confusing you.

I doubt it's 3g/4g. I've got bright green here as well on a device restricted to 2g ;)

i know this might be a late reply, but, i switch off the "Mobile Data" during night, but it still shows green color in the battery usage. How is that happening?

@R4chi7 see my answer. It has nothing to do with data, it's just about just plain cell signal strength.

Black/transparent: Power off
Red: Phone is trying to find a signal
Yellow: Signal strength 0 (min)
Dirty yellow: Signal strength 1
Even more dirty yellow: Signal strength 2
Somewhat yellowish gray: Signal strength 3
Green: Signal strength 4 (max)

Source please :)


text:
How to download a Windows executable?

Possible Duplicate:
How to download unsupported files from the default browser?

When I try to download a Windows executable (.exe) from Android browser, the download starts but stops immediately with error

Cannot download. The content is not supported on this phone.

I don't want to support the content, I just want to download the file and save it on the SD card so that I can get it on my desktop computer (which has no internet connection)
Any suggestion?

Strange. I can download .exe files on my mobile (Gingerbread 2.3) using the stock browser -- just checked. Would it be possible for you to post a link to what you are trying to download?

I'm trying to download the JDK http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u31-download-1501634.html (click accept and then Win32 version)

I have a Samsung Galaxy S2, and I am wondering whether it is really the stock browser...

Just tried. Download has started normally, I'll cancel because it's too big. But it seems to work properly. I guess you should mention what device you have, so that others can test.

@MartinTapankov Sorry for the confusion, samsung Galaxy is on Android 2.3, not Android 3.2!

I don't think it is specific to Samsung Galaxy S II: I have found this string in strings.xml in Android source code.

Hmmm, you may be on to something, I have CyanogenMod 7.1, and maybe they made modifications to the stock browser to remove this restriction.

The stock browser on Android gingerbread has this limitation (see resource download_not_acceptable).
It is possible to download more file types with a an alternative browser (ex: Opera mobile) or a download manager.

This is a good idea, consider adding it as an answer to the marked duplicate -- a valid way to double up on the rep ;)


text:
Samsung S2 not deleting sent emails on gmail
I have a samsung s2 all other parts of the Gmail is syncing.  But in the sent items on my phone there are about 10 sent emails that are not on my online account (have deleted there) and when I try and delete from my phone they just keep reappearing and will not delete.
Help anyone want to clear them from my phone and not sure what is happening!

I had this issue in the past with my Samsung Galaxy S Vibrant. What I did, and it solved my problem was:

Go in to Settings -> Accounts & Sync
Select the gmail account with issue
Turn off sync for Gmail
Turn back on sync for Gmail

If this doesn't fully solve the issue, but it did for me, try the following:

Go in to Settings -> Applications -> Manage Applications
Select the All Tab
Find the Gmail Application and select it
Click on Clear Data and Clear Cache
If you have multiple accounts on the device, it may remove them from accounts and sync. At the very least, you will have to go back to accounts and sync to re-enable Gmail sync.

It really isn't that big of a deal to clear the Gmail data because it is all constantly sync'd with the Google servers. It will clear out any Gmail app settings you have set, like your signature on your phone if you set one.

That has worked in respect of the gmail App but they are still showing if look at the emails on the social hub....

Have applied this to the normal email as well and has worked and cleared everything, had to reset some things but not works better than before thanks


text:
Can I block specific apps from using GPS?
I like to leave GPS enabled so that it's ready to go when I open Maps or certain other location based apps.
However, one app that I don't want to access GPS is Facebook. There is, as far as I can tell, no option within the Facebook app to prevent it from trying to access GPS whenever it starts.
Is there another app or setting I can use which will allow me to leave my GPS enabled, but block specific apps, like Facebook, from accessing it?
Note: I took a look at this question, which suggested using Tasker to essentially whitelist certain apps. I have Tasker installed, but I can't get it to do what I want, which is essentially blacklist specific apps.
Note 2: My phone is not rooted, and I hope to find a solution that does not require rooting.
Note 3: I have Android 2.3.6

Unfortunately, I do not think you'll find a solution without being rooted.

With LBE Privacy Guard you can block positioning permissions for certain apps.
You can download it here: https://market.android.com/details?id=com.lbe.security.lite
It is important to note that LBE does require your phone to be rooted.

Also an app called "Permissions" does something similar on rooted devices. However, keep in mind that such utilities may cause apps you deny permissions to crash.

Unfortunately, LBE Privacy Guard requires a rooted phone, and mine is not rooted. I'll update my question accordingly.

I don't think it would be possible without rooting. Willing to be proven wrong though!

I understand this is an old question for Android 2.3.6, but changes in the Android OS relating to this question are worth mentioning.
The new permissions model in Marshmallow (Android 6.0) allows you to block specific applications from using location services (which includes GPS) without rooting.
Go to Settings->Apps->"Specific App Name"->Permissions. There is a toggle switch for "Location", which you can use to stop the specific app from using location services.


text:
"Show only contacts with phone number" - Filter missing in Android 4
The stock contacts app of Android 2.3. (and older versions) had a filter that displays only contacts with a phone number, accessible under Menu -> Display Options -> Only contacts with phones.
This seems to be gone in android 4. The other display options moved to Menu -> Settings, but this one is missing. It's also not under Menu -> Contacts to display.
Does anybody know if this option still exists and where it is if thats the case?

In Ice Cream Sandwich, the old Contacts app was now replaced with the People app. This new app is meant to keep you connected with all of your contacts, not just people you call, and it does so in different ways then the old contacts app, by hooking in to social networks and things like that.
The option to only show contacts with a phone number is not an option in the new People app. But I agree that it should be there, especially when you are searching for a contact when you want to make a phone call.

The new phone App in ICS does have a contacts tab of its own, it seems to show only the contacts with numbers so you might prefer to use that on most occasions.

Oh you are right. I missed this completely because it's somewhat hidden below the "most contacted" list, but it's there. Will use that, thanks for the tip.

The People app shows all the contacts regardless of what information is available. But the dialer app only shows contacts with phone numbers.

How it works is this:

If you obtain a contact straight from the menu you will see all contacts, including email addresses

But if you go to Contacts via dialer, you will see only contacts with phone number.

Here is a comment found at the top of the relevant source file for the Contacts app in ICS:

/*TODO(emillar) I commented most of the code that deals with modes and filtering. It should be
   * brought back in as we add back that functionality.
   */

So it appears it has been removed temporarily and will be available again in a future version of the contacts app.

Kudos for going through the source code. @Jeshurun


text:
Can a thief unlock or otherwise access the data on my stolen Android device?
If my Android device is stolen, will the person who ends up with it be able to get my data by plugging it into a PC and using some trick? Is there anything I can do to prevent this or make it harder?

Are you rooted?

@MatthewRead not, but can't anyone root it? Or the password is needed?

I would assume that some rooting methods don't need the phone unlocked or interaction with the phone to do their work, I believe some purely do exploits over ADB and so on.  On a Samsung phone you could flash a kernel that will automatically root the device, and then the data is accessible.

See also Just how secure is a pattern lock? which has a lot of answers on how a malicious person with your phone could access its data.

If you used full-disk encryption, then your data will be accessible until the device unmounted the encrypted disk (e.g. by rebooting) and discarded the decryption key. If you store your sensitive data in encrypted container, then your data will be accessible until the application closes the container and discarded the decryption key.
If you don't use any encryption, then your data is naked in the wild. Many thiefs are simply interested to sell the phone to make a quick buck and so will simply reformat the phone; but if the thief has a specific intent to steal your data (e.g. corporate espionage, identity thief, etc), then you can assume that they can read all your unencrypted data.
If your phone uses SD card (instead of internal memory), then getting to your data in the SD card is trivial. Getting data in internal memory took a little bit more effort, but is still relatively easy. A turned off device with full-disk-encryption is -- for all practical purpose -- a useless brick for your adversary.

In general computing, physical access to a device means all bets are off when it comes to security of data. A determined and knowledgeable thief is likely to either crack the protection, or at the very least copy the contents off the device to try and subvert encryption.
There are several security packages on the Market that can make this job a lot more difficult for the potential thief. These apps can remotely lock the device, wipe its data, and even attempt to "dial home" if the thief was careless enough to let it go online. This will deter most, but the very savvy ones.
Your best bet to safeguard sensitive data is to never have it on the mobile device in the first place. Banking apps that store your login credentials, entering credit card info into web forms on browser, etc. are all points of vulnerability.
In terms of damage control after the phone/tablet is stolen, it's always a good idea to have a list of accounts for apps that are installed, so that you can change the passwords asap. Email, social network apps, etc.

If by "subvert encryption" you mean guess passwords or such, I agree.  But from what I've read Android's encryption seems strong.

I just mean that they copy off the data to do with as they please. Besides, encryption on Android is a recent thing, and most people don't make use of it.

As the other answers already state: physical access to a device means all bets are off when it comes to security of data (from Chahk's answer). As this is already made clear enough, I will focus on some counter-measures with my answer.
One thing to make it harder was already mentioned in Lie's answer: encrypting the device will make it harder to access the data. But there are several more things. If you e.g. leave USB Debugging on, you make it easier for the thief to access your device, so it's a good precaution to keep that turned off.
Already named in several answers are several anti-thief apps available on the playstore. There's e.g. Cerberus Anti-Theft (one week free trial, then ~EUR 3) which gives you a lot of possibilities, remotely controlling your device to locate and track it, set off a loud alarm, record audio from the microphone, and even remotely wipe the phone (to destroy all stored data). Similar functionality is offered by Android Lost (available for free -- also see the video on that app's playstore page). Both are even using a "stealth-mode", so a thief can not easily find and uninstall them. A good thing about Android Lost is you even can remotely install and activate it if your phone already is lost -- as long it is still online and connected to your Google account.
Summary
So in short and summed up: Yes, a thief can get access to your data -- but there are means of making this at least very hard, or even limit the time frame he has for his "bad deed". Several things to consider on this background:

Don't store sensitive data on your mobile device in the first place, if you can avoid it. What's not there cannot be taken.
Chose secure apps which are proven to encrypt sensitive data (and not store it plain-text). See e.g. viaForensic's appWatchdog (viaForensics is a forensic company which also keeps an eye on mobile security. Andrew Hoog's book Android Forensics and mobile security gives a good insight on this topic)
Don't leave USB Debugging always turned on in your device
Consider device encryption
Consider using an anti-theft app such as e.g. Cerberus or Android Lost (there are several more with good ratings) which also uses a stealth mode and thus is not easily found and uninstalled. In conjunction with this: Act fast and wise if your device is lost (e.g. first try to locate it before doing a wipe: it might very well be you simply forgot it on the kitchen table)
Also don't forget the "obvious stuff": Don't leave your Andy alone on the pub table while going to toilet, for example :) It's harder to steal it from clothes you're wearing then when lying around or being stored in a jacket hanging on the warderobe.


text:
Is there a countdown timer in Android?
I searched for a countdown timer, and I was not able to find it. It should be there in every phone... Is it coming with the standard Clock app?

The Droid X comes with blur which come with an alarm clock and timer.

Depends on the manufacturer of the device. But most devices (Android 3.0 and up) have a countdown timer in the clock application

Until Android 4.2 there is no stock Countdown timer, with Android 4.2 there will be one.
Some alternative Interfaces like Touchwiz (Samsung Devices) have added a Countdown Timer for a long time, but stock Android (AOSP) had this first in 4.2.

I had one in 4.1 though?

see edit :) 4char

But I was using Cyanogen ;)

cyanogen is just aosp based and they introduced it before also

There is not a countdown app built in to android, but there are a ton to choose from on the android market.

There's definitely a built-in stopwatch for Android (HTC) 4. With my old Android 2.3, I used "Stopwatch & Countdown Timer". It seems complex, but it works well.

I have downloaded the free Kitchentimer from googleplay that is available for android 2.1 and up. It has 3 independant timers that can give an alert sound and/or vibrate after the timer has finished.

I have the HTC Amaze, my Android version is 4.0.3. It has a timer built into the clock screen tabs. So it may be dependent on your phone itself, not just the Android version.

There's a timer included in the standard clock since Android 4.2. However, you can't store your timers with that one.


text:
What do the "Pogo Pins" on the Galaxy Nexus map to?
I'd like to make my own doc similar to below. The official one for $90 doesn't come with a power adapter so I assume you just plug the USB charger into it. What pins from USB map to the three pins in the photo?

Someone over at AndroidCentral built their own charging dock.  According to the post,

... the pin closest to the bottom of the GN is the 5V and the pin
  closest to the power button in the GND.

It is assumed that the middle pin is for letting the phone know it's connected to the dock and launch the needed activities (enable Bluetooth, launch apps, etc.)

This is an old question, but it's the first Google result for "galaxy nexus dock middle pogo" and I felt it deserved a complete answer for those who might look into it.
I've done a lot of dev work for the Galaxy Nexus, especially with the kernel.
The kernel has code for the pogo pins and is very much in charge of them: https://android.googlesource.com/kernel/omap/+/android-omap-tuna-3.0-jb-mr2/arch/arm/mach-omap2/board-tuna-pogo.c
As others have stated, the 1st pin is GND and the 3rd pin is 5V (1st pin being the one closest to the power button). However, there's more to this than just giving power to the phone: you can actually take power from the phone. This is how docks can function without being plugged in (such as the car dock, which would need some power to run the components responsible for audio output).

The 2nd pin is tricky and confusing to me, but I'll try my best to interpret the kernel's code to explain it; feel free to look at the code yourself as well!
The middle pin does appear to do SPDIF audio output, however it first is used to identify the dock that is attached.

It sends a wakeup pulse of 100ms, and then waits for the dock (or whatever somebody may be trying to build!) to respond (I believe the signalling level is 1.8V, but double check yourself if you're concerned):

The response given determines what is connected. It expects the response to be high --> low --> high --> low.
The length of the first high determines the type of dock: desk (50ms) or car (100ms).
Then the dock (or whatever it may be) goes low, and I think how long that low is determines if the phone can draw power from the dock (50ms) or if it needs to give power to the dock (100ms). If the phone is giving power to the dock, it should be like a USB host: 5V/500mA. If it's taking power from the dock, it'd be like connecting a regular charger to the device, so it could be anywhere between 5V/500mA and 5V/1A.
Then the dock goes high again, and this determines if SPDIF audio should be output through the middle pin (50ms) or if it shouldn't (100ms).
Finally it goes low again and the identification stuff is done. There will be a slight delay before it begins to output audio however.

Google Play Store says the pogo pins are 5V, digital audio and GND.
So I guess the middle pin is the digital audio and that the phone finds out it is connected to the dock because there is a 5V tension between 1st and 3rd pin.

Have you got a link to where in the store it says that?

@GAThrawn - Here, under "tech specs".


text:
adb command to search the filesystem
Is there an adb command similar to "locate" or "grep" that would help me find a file on my Android device?
I'm curious about adb specifically, not a search app.
EDIT: "find" has been suggested, but on my ICS device:
hydrangea@turnsole:~$ adb shell find / -name *maps*
/system/bin/sh: find: not found

On my Gingerbread device it works, though. (Except I haven't rooted that device so it lacks permission.)
hydrangea@turnsole:~$ adb shell find / -name *maps*
find: permission denied

Busybox will provide grep but not locate (AFAIK).

find is available on stock devices I believe too.

On ICS at least it tells me "find: not found". :(

The find command works well in adb shell. The syntax is find /path -name file_name. For searching read only areas you will need root. If the find command is not available on your particular device, you might need to install BusyBox (search the Market.)
For example,
adb shell find / -name *maps*
will find all files that contain word "maps" across the entire file system.

If this command spams you with /somedir/: Permission denied append 2>/dev/null to the command to mute error messages.

find -> /system/bin/sh: find: not found — out of luck.
How do I install find onto a borked device which manufacturer decided to not include find into firmware?

@DisplayName did you find a way to install find ???

No I didn't. I've been through some devices dying and some OS upgrades since then. Now it comes preinstalled with the latest LineageOS builds.

find utility come with BusyBox or another 3rd parts.
To use native capabilities try (ls -R on android, grep on PC):
adb shell ls -lR / | grep 'REGEX'

"find" is a command line application which might be normally installed as:
1. a binary executable (most desktop machines)
or
2. something small doing many things where one of them is "find"
or
3. might be not available as phone manufacturers don't like users to have too much control over their phones
Most likely you have one branded (ex. samsung) ICS device - manufacturers want to have more control on the device than owner does.
Gain root there, then install busybox.
Device is most likely something called "/system/bin/toolbox" - you could execute "/system/bin/toolbox find" but it is likely to return "no such tool" since manufacturer intentionally removed it from the device.
It is however possible that your device has the feature within its bundled toolbox - but just not "symlinked"... if "/system/bin/toolbox find" would execute the feature then you might use "ln /system/bin/find toolbox" command (I might have messed the order of params). Before executing "ln ..." you must remount device in read-write mode (either by using "adb root" or "su;mount -o remount,rw /system"


text:
Adjust long press of back button to kill app in CM7?
As you may know, CM7 has this nice feature where you can hold down the Back button to kill a misbehaving app (Settings > Applications > Development > Stop app via long-press).
Unfortunately this feature kills apps too quickly for my taste; I find myself killing apps that I didn't intend to kill at least a couple of times a day. Mostly this is a mere inconvenience, but I fear that at some point I'll corrupt some file by accidentally quitting an app that's writing to it.
Is it possible, perhaps through some hidden settings file, to adjust how long the long-press for this button must be? I'd like to at least double it.

I have not ever found a way in any the settings to adjust this. I think the time is hard coded. I completely agree with you about the time before it would close, for this reason, I disable it unless I am testing something and need it for a specific test.


text:
Do external booster antennas help with 4G reception?
I have a Sprint HTC-EVO 4G.  Today it's snowing, I'm in a downtown high-rise, and I'm only getting 3G.  Would a booster antenna help (either now, or in general)?

Was there anything in particular you were looking at?

No I was googling for 4G antenna, etc... and this is what I saw: http://www.thepocketsolution.com/PSI-73175/Sprint+Epic+4G+Antenna+Signal+Booster.html?gclid=COCFyu7mxq4CFUJN4Aodt3xK-g (but it is geared for cars and car windows).  Most of the time I get 4G, but when I don't, it's very frustrating.

By the way, I took out the battery, rebooted, and the 4G came back.  False assumption on the bad weather I guess. But it still seems to make sense to have an antenna if it would help at all.

It's hard to say without knowing what specific model(s) you're thinking of, but by and large the antennas you're thinking of are probably designed for 3G/EVDO, in which case the answer is no. Sprint's WiMAX network operates on a completely different frequency than it's 3G network, so the antenna for one will not work for the other. The EVO itself has two antennas in it for this very reason. Basically, if it doesn't support the 2.5-2.6 GHz frequency range, then it won't work.
There are WiMAX repeaters/antennas out there, but I've never seen one from a major manufacturer (or Sprint/Clear). Someone over on Android Forums also managed to make his own WiMAX antenna.

I'm short-term renting a high-rise condo, so would need to have something to put in the window, if anything. Also travel a lot, so if such things exist, ideally I would need something to carry with me on business trips.


text:
How to stop Vlingo Voice Talk coming up on double-tapping?
Maybe my home button is getting a bit bouncy but I'm getting this annoying app constantly coming up, blasting out "What would you like do". O/S 2.3.5.
Is there a way of reconfiguring double-tap or disabling this app without going a custom ROM?


text:
How does Android calculate battery consumption by apps?
How does Android measure energy used by individual hardware component?
How does Android measure energy used by each individual process?

I guess how many instructions are performed in 1 sec.

@Algo: It will be totally misleading to assume a background application that uses a lot of CPU is more battery hungry than another application that uses little CPU but a lot of Wifi and GPS and display.

If so then you can get hint from the number of permissions that an application acquired.. just an idea.

@LieRyan in the battery stats, isn't wifi, gps, bluetooth, etc, calculated as their own "consumer" of the battery?

Android tracks events that affect battery usage and stores this information in batterystats.bin file. Some examples:

length of time screen was on with a specific brithness setting
which application (or non Android app process) and how long held a wake lock (prevents device from sleeping)
CPU usage per process (Android app or other process)
phone signal strength
GPS usage
etc.

Android computes how much power each Application or component (e.g. screen) uses based on configuration information included on the device by the manufacturer.
Not everything is measured so the statistics can be sometimes misleading, but it gets better with every Android Platform release.
Battery statistics can be dumped from the device using:
adb shell dumpsys batterystats

Here is interesting fragment of a post by Diane Hackborn with more details about wake locks power consumption:

There are two ways power from wake locks is computed.

On some chipsets, simply holding a wake lock needs to prevent the CPU from going to a full deep sleep. In the reported battery usage,
  this extra power use will be distributed across all apps holding wake
  locks.
Even if the wake lock itself doesn't cause power use, holding a wake lock in one app can allow other applications to run and CPU when
  they wouldn't otherwise. (For example, some app may have a { sleep(1);
  do something; } loop that wouldn't run if no wake locks are held.) To
  address this, half of the CPU usage of applications is distributed to
  be blamed on the ones holding wake locks.

can you provide sources/reference that proof your answer ?

All information is from the provided link to google+ thread by Google developer familiar with this area.

The correct command for new devices (not sure from which API) should be : adb shell dumpsys batterystats , or (in case you want it inside a file) : adb shell dumpsys batterystats > batterystats.txt


text:
Is it possible to set the language and locale to different values?
I'd like to have all the text displayed in English (US), but use the Polish (Poland) formatting for numbers, dates etc. On a desktop Linux system, I'd set LANG to pl_PL and LC_MESSAGES to en_US. Is there a way to so on Android? I see only combined language+locale setting. Note: I am not asking about the keyboard, I know can set it to use a language different from the language+locale setting without problems.

I've set my phone to English (United States), but then I also customized Date & Time to use Italian format (DD/MM/YYYY). Numbers don't seem to be customizable, plus some apps ignore Date & Time settings and use the ones from the main language, or allow to specify a format.

You can set the date and time format in the settings (system section) -> Date & Time.


text:
Using Android as network server
I want to use my Android device as a network server. In the same kind of way you would make it a Wi-Fi hotspot, but I don't want to allow connected computers to access the internet, I would like them to be able to communicate together.
Possible uses:

Playing games via LAN (e.g., Quake)
Allow computers to share files
Bonjour (Macs)
etc...

Is there any way to achieve this? Any apps out there that will set up a wireless network server?

Your device is rooted or not?

yes, sorry device is rooted.

What kind of device is it? Does it have traditional tethering ability already?

Nexus S running CM9. It does have tethering. But I don't want to allow access to the internet.

@ThomasClayson If your device is rooted, firewall is the solution... Edit IPtables to block internet access of those connections.. Done!

Could you post an answer to show me how to do that exactly please? Thank you.

Use WiFi Tether app to create Wi-Fi hotspot. It features Access Control using which you can allow/deny clients to use mobile data.

I did a quick search for "server" on the Android marketplace, and most of the results seem to be basic file servers, web servers and FTP servers. These will help with sharing files, using your Android device to store the files, but probably not much else.
Here is one that I found  that supports UPnP (Universal Plug n' Play), and DLNA (Digital Living Network Alliance),  and is designed for images, video and music, and states that Xbox 360 and PS3 are supported, although it doesn't state that you can use it for games on those consoles, and the screenshots don't seem to have anything about games.
Now I'm assuming that nearly all of these apps will require a network to be in place, that is, all devices would be on Wi-Fi with your router (your homehub or whatever you use for all your devices to connect to the web, assuming you don't have a separate modem), so I don't think that these apps will make your Android like a Wi-Fi hotspot, just a server in the sense of a central machine that stores the data that others use. The actual data connections would be via the router, just all going to/from the Android.


text:
How to find only SD card movable applications on the market?
As I do not have more free space on my HTC Desire, I am interested only in applications which can be moved to the SD card. How to find them on the market (via web interface, or on the device, does not matter) ?

The Market doesn't support this (or any search filters aside from price and "safe search", really) on either the website or the native app. It has been requested a handful of times on the Google support forums, but never really received much of a response.
AppBrain does support this, however (example search), so you could use that to search and then install from the Market if you wanted. Inconvenient, but at the moment there's not much else you can do about that.


text:
test usb functionality from the handset?
I am using HTC Desire HD, I have a terminal with root permissions.
Are there any tests I can do on the USB port from the handset side?
i.e. to make sure it exists and is functional.
The reason I am asking this is that my computer (Windows 7 64 bit) does not recognize my phone when connected,
however it did recognize another phone of the same brand (but with a different rom).

This sounds like a driver issue.
You should be able to download the HTC Sync for the desire HD and it should include all the system drivers you need to connect to the device.
I am thinking driver because if you have the drivers for "Google Experience Devices" installed on your system already, and the other device is running an AOSP ROM, like cyanogenMod for example, then the android sdk drivers will work with that ROM. The other device, that isn't recognized, is running a non-AOSP rom, it will require the manufacturer drivers for the device.
Again, I am just guessing since I am not sure what ROMs you are running, or what PC operating system you are connecting the devices to.

Thanks for your comment @Ryan, I am realy new to this whole business. Anyway - my own phone is an HTC Desire HD which I did not change its ROM in any way (AFAIK). Where can I see the version of ROM I have? I also don't know what ROM the other device has but I can ask that person. my OS is windows 7 64bit. should I have the drivers for "Google Experience Devices" installed ? (where from)?

I updated my answer to explain where you can get the drivers.

ohh... you mean HTC sync, yes, I had those installed but it seemes like there is a new version. I will try it and see if it helps.


text:
How can I make the browser remember login credentials for Google mobile sites?
The stock browser forgets the username and password when logging into mobile versions of Google sites such as Google Search and Google Tasks. Setting Menu -> Settings -> Privacy Settings -> Remember form data and Menu -> Settings -> Security settings -> Remember passwords in the browser has no effect. Checking the "Remember me" checkbox at the sites' login forms has no effect either.  How can I get this to work?
I use a Nexus S running Android 2.3.6.

Webpages can opt out of autofill; intended to be added security for banks and other sites requiring higher than normal security. There are ways to circumvent this in firefox, chrome and IE but I haven't figured out how to do it for android. Whats the origin of the android browser code base? That might be another place to look.

It could possibly be due to blocking cookies. If you don't accept the cookie it will never remeber who you are.
Check the setting for:
Menu->Settings->Accept cookies

My browser is already set to accept cookies, and it remembers the login credential of other sites.

Use an app called LoginBox. It's a browser that specialize in remembering the complete login process.

This answer might be useful if you [edit] it to add a link to the app you're recommending. Also, please confirm your relationship (if any) with this app: recommending your own app is OK on this site, as long as you're honest.


text:
Motorola DroidX eCryptfs related Sources?
I see over in this question that the Motorola DroidX uses eCryptfs to do its data encryption.
I'm trying to find the source code of the mount.ecryptfs that version of Android uses (as I am one of the authors and maintainers of the eCryptfs upstream project).
I found this site, but I'm unable to find any of the (GPLv2) ecryptfs related sources.  Any pointers?

I would suggest looking at the Motorola source for the droidx. I think this is just the kernel source, but I haven't looked through it. If this isn't what you are looking for, then I would try and get in touch with someone that is part of MOTODEV.

Hmm, well, I've scoured those.  I've seen multiple references to the DroidX using ecryptfs, but I've yet to find their sources for ecryptfs.

Doing some research in to your question I discovered the same thing. Everyone says it uses it, but I couldn't find the sources. I would try to contact motorola directly about it and see if you get a response.


text:
No access to Android Market after loading Ice Cream Sandwich
I followed the instructions on the source.android.com website to download, build, and install Android OS v4.0.3 on a Nexus S. Everything seemed fine, I could take pictures, access WiFi to surf the web, etc. The problem is that there is no Market app and I have been unable to install anything via the Market over the web. The apps I had on the phone prior to loading ICS all show as "installed" on the website but they will not sync with the device. Any time I try to install a new app, everything seems to go ok and then it says the download will begin shortly but it never does. I have tried many different things described on posts such as resetting to factory defaults, clearing cache, etc but nothing works. Does anyone know how I can load the Market app or somehow download apps from the Market to manually install?

gapps do not come packaged with ROMs (or Android Source) due to licensing issues. For instance, when you usually flash a new mod (such as CyanogenMod), you flash the mod, then you flash the appropriate gapps zip file. See @eldarerathis's answer

If you built the image yourself then Google's proprietary apps would not have been included as they are not open source. The easiest way to get them is probably to just use the CyanogenMod9 gapps package, which can be downloaded here (top of the table). If you have a custom recovery image then you can simply install the .zip file from your recovery, otherwise you'll have to manually install each of the files in the .zip (they have a folder structure that mimics your device).
The reason why the web Market isn't working is because it tries to use C2DM to push the app to the device, but this requires the Market app to be installed on the device. You cannot download the .apk from the Market manually.


text:
Prevent volume rocker from disabling silent mode
On my Galaxy S2 Skyrocket, everytime I bump the volume rocker the phone comes out of silent mode. I hate this. The only way I want my phone going into or coming out of silent mode with a hard button is by holding the power until the modal shows up. Is there any way to prevent the volume rocker from knocking the sound back on when in silent mode?

There are some apps that will do this for you:
RingGuard: https://market.android.com/details?id=com.x475aws.android.ringguard&hl=en
Volume Locker: https://market.android.com/details?id=com.hourdb.volumelocker&feature=related_apps

Volume Locker did the trick, but other frustrations with Android pushed me onto WP8.


text:
Any information on when ICS will be available for the Nexus S GT-I9020A (AT&T/Fido/Rogers)

Possible Duplicate:
When will my device get the Android 4.0 update (Ice Cream Sandwich)?

I know the version for T-Mobile (GT-I9020 or GT-I9020T) Nexus S has been available for download since December, but is there any information on when a similar update will be available for the AT&T/Fido/Rogers (GT-I9020A) Nexus S?


text:
Can I update my Galaxy Nexus manually?
I am having a problem with music playback stutter on my Galaxy Nexus, and after searching about it for a while, it seems the problem was fixed on update 4.0.4.
Unfortunately, my phone is still on 4.0.2 and no OTA Update is currently available.
From past experiences with my Milestone, updating or using a ROM that was not originally from my country (Brazil) resulted in various problems, including no 3G connection and very poor GPS signal.
Is it possible to actually update the Galaxy Nexus manually from 4.0.2 to 4.0.4? If yes, is there a way to know which "version" of the system would be compatible with mine?
Here's the "About Phone" tab on settings:

I just want to be sure, but you have the GSM Galaxy Nexus, right?

AFAIK, the 4.0.4 is currently only available for the CDMA/LTE, but someone over at Modaco has a modified version of the 4.0.4 working for GSM.
It looks like everything is working on the GSM version with this modified release. I have also read that 4.0.5 will be released next month, so you may want to just wait.

Thanks! The music bug is gone on the modified 4.0.4 GSM update. I had to flash the stock Google rom (yakju) before being able to do it though (discovered mine was yakjuvs through this app. I think that would be the biggest limitation in respect to updating different versions of the phone.

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


text:
Can I disable the camera sound in the new ICS camera app (in silent mode)?
Android got a brand new camera app with ICS. The old camera app from previous android versions didn't play a sound when the phone is in silent mode, the new one does. Obviously this can be somewhat anoying in some situations.
Can this sound be muted?
Note: I'm asking for an answer that doesn't require a rooted device. I'm aware that I can rename/delete the sound files from the system (as documented in this question), but I'd rather not root a device just for this.

As an aside, you may want to investigate your local laws, because doing so is technically illegal in some places (I know it's common in various US states, not sure about other countries). I think this is part of why the option is generally not available on stock systems, actually.

I'm living in europe (Germany to be specific). I searched about this a while ago. As far as I know there is no law regarding camera shutter sounds in the whole EU (it's illegal in parts of the US and Japan though as you say).

You may want to consider trying other camera apps.

On my Samsung Galaxy Nexus running Android 4.1.1 (Jelly Bean), the built-in camera app plays no sound when the phone is in silent mode. That might mean that Jelly Bean restores the old silencing behavior. (For those who got here through Google, you enter silent mode by holding down the power button and then pressing the Silent icon.)

Alright, I went through the sourcecode and the answer is surprisingly obvious:
Yes, this can often be muted by simply using the volume keys while using the app or adjusting the volume of the media audio channel in the preferences. The media volume is used, regardless if the device is in normal, silent or vibrate mode. But it depends on where you bought your device if this works (I guess), some devices enforce audio over a channel that can't be muted.
More (technical) details:
The camera app checks the device configuration (system property ro.camera.sound.forced) whether it should play the camera sounds over a system-enforced audio channel that can't be muted. If this setting is off, it uses the media and music channel instead.
In case that it uses the music channel, it ignores when the device is in silent mode though. This might be a bug/small oversight by the authors. This is why you have to adjust the channel volume instead.
I guess the property mentioned above is set depending on where you buy your device, since the sound is required by law in some places/countries as explained by eldarerathis in the comments.

this property is set in the build properties, and, at the very least, would required root to change the value if it is set to "true". This explains how to modify the build.prop.


text:
Code/Program Java on Kindle Fire

Possible Duplicate:
How can I do development on my Android device?

OK, so I've just got a new Kindle Fire (which I love), and I've been wondering:
Can I develop Java programs on my Kindle?
Is this even possible? Can a Gingerbread tablet do this?  I am looking for an offline solution.
Note: This is not a programming question, so it would be off-topic on any other SE site

Questions about development tools are arguably not off-topic on [SO], but you'd need to be more specific.  The duplicate should cover this though I think.

@MatthewRead: I edited the question to not be a duplicate. It is now specified towards Java, offline. Please consider reopening this question.

@Jae, the Java-centric answer that I'd give you is already represented in an answer to the linked question: Terminal IDE.  I'd suggest a tablet with Bluetooth, though, for the keyboard.


text:
Is there a way to trigger hover behavior in the Chrome Beta browser?
Is there any way to trigger the behavior that usually occurs when a mouse is hovered over an element (for example, hovering over your username at the top of a Stack Overflow site) using the Chrome Beta browser?

This doesn't help in the general case, but specifically for your name at the top of StackOverflow sites, you can tap the little down arrow beside your name to trigger the same behaviour.

One way to trigger the hover on links is to long-press the link, wait for the menu to appear, and the press the back button to cancel the menu. This also works in some other browsers.
Note that this doesn't work on all links. Just tried on the example you mentioned, doesn't work, probably because there's a slight delay between the onMouseOver event and showing the menu. But on other pages, where it's a simple onMouseOver trigger this method works.

If you're using a device (usually a tablet) with a USB port, you can plug in a mouse.
The mouse cursor will trigger hover events.

Or a wireless mouse via Bluetooth.

I don't see how the "hover" effect can be practical on any touchscreen device, regardless of OS.
Screens on most current mobile devices (resistive, capacitive) can only register touch events.  You would need to modify the OS to treat a single tap as a mouse pointer, and double-tap as a "click".  However other gestures like scrolling, pinch-to-zoom, etc. would most likely stop working with such a paradigm.
Also, most mobile versions of sites disable the fancy stuff like hover animations anyways, in order to load faster.

I'm finding Chrome on my tablet (Asus Transformer Prime) to be nearly as functional as a laptop; in most cases, I would not choose to use a mobile version of a site.   I think this will be an interesting issue for designers to grapple with -- things like tooltips and the StackOverflow user card are not available to touchscreen users, which is more of an issue for the ux site, but I was curious if Chrome had found some general way to expose this in the touch environment.

This is nonsense (or at least a lack of imagination). It's easy to imagine something like a browser interpreting a two finger tap as "hover here until I tap somewhere else". This would let mobile and tablet users get proper use of those few websites that haven't gone with the times and still rely on hovering behavior.

My phone (Galaxy Note 3) can sense when your finger is near the screen. In the stock browser it shows a zoomed window. This would be perfect for hover but does not currently work in any other browser AFAIK.