I'm looking for a way to do the following: I have a contact with 2 numbers. He sends me messages through one number and I have to reply to the other one. I want to merge the threads and have a number to send by default.
I have a Samsung Galaxy S2 with stock ROM Android 4.1.2. I use the default texting app which I think does not allow me to do this.
Mobile network operators (also: telephone companies, telcos, providers) sometimes offer low cost data packages that are usable only on the phone. Or so, they say.
How can they distinguish between a user browsing the web with a browser on his Android phone and a user using a browser on a laptop tethered to an Android phone?
In early 2012 I was in Paris and I was using an Orange mobile data package with a Nokia E51 (Symbian S60). Indeed, I could only access the Internet using the phone's browser, not from my laptop tethered to the phone. Now, I a have an Android 2.3 phone, and I am thinking about subscribing to a similar data package in Spain (operator Más Móvil).
Answer
How they detect that someone is tethering a device isn't something that network providers often want to talk about, for the obvious reason that the more consumers know about how this is being detected, the easier it is for them to find ways to hide the fact that they're doing it, and avoid the associated extra charges (1). However there are certain known techniques that will give away the fact that you're currently tethering, if your Service Provider happens to be running the right tool to check for these indicators:
Your Phone asks your network if tethering is allowed
The first and easiest method is that some phones will query the network to check whether the current contract allows tethering, and then totally disable the tethering options on the device in software if not. This generally only happens if you are running an OS version that has been customized by your Provider, example 1example 2.
Your phone tells your network that you are tethering
It's also rumoured that some phones have a second set of APN details saved in them by the phone network, when you enable tethering they switch over to using this second APN for all tethered traffic, while using the normal APN for traffic originating on the phone. However I haven't found any concrete evidence of this, other than people finding odd APNs and wondering what they're for (bear in mind that an unlocked phone bought off-contract may have hundreds or thousands of APNs stored on it, ready for use on whichever network in whichever country the eventual owner decides to use it).
Inspecting the network packets for their TTL (time to live)
Every network packet travelling across a TCP/IP network, like the internet, has a built-in time-to-live (TTL) set on it, so that in case there is a problem with that packet reaching its destination this will stop it travelling around the network forever clogging everything up.
The way this works is that the packet starts with a TTL number (say 128) set on it when it leaves the sending device (your phone, or laptop), and then every time that packet travels through a router of any kind (like your home broadband router, or a router at your ISP or phone company) that router subtracts one from the TTL (which would decrement the TTL to 127 in this example), the next router it travels through will in turn decrement the TTL again, and so on, if the TTL ever reaches zero then the router it's at discards the packet and doesn't transmit it again.
When your phone is tethering it acts like a router so, as the packet passes from your tethered laptop through your phone and onto the phone network, your phone will subtract "1" from the TTL to show that the packet has passed through its first router. The phone networks know what the expected TTLs from common devices are (for instance packets from an iPhone always start at a TTL of 64), and so they can spot when they're one less (or totally different) than they're expecting.
MAC address inspection
Devices on a TCP/IP network, like the internet, all have a unique MAC ID set on their network interfaces. This is made up of two halves, one half identifying the manufacturer of the interface, and the other half being a unique identifier assigned by the manufacturer (like a serial number). Every network packet that is sent out will have been "stamped" with the MAC address of the originating device's network port. The MAC address of your laptop's wifi card will have a very different manufacturer and serial code than the MAC address of your phone's 3G interface.
Different computer Operating Systems (eg Android, iOS, Windows, Mac OSX, Linux, etc) set up their TCP/IP stacks with different default values and settings (eg the Initial Packet Size, Initial TTL, Window Size...). The combination of these values can give a "fingerprint" that can be used to identify what operating system is running on the originating device. A side-effect of this may mean that if you're using an uncommon OS, or an OS that's similar to your phone's on your other device, your tethering may not be spotted.
Looking at the Destination IP/URL
You can learn a lot by what a device regularly communicates with.
For instance, many OSs these days do Captive Portal Detection when they first connect to a wifi network (such as your wifi tether connection), they do this by trying to connect to a known web server across the internet, and checking to see if they get the response that they're expecting. If the expected response is not received, then it's likely that the wifi connection you're on is a "captive portal" and may need you to log in, or pay, to connect to it. As Microsoft OSs (like Windows Vista and Windows 7 check with a Microsoft server by default and other OSs like Android, MacOS and so on all connect to their parent company's servers to do these checks, it can be used as a good indication of the operating system just after the initial connection is made.
Additionally, if a device regularly contacts the Windows Update servers, then it's very likely that device is a Windows PC or laptop, whereas if it regularly checks with Google's Android update servers, then it's probably a phone. Or if they can see that you're connecting to the Apple App Store, but the IMEI of the device that your SIM card is in indicates that it's not an Apple device, maybe you're tethering an iPad to an Android phone?
More sophisticated systems can look at a whole range of data seeing who you're communicating with (eg are you connecting to the Facebook app's API servers which is more likely from a phone, or to Facebook's web servers which is more likely from a PC) and add a whole load of these indicators together to create a fingerprint that indicates what sort of device you're likely to be using. Some of these fingerprints can be caught out when new device types and services come out, for instance there are reports that just after tablets with built-in 3G came out, some owners of these on the AT&T network received mails warning them that they'd been tethering when they hadn't, as the fingerprint from this new style of device didn't look like a typical phone.
(1) Obviously before trying any methods to by-pass tethering detection please remember to check your phone contract and your phone company's policies on tethering. They may have penalty clauses buried in their contract, Fair Use Policy, or Acceptable Use Policy for people who try to bypass their restrictions and limits.
I was wondering how Google Maps on my Android phone can locate me with a good accuracy when my GPS is disabled.
At first I though it was with the cell tower but I'm not sure it can achieve this precision and it is way better when the wireless is enabled (the accuracy go from 1600m to 100).
What I don't understand is that I have a dynamic IP - it's not supposed to be linked to my address. For example wolframalpha locates me with a very bad precision (the country is correct) and it's the same for all other IP location services.
How does this work?
Answer
Google and others like Apple and Skyhook build a Database which links WLAN BSSIDs to a geographic location. A BSSID is like the MAC Address of a access point that gets broadcast by that access point. It is therefore "publicly viewable" if the BSSID broadcast is enabled, which is the default for most access points. The BSSID operates on a lower layer than the IP stack; you don't even have to be connected to an access point to receive these broadcasts.
Every time you run Google Maps or Navigation with GPS and WiFi enabled and if your device is able to get a good GPS fix, the currently visible WLAN networks and your current location (the GPS fix) are uploaded to Google to build and update the database. This technique is sometimes called crowdsourcing. Every Android device acts therefore as data collector.
Since most access points are static in their position and only cover a small area - the coverage radius is approximately 100m - they are ideal anchors for a good location fix without GPS.
After each OTA Android upgrade, I get a message saying "Optimizing app x of xxx" that takes a while. The last time I upgraded, the battery ran out during the optimization process (not during the upgrade itself, which I know it's dangerous). After rebooting the phone the "optimization" process didn't carry on.
So, how can I start that process by itself without upgrading anything? (my Android is already up to date).
Answer
Go into the recovery (you need to boot the phone while pressing several buttons - you'll need to google which one is set for your device - an example would be Volume down + Home) and delete the "Dalvik cache". Then restart your phone. Now the optimizing process should start again.
But I personally recommend to not do that - it can't hurt, but if your phone works well you don't need this, because it's just like a Backup of your app installation files.
Using the following command, I managed to enable multi-user mode in an Android device that doesn't officicially support it: adb shell setprop fw.max_users 4. For good measure I also added the following entry to the build.prop file:
fw.max_users=5
There's now a Settings menu for creating additional users in my device. Upon creating a new user, I would be switched to the multi-user lock screen with icons at the bottom showing the user accounts available in the device. From there I can choose my user log-in.
Moreover, the account data of the new user survives a reboot. From this, I can conclude that multi-user mode is working.
The problem is my Android device, a media player running some version of Jellybean 4.2, normally doesn't display the lock screen. No lock screen appears when I start up the device nor after I suspend or put the device to sleep.
In fact, the only time I see the lock screen is immediately after creating a new user. Once I've logged in as the new user, I can't switch back to the lock screen because the device is configured to show only the bottom panel and therefore I have no way to click the User icon in the Quick Settings menu of the missing top panel.
It seems a bit overkill to do some low-level system hacks just to achieve the desktop Linux equivalent of Control-Alt-F8, etc. Is there a command, perhaps using some intent or activity available via the Android activity manager tool (am) that would allow me to switch between different user log-ins or at least to switch to the lock screen that would allow me to log in as a different user?
I tried Gingerbreak.apk also connecting via usb to my laptop, downloaded LG drivers, then LG Esteem Root file, but upon running the excute/Run file it says "Press Enter to begin Root"; then it says "Waiting on Device" but nothing happens after that. I turned on "USB Debugging" & "Allow Downloads from Unknown Sources" but neither method worked? Specifications: Android 2.3.4; Baseband: VM701ZV4_6170; Kernel 2.6.35.7+ lgandroid- build#2; Build# GRJ22 ; SW Version- VM701ZV4
Background: I've just become to proud new owner of an Asus TF101 honeycomb tablet, which has a nice hardware keyboard attached to it.
I do a lot of writing, and cannot find a text editing app which allows me to set text as italic using CTRL + I, or to reliably indent new paragraphs with the tab key*.
Does anyone here have any recommendations? (I'm pondering writing my own app to do this at the moment, I'm that desperate).
The google docs app doesn't support it (and at any rate doesn't work unless there's an active internet connection). I have tried various free text editing apps, to no avail. I've asked the developers behind Documents to Go if they support this, but no answer yet. Quickoffice have a feature request for it currently open. Unsure about possible Androffice support, but googling suggest unlikely.
Many thanks in advance,
UPDATE: Documents To Go does not support the CTRL + I shortcut, although italics are supported.
G
PS - I know android tablets are still in their early days, and it might be a case of waiting. The OpenOffice guys have released an ODT viewer, hopefully a potential full openoffice android app might do this.
* - the bundled productivity app called Polaris Office supports the tab key for indenting newlines, but not CTRL + I (it requires four screen-touches to turn italics on and off - OK for once in a while, not OK for frequent use)
Answer
Documents To Go is a very good app. It provides the formatting requirements you wanted and supports creating and reading Microsoft Office documents as well as Google Docs.
In the past months, I've got 2 Chinese Android cells (Froyo) based on MTK6515. They work fine but we started having lot of trouble attempting access to internet, and after a while I found out that both phones they have the same MAC address, which causes connection problems. So, I'm looking for a procedure that could change the devices' MAC addresses and solve our trouble.
I found a method which involves changing the file at /etc/wl/NVRAM.TXT, but after referencing a couple posts around the webs, it turns out my phones do not have this folder (and thus the other files inside). Any clue?
Please don't tell me a pray about that MAC addresses are burned into a chip, at least not in these devices, because I've already lost their IMEI's too (by hard reset), but I've recovered them and they're functional now.
There is a setting in Huawei phones that allow you to add applications as protected.
What is that setting mean? Are there other vendors that have a similar feature?
I've noticed that some applications by default added to protected (such as Instagram for example). How is it done? Where I can find the full list of such applications? Is this means that Huawei as vendor trusts those packages?
Answer
I have owned a Huawei phone (Honor 6) until recently so I can speak from personal experience.
Protected apps is a battery saving feature (like stamina mode in Sony phones). Apps not selected as protected apps will stop working once the screen is off and a wait duration. I discovered this when a voice recording app would stop recording after an hour of recording irrespective of the app. However, if the same app is included in the protected apps list, it would record indefinitely till stopped. Same was the case with an automation app that would work as intended only when included in the protected apps list.
And then there's the whole "protected apps" system, which requires you to manually approve each app you want to be able to run when the screen's off.
According to this Stack Overflow question, developers can't include in their manifest asking for inclusion in the protected apps list, but Huawei OS apparently includes popular apps like Tinder and Instagram (in your case).
Scoured web for a full list of such applications but no luck. Writing to Huawei is an option technically but practically, with experience, they don't bother even acknowledging your mail, forget answering.
Thanks to Happy Coder for updating and confirming that Protected apps is found under Battery manager settings.
So, yesterday my phone took a serious tumble. It is now essentially useless, as the screen either fails to turn on, or when it does, there is nothing useful to see (just lines of primary colors, mostly).
I believe (from the fact that it still chirps at me when emails come in, etc), that the phone is still functional, otherwise.
I would like to perform a full system dump, so that I can get off any files from the phone (a TMobile SGS2 (hercules) running slimrom 4.3 build 1). The sdcard probably isn't important, as I can just pull it, but the phone's own internal storage I should like to get a copy of.
When I plug the phone into a usb port, it 'mounts' the usb via MTP, and I can see all the files. Unfortunately, when I do a select all | copy | paste operation, the paste op dies before transferring all files. I've tried a couple other ADB shell operations, in hope of flipping regular USB mounting on, but nothing has worked.
Any ideas how I can get a full dump of my poor phone's contents?
Currently running a adb pull /sdcard/ ... Its copying files presently, but its too early to tell if its going to get evertying I'm expecting.
looks like its going to work...its taking a rather long time, but it appears to be grabbing everything I was expecting it to.
Answer
Not a full-fledged answer, as even an excerpt would make it a rather long post, but here are some things you could try:
An XDA article describes How To Backup and Restore using tar on adb shell. The article holds complete scripts for both. Still you should not execute them straight ahead as they are, but first use e.g. the mount command (without parameters) to make sure the mount points are correct, as they might differ between devices.
Use AndroidScreencast1 to "transfer the display to your PC". This way you see what you are doing, and might be able to backup using apps like Titanium Backup or Helium Backup
A German Tutorial at Android-Hilfe.DE (GoogleTranslate Variant) describes a tool named ADBRecovery, including download links. This should enable you to do a Nandroid backup as well as restore.
I hope one of these hints proves helpful to you.
1: original code seems no longer maintained; yankee found this maintained fork working fine 2: links to Archive.ORG as the original page is gone; you can also find it at Slideshare
I was playing around with a wireless mouse and a USB OTG cable and decided to restart the tablet for some reason (I don't remember why). After that, when the device booted I saw the setup wizard that started when the tablet was turned on for the first time.
The device now resets whenever I reboot, and I can't download & install apps from Play (error says that theres no memory), and I cannot enter recovery mode.
I recently bought a 7" Android ICS tablet as a gift for a friend. Unfortunately it's not a Store supported device, so I can't download from the Store.
There are a number of sites that allow you to download APKs, but most of the apps I want to download aren't available on them. I have a 10" tablet that IS supported and has a large number of the apps I want to provide to my friend. Is there any way to get at the APKs on the 10" tablet (without rooting it) so I can copy them to, and install them on the 7" - using the provided app installer?
Answer
You can use an app like App Backup & Restore. It allows you to select which apps you want to backup and it copies them to your SD card.
I have in my possession a G1 and a new Android tablet (the Kmart one, the Gentouch). The Gentouch uses wifi to access the internet; the G1 uses a T-Mobile cellular connection. Ideally, I'd like to somehow cause that G1 to emit a wifi access point, so that whenever the G1 and the Gentouch are in close proximity, the Gentouch can piggyback off the G1's internet connection and reach the internet itself. Assuming I am willing/able to root both devices if necessary, how would I accomplish such a task?
Answer
There are apps on the market that can do this on most rooted phone. Barnacle is pretty popular for this and people seem to like it. Actually the first review for the app is someone doing exactly what you want to do just with an Ipad. Just search for "barnacle wifi hotspot" on the Market, good luck.
I have Locked myself out of my phone because I entered too many pattern attempts. I can't sign into my Google account because my wi-fi isn't turned on. So I need to factory reset it. I'm just wondering what will I lose. My photos and videos are saved onto my phone, will I lose them? If there are any other options in getting back into my without factory resetting it, it would be greatly appreciated. Thanks By the way I have a Samsung Galaxy Xcover
Answer
A factory reset wipes the internal storage of your phone. This includes all apps, their settings, and all the files and data saved onto your internal storage. Any apps or other content you've downloaded from Google Play, you can download again (you don't have to pay again).
If you previously updated the system or flashed a custom ROM, it will still be updated or have the custom ROM (because system updates update the ROM, not the internal storage.) Similarly, if you rooted the device or unlocked the bootloader, it'll still be rooted or unlocked.
It won't erase any data from the SD card. Usually photos and videos are saved onto the SD card but it depends on the software and the device.
When I first set up my Xperia 10 (running Android 1.6) I selected a 'dummy account', not knowing that it might be somewhat difficult to change it afterwards to a real account (I wasn't warned).
I want to avoid hard resets or losing too much data. Is there a recommended procedure for this case?
Yesterday Android OS on my Nexus 5 transferred 44,7 GB (!) data over both WiFi (42,2 GB) and mobile data (2,5 GB). I have no idea why the data transfer started, and I have no idea why it stopped after one day, and I have no idea what data was transferred, and to/from where.
I haven't changed or installed anything on the phone.
Is it possible to see exactly what data has been exchanged by the Android OS and why?
I am running Cyanogenmod 12.1 on a Nexus 5. It include SE-Linux in enforcing mode and Privacy Guard. Cyanogenmod does not provide a store, so I fetched Uber from Google Play using a download service and installed it via the command line with adb install com.ubercab.apk.
When I attempt to launch Uber, it simply hangs. The screen capture is below.
When I inspect the logcat logs, it shows some minor issues. It looks like the app is not as tested as well as it could be, but I don't see any fatal exceptions. The output is below.
Its also worth noting other apps, such as Textra and Firefox, run fine when installed the same way.
How do I run Uber Rider on this Cyanogenmod/Nexus combination?
I/ActivityManager( 746): Start proc 3207:com.ubercab/u0a18 for activity com.ube rcab/.UBUberActivity I/MultiDex( 3207): VM with version 2.1.0 has multidex support I/MultiDex( 3207): install I/MultiDex( 3207): VM has multidex support, MultiDex support library is disabled
. W/ActivityManager( 746): getRunningAppProcesses: caller 10018 does not hold REA L_GET_TASKS; limiting output I/Fabric ( 3207): Initializing Crashlytics 2.2.3.41 W/ActivityManager( 746): getRunningAppProcesses: caller 10018 does not hold REA L_GET_TASKS; limiting output W/ActivityManager( 746): getRunningAppProcesses: caller 10018 does not hold REA L_GET_TASKS; limiting output W/Settings( 3207): Setting install_non_market_apps has moved from android.provid er.Settings.Global to android.provider.Settings.Secure, returning read-only valu
e. W/Settings( 3207): Setting install_non_market_apps has moved from android.provid er.Settings.Global to android.provider.Settings.Secure, returning read-only valu e. W/Settings( 3207): Setting install_non_market_apps has moved from android.provid er.Settings.Global to android.provider.Settings.Secure, returning read-only valu e. W/GooglePlayServicesUtil( 3207): Google Play services is missing. W/GooglePlayServicesUtil( 3207): Google Play services is missing. I/art ( 3207): Background partial concurrent mark sweep GC freed 1582(96KB)
AllocSpace objects, 0(0B) LOS objects, 36% free, 27MB/43MB, paused 7.948ms total 31.274ms F/Adjust ( 3207): PRODUCTION: Adjust is running in Production mode. Use this se tting only for the build that you want to publish. Set the environment to `sandb ox` if you want to test your app! D/OpenGLRenderer( 3207): Use EGL_SWAP_BEHAVIOR_PRESERVED: true E/ActivityThread( 3207): Failed to find provider info for com.facebook.katana.pr ovider.AttributionIdProvider D/Atlas ( 3207): Validating map... V/WindowManager( 746): Adding window Window{30dc474e u0 com.ubercab/com.ubercab
.UBUberActivity} at 3 of 9 (before Window{adeae23 u0 Starting com.ubercab}) I/Adjust ( 3207): Unable to get Google Play Services Advertising ID at start ti me I/Adjust ( 3207): Started subsession 3 of session 1 I/WebViewFactory( 3207): Loading com.android.webview version 39 (1636aa03d7-arm) (code 300001) I/LibraryLoader( 3207): Time to load native libraries: 101 ms (timestamps 1997-2 098) I/LibraryLoader( 3207): Expected native library version number "",actual native library version number ""
V/WebViewChromiumFactoryProvider( 3207): Binding Chromium to main looper Looper (main, tid 1) {2650a87f} I/LibraryLoader( 3207): Expected native library version number "",actual native library version number "" I/chromium( 3207): [INFO:library_loader_hooks.cc(104)] Chromium logging enabled: level = 0, default verbosity = 0 I/BrowserStartupController( 3207): Initializing chromium process, singleProcess= true W/art ( 3207): Attempt to remove local handle scope entry from IRT, ignoring
W/chromium( 3207): [WARNING:resource_bundle.cc(304)] locale_file_path.empty() I/chromium( 3207): [INFO:aw_browser_main_parts.cc(65)] Load from apk succesful, fd=57 off=46184 len=3037 I/chromium( 3207): [INFO:aw_browser_main_parts.cc(78)] Loading webviewchromium.p ak from, fd:58 off:229484 len:1089587 W/AudioManagerAndroid( 3207): Requires BLUETOOTH permission I/Adreno-EGL( 3207): : QUALCOMM Build: 01/14/15, a b0075f, Id3510ff6dc W/chromium( 3207): [WARNING:data_reduction_proxy_settings.cc(331)] SPDY proxy OF F at startup
W/art ( 3207): Attempt to remove local handle scope entry from IRT, ignoring
W/AwContents( 3207): onDetachedFromWindow called when already detached. Ignoring
W/ScreenOrientationListener( 3207): Removing an inexistent observer! W/GooglePlayServicesUtil( 3207): Google Play services is missing. I/Timeline( 3207): Timeline: Activity_launch_request id:com.ubercab time:652225 I/ActivityManager( 746): START u0 {cmp=com.ubercab/.webclient.app.WebClientActi vity} from uid 10018 on display 0 V/WindowManager( 746): addAppToken: AppWindowToken{35bf0ab2 token=Token{64a44bd
ActivityRecord{7734414 u0 com.ubercab/.webclient.app.WebClientActivity t4}}} to stack=1 task=4 at 1 V/WindowManager( 746): Adding window Window{adeae23 u0 Starting com.ubercab} at 4 of 9 (after Window{30dc474e u0 com.ubercab/com.ubercab.UBUberActivity}) I/OpenGLRenderer( 3207): Initialized EGL, version 1.4 D/OpenGLRenderer( 3207): Enabling debug mode 0 W/art ( 3207): Attempt to remove local handle scope entry from IRT, ignoring
W/AwContents( 3207): onDetachedFromWindow called when already detached. Ignoring
W/art ( 3207): Attempt to remove local handle scope entry from IRT, ignoring
W/art ( 3207): Attempt to remove local handle scope entry from IRT, ignoring
V/WindowManager( 746): Adding window Window{2a8f1ffe u0 com.ubercab/com.ubercab .webclient.app.WebClientActivity} at 4 of 10 (before Window{adeae23 u0 Starting com.ubercab}) I/Timeline( 3207): Timeline: Activity_idle id: android.os.BinderProxy@28cd19b0 t ime:652505 I/ActivityManager( 746): Displayed com.ubercab/.webclient.app.WebClientActivity
I use my phone as an extended display with x11vnc, which works as intended. The only issue is, that I have to change the IP address on the VNC client on my phone, very often. Because of dynamic DHCP, I suppose. I use a Motorola g Turbo Lineage OS 7.1.2, rooted.
Is Android capable of IP reservation? It basically assigns IP address and hostname depending on the MAC address. Or something that achieves the same.
Edit:
Is it possible to assign new static lease through an ADB command immediately?
Answer
Android uses dnsmasq as its DHCP/DNS server (up to Pie). So create the configuration file /etc/dnsmasq.conf with option dhcp-host=,(1).
Root is required to place this file. Since /etc is a symlink to /system/etc, /system partition needs to be mounted R/W. Make sure you don't break dm-verity if enabled on your device.
I am looking for a music player for my android device which has a number of specific features (such as having a play queue, lock screen controls, etc.) I am finding it difficult because there are lots of music players out there and they don't list all of their features "on the box".
For example, Double Twist has an "add to play queue" option, but it doesn't say so "on the box", so I had to download it and try it to know. I was wondering if there were any resources out there which provide complete feature lists or some other means of helping me find what I want.
The Samsung Galaxy Tab 10.1 comes with a special charger which (I'm assuming) provides a higher current output than the USB standard. Without it, the device can actually die, even if the USB cord is plugged in to a USB port (albeit a little less quickly).
I'm looking for other (cheaper) AC and car adapters, but I don't know the minimum power they need to provide to power the device. Does anyone know the minimum current needed for a 5V USB connection for the Galaxy Tab 10.1, or perhaps a link that provides this information?
Answer
This turns out to be more complicated than just the amperage rating of the power adapter.
This XDA post says that the Tablet itself may 'step down' to 0.5A charging if it cannot detect the right support in the USB host. There are some additional details in this post but I don't grok them.
That thread led me to this slashdot comment which seems very useful and knowledgeable. If I understand the story correctly, unless the tablet can negotiate with the host device, the amount of power it can draw is limited. A physical "hack" (now part of a USB standard) in the adapter can make it clear to the USB client (the tablet) that there is no host device (its a wall wart), so it can charge faster. Without the hack, the device is limited in the amperage it can use.
More details on the USB charing spec are on wikipedia.
I just verified some of this with my Samsung Galaxy Tab 10.1 and the no-name 2A USB wall charger I have. If I plug my tablet into this "unapproved" USB adapter, then I get a little red "x" on the battery charge indicator in the system tray. Additionally, I get the "media scanner running..." alert (which I think means that the Tablet thinks it might be connected to a computer). I cannot tell at what rate (2.5mA, 500mA, 2A, etc) the tablet is actually charging at, though.
If I plug the tablet into the 'approved' wall wart, I get no such red "x", nor any "media scanner" alerts.
All that said, in practice, I've found that the tablet will charge up on my no-name USB adapter. I'm not sure if that's because I tend to turn the screen off (and I don't have 3G), and thus the power draw of the sleeping tablet is less than the 500mA, or if its actually getting the full 2A.
I think the upshot is that any reputable wall charger or anything labeled as "compatible" with an iPhone or iPad will probably support the USB charging spec, and thus will fast-charge a Samsung Galaxy Tab. But I'm just guessing. It would be nice if there was an official USB logo or label for chargers that supported this mode ...
I have a few questions about normal devices (non-x86) and x86 devices:
Why, sometimes, an app that isn't designed for x86 devices works, but sometimes it just crashes when starting them?
I've seen a lot of rooting apps (e.g. Xmodgames) that don't support x86. Why is that?
Answer
The answer for questions 1 and 2 is that some apps on Android are compiled purely in Java/Dalvik bytecode, and others are compiled as native C/C++. Since Dalvik bytecode is not native, it has separate interpreters for different architectures. However, since C/C++ native apps and libraries are compiled for a specific architecture, they can be run only on the specific architecture.
Since most of the rooting apps use exploits of the Android system, they need to be compiled in C. This prevents them from being universally used, and require them to be recompiled for each architecture.
Is there a way to share the notes of Google Keep between different persons? For example, could I link the notes to the todos of Thunderbird Lightning, or can I share the notes between two different Google Accounts?
I need to use commands like iwconfig in Android, I know I have to install the wireless tools because they are not in Android by default, The problem is that I have just seen 3 chinesse tutorials that makes no sense when I translate them, and a link that downloads a directory with Android wireless tools, but I don't know what to do to get them into my device and use them.
Does Google Play offer an achievement tracking system similar to Apple Game Center, Xbox LIVE, and Steam? For keeping track of achievements, game progress, time spent in a game, what your friends are playing, etc.
Are there any other third-party alternative tracking system? with a huge base of supported games? I am thinking of something like Raptr for Desktop systems.
I want to move some apps to my SD card, and from Googling around I found that it's possible to do this if the device is rooted. How can I root my Samsung Galaxy Ace?
Answer
Samsung Galaxy Ace runs at least Android version 2.2 and is upgradable to Gingerbread, so the device already has the possibility to move apps to the SD card. Though, not all apps support this. You can move an app to the SD card by navigating to Settings -> Applications -> Manage applications and click on the app you want to move. Then you click the button Move to SD card.
If you root your device you can move apps that doesn't support App 2 SD, as well (except for launchers and widgets which must be installed on internal storage). If you are running Android 2.2 you can use the desktop program Super One Click to root. If you are running 2.3 you can read a tutorial here.
Up until now, I was always storing my new contact phone numbers on my SIM card because that way, when I buy a new phone, I have all my numbers transfered automatically.
However, it really is nice to be able to store pictures and more information next to a phone number.
I am thinking therefore, on beginning to store new contacts on my phone.
How can I backup and restore all contacts on a new phone without rooting my current phone ( which is a Samsung Galaxy S, by the way ) ?
A while ago, I posted another question here when I had plenty of free internal storage but was getting the following warning:
Low on space: Phone storage space is getting low.
The problem was apparently a bug during the upgrade to Gingerbread, and following the steps in the accepted answer to get the hotfix resolved the issue for several months.
However, recently I've been getting that same message again. Even though it complains about low internal storage, clicking on the warning brings me to a screen that shows me:
Internal storage: 348MB used, 400MB free
I'm using a Verizon HTC Incredible running Gingerbread. I have followed the steps in the other question (clearing system cache) and rebooted the phone several times. I have moved many apps to the SD card which seems to resolve the issue for a few days, but then the warning comes back. It seems like 47% full should not be triggering a low space warning (which has other ramifications, like my email not refreshing).
Any ideas what's wrong this time?
Answer
To consolidate comments:
I've found a fantastic guide to Android partitions and basics here via WIW's XDA post. /data is all your personal settings, messages, and information, while /data/data is specifically for your apps' private data. My guess is that wiping /cache as described above does not wipe /data or its child directories (otherwise you would've lost all your apps and settings).
I don't believe I've ever run against the particular error you're seeing - when mine has trouble I just get tons of force closes :-/. However, my app settings screen shows me what must be the /data usage (never close to full, numbers match /data size reported by DiskUsage) even though my apps are actually constrained by the much smaller /data/data (where I run out of room often). I think it's giving you an error because of /data/data but showing you details from /data instead. That's confusing as hell.
My dinc's /data is 748 MB and my /data/data is 149 MB. Sounds like that should be the same for yours (and others'). Until you give in to the dark side and root your Incredible (and are then able to see specific usage) you'll want to keep things below 149 MB (ish). FWIW, my biggest disk-hogs are Facebook and Dolphin Browser.
STEPS 1. Install ADB fastboot tool, Intel USB driver on your Windows machine. Check the link mentioned in Link2:Step4 for installation and checking whether ADB fastboot tool is working. I followed METHOD 1 mentioned in that link. 2. Activate USB Debugging at ZenPad (Settings->Developer Options, if no developer options, then go to Settings->About->Software information->tap build number 7 times) 3. Connect ZenPad to your Windows machine (laptop/PC). 4. Copy the SuperSU package (the zip file) to the internal SD storage of the ZenPad device. 5. Type: adb devices in windows cmd (press Windows key + R -> type in cmd -> OK) to check whether your device is connected properly or not. If connected properly you can see some key number as the output for this command in cmd. If your device is connected properly proceed to next step. 6. Extract the IntelAndroidFBRL05162015PTR package on your Windows machine. Click the launcher.bat file that is found inside the same extracted folder. Run it in cmd. Wait until it says your device is detected. Now select T2 and Enter. Wait for the device to boot into the custom recovery after about 2-5 minutes. 7. Once the main page of recovery menu has appeared on your tab, use the Volume keys to navigate through the recovery menu and power button for selection. Choose the Install option to browse the SD card and then install SuperSU zip file (file copied in step 4).
8. Once the installation is done, go back to main menu of recovery mode and reboot. 9. Done
You can see that the SuperSu app is installed in your ZenPad now. You can double check the root status by some root-checker apps available in the Play Store.
I just got a new 32GB SD card for my Nexus One. On the old one I have a bunch of apps installed and store the data there because the internal memory doesn't handle it. So now I want to switch SD cards, but how do I go about doing that without causing any issues? Do I just simply copy-paste everything, or is there another way to do it?
I'm on stock firmware on the Android and using Mac OS X Lion.
Answer
Unless you did some App2SD magic with ext4 partitions on your SD card (if you don't know what I'm talking about, you didnt), the SDCard will only have a simple FAT32 partition.
So all you have to do is copy all the data from old SDCard and to a new one and everything will be fine.
Easiest way to do it is to plug the phone in your laptop, put the card in the card reader (with help of an adapter which is usually bundled with new SD Card), copy everything over and swap the SD Cards in the phone.
EDIT: Android stores applications that were moved to sdcard in a folder named .android_secure which is hidden on OS X Finder and Linux Nautilus by default. Don't forget to move that :)
I have made several searches across many boards but failed at finding a solution for my problem yet, even though it's been reported by some.
My phone was working fine for about a month, I was using the mass-storage technique without a problem until it stopped working one day.
Now, when I plug in my phone by usb to any computer, the connection screen will not come up, the battery charging icon sometimes fails to appear as well and I can hear the computer detecting a new device but it will not recognize it.
I did a hard reset on the phone, which ended up in 2.1 instead of the 2.2 i had, and the problem persists.
I have tried everything, from usb debugging mode to uninstalling/reinstalling drivers, even tried with my friend's cable and it does the same thing...I am very frustrated!
I work at a small phone repair chain. When I'm logged into the Gmail or Inbox apps with the company's shared Google e-mail account on my private phone, my phone is listed in Android Device Manager for the work account. This allows any and all of my colleagues to Lock or Erase my phone. No thank you. My phone is an LG G4 running Marshmallow.
How can I remove (not hide) my phone from the Android Device manager for my work account and still receive e-mail on it?
Answer
As pointed out by OP signing out of work account signs out of the Gmail app and any other Google apps. So there is no way to receive work mails using Gmail or Inbox app
But you want to sign out to be outside the control of Android Device Manager, yet access company mails. For this, you would need to sign up on your device using your personal gmail account and use a browser for work account. You would need a browser that can send you notifications when mail is received on your work account.
Firefox can do this . Install X-notifier lite add-on to receive notifications. There are a couple of other Gmail add-ons but they did not get installed (you may like to try). This is a basic notifier that shows messages received in your notification tray
Snapshot on left shows add on showing up in Firefox menu and on right the notification appearing in your notification tray
This is verified by creating a test Gmail account and sending a mail to my personal (linked to Google Play) and it showed up on the notification. Further accounts are not added to Play Store or listed in the accounts section of settings as OP had commented for another solution
My HTC Magic 32a is actually running CyanogenMod 6.1 and I'd like to switch to latest GingerYoshi 1.4 with GingerBread.
I have SPL 1.33.2010 radio 3.22.20.17
The reason I want to change is because with my sim card, cmmod seems to have problems while everything was fine when I was running Original 1.5+Sense (with radio 6.35).
Now the question, in this xda thread about installing GingerYoshi 1.4, they say:
if you are on 32a new radio then download the ginger yoshi 32a new radio just flash 32a new radio
What do they mean by "new radio", can I just flash back to 1.5+Sense+6.35 with RUU and then directly flash GingerYoshi over new 6.35 radio (I believe the phone would work somewhat better with a newer radio, specially regarding problems with my sim)?
Thanks
Answer
I now have GingerYoshi 1.5 running on my HTC Magic 32a, so I'll answer my own question and explain how it went.
As for the radio 6.35, answer is YES, you can use it with the GingerYoshi for 32a new radio.
Here is how I swithed from 2.2.1 CM6.1 radio 3.22 to 2.3.5 GingerYoshi 1.5 radio 6.35
1) I reverted my HTC magic back to the stock rom 1.5 + sense, this to simply revert to the new 6.35 radio. I did the update by connecting the phone to usb and running the RUU RUU_Sapphire_HTC_Europe_3.05.401.1_test_signed_NoDriver.exe
2) Then I had to reinstall a recovery, as we have radio 6.35 we need a Hero recovery, that is amonRa 1.6.2 for hero (the 1.7.0 wont work with magic)
3) I flashed 1.76.2007 SPL
At this point only thing left is to flash GingerYoshi. From recovery, do a full wipe. (I didn't care about having an ext partition, so I left my sdcard untouched)
4) Flashing "ginger yoshi 1.5 new radio 32a.zip" from recovery
following install procedure, answering the questions in order: - no ext - zeam launcher - no swap on ext - big density
REBOOT: new HTC logo with hiding bugdroid
Enjoy GingerYoshi 1.5 and Android 2.3.5, so far everything seems to be working fine, and no more troubles with my simcard. Quadrant now gives 387 instead of 299 with CM6.1 :-)
I've downgraded from Cyanogenmod 13 (Android 6.0.1) to Android stock 5.1.1, and kept my previous mmssms.db file, but it is incompatible with older Android versions. I would like to import this database in an Android Virtual Device running Android 6.0, back it up using SMS Save & Restore, then restore the .xml file produced by that app on my device.
However, when I copy my old com.android.providers.telephony directory in the /data/data/ directory of the AVD, neither the Messenger app, nor SMS Backup & Restore see any message. The directory and its contents are owned by the radio user, belong to the radio group, and have chmod set to 771.
How can I check what is preventing the system from accessing my database?
Or how else can I retrieve my sms ?
Answer
I've finally managed to restore the contents of my previous database on my current device and I will explain how.
The idea was to copy the backup of /data/data/com.android.providers.telephony from my previous installation, to an Android Virtual Device, back it up there using SMS Backup & Restore in XML format, then restore that XML backup on my device. SMS Backup & Restore merged the messages from the backup with the current device's messages so I didn't have to merge the two databases by hand.
In my question, the AVD running 6.0.0 wouldn't read the contents of my database because it was created on CM 13 which is based on Android 6.0.1. But Google doesn't seem to provide an emulator image based on Android 6.0.1, so I still used an AVD running 6.0.0. For performance reasons I've configured it to emulate an Intel Atom (x86) CPU and installed Intel HAXM driver on my PC (I've followed this answer to do that).
The mmssms.db database holds properties about itself, especially version numbers, so I've edited them to make Android believe that it dealt with a database of a version it could deal with. I've opened mmssms.db in SQLite Expert, clicked on the "Database" tab, and in the property list, found the following lines:
schema_version
user_version
I've downgraded these to 44 and 60, respectively.
Then I transferred my backup of /data/data/com.android.providers.telephony to the AVD using adb push, after making sure that location was already empty there. Using adb shell I've set the owner and group of everything in this directory and its subdirectories to radio, and in the database subdirectory the chmod value to 660.
I've rebooted the device.
I've installed SMS Backup & Restore on the AVD through ADB. (The .apk of that app can be found on an existing device in /data/app on a device where it is already installed. I didn't bother installing Google Play Services on the emulator to get it from the Play Store, but you can do that.)
I've backed up the messages and copied the resulting .xml over to my real device, where I've used SMS Backup & Restore to restore it. Voilà.
I am a new android user. I switched from nokia to android today only. Been googling around for various solutions to transfer my sms (text messages only) from my old nokia to my new Android (Galaxy Ace with Android 2.3).
After exploring my laptop, I found the synced(using Nokia PC Suite) sms were stored in AppData as a sqlite file.
Can I transfer all these to my new Android? Any app for this?
Answer
Well I solved the problem. Documenting the solution here for future references.
Using any sqlite manager (I used firefox plugin- SQlite Manager), export the database to XML format (generally any db manager has options to export the database in csv, xls & xml formats).
If your sqlite was generated by nokia pc-suite sync, you would get an xml like:
Your message body +919203487229 1 1305483332 355940045825435 36 {c33eb602-1456-4542-a755-268dc3728638}
You have to manually write the count attribute in the smses tag. Just check the number of lines in your generated xml file & subtract 4 from it OR just write the last echoed integer by the script
Now just send this to your android & restore using the SMS Backup & Restore App. Bingo! you are done!
When i start a game it starts with gamepad controls as default, i can't play the game . How to change settings in Mobile to change input from controller to default tilt.
How do I delete a review that I have written from the Android Market?
Somewhere in Google's issue tracking software someone has raised this issue (I've lost the link, sorry), and the answer given was that there is a "remove review" menu option when viewing the app in question in the Market application. The person asking seemed satisfied, however there is no such menu option on my phone (Android 2.2).
Is there a media player that can read ReplayGain tags from the music files and adjust play volume accordingly? Also it will be appreciated if it can live scrobble playing tracks to a chosen Last.fm profile.
As a bonus: Can it display currently playing song to a bluetooth handsfree with screen, like SE MW600?
It's a long shot, but figured i'd give it a go.. I've installed the Oxygen RC6 ROM on my Telstra HTC Desire. It's pretty much perfect - better than this phone has ever been. It's fast, great to use, no space issues (you can force any app to install to the SD Card which solves my biggest gripe with the desire - minimal internal memory for app storage), and is just all round brilliant.
But there's one problem, and its a doozie. Every now and then (at least a few times a day) my phone drops its network connection. When i go into settings and try search for networks, it can't find anything.. its as if the radio turns off completely. Rebooting the phone more often than not fixes it, but still sometimes takes a while to sort itself out.
Its really annoying cos there'll be times where its off and i wont even know it.
I couldn't find an authoritative reference that explains what this setting does in my Android phone: Wi-Fi -> Advanced -> Keep Wi-Fi on during sleep.
What does this setting do, exactly?
Answer
The device goes to sleep when the screen is off and no background services are doing anything (such as checking for mail). When this happens, the Wi-Fi chip in the phone can go into a low-power state. This saves power while the device is asleep, but has some costs:-
Next time the device wakes up it'll take an extra fraction of a second to turn the Wi-Fi back on, making the tablet less response when you turn the screen on.
If the device wakes up to perform a background task (such as checking for mail), that'll take slightly longer too, and use more power. That is, the device uses less power while asleep, but waking it up costs slightly more: like the trade-off between keeping the engine in your car running, or stopping it and using more fuel/battery to restart it later.
Any apps with "push" features (using Google Cloud Messaging or similar) won't work while the device is asleep. That is, you won't get Google Hangouts messages, or notifications from Gmail, while the device is asleep.
If those costs are fine for you, leave the setting off to allow the Wi-Fi chip to go to sleep when the rest of your phone does. Otherwise, turn the setting on to keep the Wi-Fi on all the time.
I have a Telstra smart-touch Next Gen. I wanted to get rid of my google account so I went to settings-privacy-factory reset. Everything was perfectly fine until I tuned off my phone and when I tried to turn it back on. The only thing it says now is 'FTM'. I can't do anything to the screen not even turn it off again.
Is there any way that I intentionally grant root permission to some app? Not automatically via SuperSU when a specific app asks for root permission, but in a way to pick an app via some tool and grant it root permissions.
For example, I add my favourite text app to the approved list and then I can open root files via that app.
Answer
No. You should request the app developer to do so.
On UNIX like systems, permissions are managed with something called UIDs.
Every process has one and it dictates what they can access. Moreover, there are also groups that have permission that their members can use. When an app has permissions like Write to SD card they're put into a group that has this permission.
The root permissions are an exception since they are not declared in the app's manifest, but rather in its code. Root is also not a group but a separate UID (as it is a separate user) so it's not that easy for an app to use it. Apps that have root rights need to be explicitly written to do so.
The way this works is every time an app wants to do something as root, it has to request the su binary to do it instead. su will then ask the app that manages these permissions (e.g., SuperSU) whether the app is allowed to gain root access. If it isn't, it'll prompt you to allow or deny it. Then the action is carried out as root, not as the app user. These actions are not an integral part of the app but rather an external executable.
While theoretically it is possible to add this to an app, this would be a non-trivial process requiring knowledge of writing smali code, which is the internal format of the Dalvik virtual machine (the part of the system that runs the apk file) called smali. And even then, there'd be a huge security risk if the app allows other apps to access it: it wouldn't know how to keep the privileged root access separate from its normal access. So in reality this isn't really feasible.
does anyone know if the standard Android browser that comes pre-installed on the cell phones has its own name? Every browser on the market has one - Safari, FF, Fennec, Dolphin, etc. But the "standard android browser" seems lacking it. Or I'm wrong?
I'm writing small blog posts about JavaScript and Android and I'm really tired of writing "Standard Android browser works differently from Fennec" instead of "Foobar works differently from Fennec"
Answer
Not as far as I know; it's name is just "Browser". To distinguish it from the other browsers, sometimes I call it "stock browser".
btw, it's called Firefox now (or Firefox Mobile), and no longer Fennec.
Recently I created/removed some folders on Outlook desktop app.
When I synchronized my corporate account by manually refreshing under the folders screen, it didn't bring the new folders, nor removed the removed ones.
Is this a known bug?
I have a Motorola Milestone, and I remember in the past, at least the folder addition worked.
Answer
I ended up deleting my account and registering it again, and it worked, but this is a workaround.
As pointed out by other people, the native Mail app is buggy, so I started evaluating Touchdown.
I have a Samsung Galaxy Win phone, rooted and with adbd insecure installed (using the link here).
This is the information shown by the USB OTG Checker app:
I have added the android.hardware.usb.host.xml file into /system/etc/permissions folder and the USB-OTG app says that my phone is now OTG capable (before, it showed that OTG is not supported only due to the missing xml file).
When I connect OTG cable and a USB drive, nothing happens at all. Same with a USB mouse. The USB Device Info app says nothing is connected. It's possible USB OTG hardware itself is missing from this phone, but it is very difficult to find any information about this model at all (it was really difficult to get this phone rooted in the first place).
Is there a definitive way to know whether the phone supports OTG or not? Is there a Java function that I could call which would confirm OTG, or is there any function that would crash if OTG is not present at the hardware level?
EDIT 1:
Output after doing the procedure mentioned in the comment:
"Do with root privileges: cd /sdcard && find /sys | sort >1. Connect USB. Then: find /sys | sort >2 && diff 1 2. This will let you know how kernel treats USB hardware."
I would like to be able to set my phone into Guest mode so people using it will not be able to "abuse" it while I give it to them.
Example of usage:
Child mode - prevent editing settings, making calls, installing applications etc.
Friend mode - prevent viewing text/email messages etc.
etc.
I have the MIUI ROM which has a pre-defined Guest mode - I'm looking for something which is fully/partially configurable - is there something like that?
Answer
You might want to check for "app lockers" like e.g. App Lock, which allow you to password-protect apps, or use even more restrictive child protection apps like e.g. Child App Protector, which can sandbox an environment (also called "Kiosk mode").
A somehow "special" solution would be App Locker II: Fake Crash, which in "protected mode" displays a fake force-close message so people do not get the idea you protected something.
The green robot smilies are incredibly irritating, IMO.
I'm open to suggestions of other SMS apps that have different emoticons as well, but the few I've looked at seem to just skin the standard SMS app, emoticons and all.
My Samsung Galaxy S6 indicates constantly the wrong direction in Maps, compass apps, etc. as it shows the North always towards the left side of the phone. (This might be a long-term effect of the magnetic phone case.) Compass calibration is reported as "very good" and re-calibrating the compass by moving the phone in a 8-figure pattern doesn't have any effect.
Is it possible to somehow reset the compass calibration to factory settings?
Answer
Thankfully, it looks like removing the phone from the magnetic case and re-calibrating it fixed the issue.
I've thrown the magnetic case on the bottom of a closet and I'm never using it again.
I have searched and searched for a solution to this problem, please help. I am using a Samsung Galaxy S4 with Android 4.2.2 along with the Chrome browser.
Click "Download and Print" to start download of PDF file.
Notice notification that says "Starting downloading..."
Open notification bar and see that the download has completed.
Click the downloaded PDF file and receive "Cannot open file" error message and the notification bar closes.
Long clicking the downloaded PDF does not offer options for choosing which app to open the file. I have installed Adobe Reader and using that to navigate to the downloaded file will open the file just fine. Same with Polaris Office. I would like to be able to open the PDF from the notification bar. Alternatively if I could view the PDF directly in Chrome, that would be acceptable.
Answer
It's a combination of a PDF and a browser issue. Some PDFs work fine while others do not across different browsers.
Downloading the PDF you mentioned, here are the results using different browsers:
Chrome: Cannot open PDF from notification
Boat Browser: Cannot open PDF from notification
Dolphin: Can open PDF from notification
Downloading a different PDF from another site, here are the results using different browsers:
Chrome: Can open PDF from notification
Boat Browser: Can open PDF from notification
Dolphin: Can open PDF from notification
UPDATE 2013-10-11: According to Scott's findings, this is a PDF issue. The Content-Type header of the problematic PDF is application/x-download, while the working PDF is application/pdf.
If you control the server which is serving these PDFs, you can switch the Content-Type header to allow it to open in all browsers. PHP example:
I know the below example is of a custom home screen app, much like Yahoo Aviate, but I'd just like to place custom designed buttons (like the "Attractions" button in the image below) or images on my home screen which links to websites that I specify links to. Is there an easy way to do that?
Answer
When I wanted to do this, I found the available apps sorely lacking, so I wrote a home screen widget which can do this. The image can be a static one, or you can refresh it from the Internet periodically (e.g. from an RSS feed). You can set it to open a website when clicked, or launch an app of your choice (amongst other things).
I have a Motorola Moto E (Gen 1). I've observed that the gallery app from Motorola takes up 50.13 MB under 'Data'.
My question is: Is it safe to select the 'Clear Data' option? Will I lose the pictures stored if I click on it?
Answer
You will not lose any of your photos, if CLEAR DATA operation is performed, it is completely safe to do so. This just means that your preferences have been reset and the cache has been cleared.1 Cache is generated only for providing fast access to gallery files.
When you restart your gallery after this operation, it'll take some time to load and it will once again show you how to navigate through the Gallery app.
1: Pressing the Clear Data button automatically clears the cache too. This is can be seen on the screen right then because when you press the Clear Data button and once the data is cleared, you will notice that under the Cache section, Cache shows 0.00KB and the Clear Cache button is disabled too.
It is nothing new that one can use multiple Android devices with a single Google account. Switching on a new device for the first time asks whether one wants to store one's data with Google, which then would always sync "some stuff" to the Google servers, basically
some application data (if the apps support it explicitly)
Wi-Fi passwords
browser bookmarks
a list of the apps installed from Google Play
words added to the dictionary used by the onscreen keyboard
most of your customized settings
Details might be found in the Google Dashboard. Relevant questions here covering those issues include:
The Developers API on Google Backup gives some further insight on how the backup stuff is supposed to work (and several questions here show how it really works -- that is, sometimes it does, sometimes only partly, and sometimes not at all). Aside from reliability and the fact that not everybody wants his private data in the cloud (and even mentioned API reference2 warns: Android makes no guarantees about the security of your data while using backup. You should always be cautious about using backup to store sensitive data, such as usernames and passwords.), my main question is:
Having backed up data from multiple devices using the same account:
what would happen to a factory-reset device being used that way before? Would it be recognized, and have only those things restored which have been used on it before? (device-identification could e.g. take place e.g. via IMEI (but not via the Android_ID, as that might be gone with a factory reset) -- and this could be the reason for the behaviour described in Nalum's answer)
what would be restored to a (new/factory-reset) device you just initialize for the first time with this Google account? (if devices would be identified with backups in the Google account used, this could trigger a special action for "new device", e.g. "restore all, device changed!" -- or "restore all from the no longer connected device X, as it was probably replaced!" -- but stick to "restore only what was on that device" in case of a factory-reset)
The deal is: If one has multiple devices, they are often used for specific issues, so one does not want everything on all devices. As I've seen no way to chose which data to backup (e.g. to exclude those "sensitive data" we have been warned about: WiFi passwords would belong to that category), I assume there's no choice on restore either? So how is this handled?
Answer
Android's backup service has a concept called a set: the set of all data backed-up from one device (on one transport, but that's a detail). Each set is identified by a unique string, such as the IMEI on the device. When an app (or the list of installed apps) is backed up, its backup data go into the set associated with the device it's being backed up from. All the sets are still specific to the user's Google account. If you wipe your device and sell it to someone else, he won't be able to access that device's set unless he can log into your Google account.
When an app is installed, or a device has its list of apps restored, the backup system first looks in that device's set for backup data for that package. If it doesn't find any (either because it's a completely new device with no backed-up data, or because that package has never been installed on that device), it'll expand the search to other sets. (If there's a choice, it'll use the last set that was used for a full-device restore.)
Thus, when you set up a new device, it'll restore the list of apps from an old device's backup, and restore each app from the old device's backup. If you had an app installed on one device and you install it on another device, the app will be restored with its data from the old device. In either case, the data are now backed up into the new device's set, which means that the backup data from the two devices are separate from now on.
After you factory-reset a device, it'll restore from that device's last backup if there is one, and failing that, from some other device's backup if there is one, but it will start to create its own set from then on. That's why Nalum's two devices don't see each others' backed-up apps: they're each restoring from their own last backups.
Source
This mechanism doesn't have any user-facing documentation, since it's supposed to automatically do the right thing, but the code is available.
As Izzy found, the bmgr tool gives you some control over this process. It's intended as an aid for programmers to help test and debug the backup integration in their apps. You can use this tool in an adb shell to trigger backups and restores of chosen packages, wipe packages' backed-up data, and even a whole-device restore.
Don't try to use it in an on-device shell except as root: you need the system-level android.permission.BACKUP to do anything interesting with it.
You can make an app update its backed-up data immediately:
bmgr backup com.shadowburst.showr
bmgr run
(or whatever the app's package name is). There's not normally any need to do this, as apps request their own backups whenever their data changes, but this lets you work around a badly-written app. To restore one package from the backed-up data it would choose by default:
bmgr restore com.shadowburst.showr
but again, this will only do what the device would do on its own, so you shouldn't need to use it. Note also that the device already needs to be installed to make this work.
Now for the stuff that the backup system won't do on its on. To see what sets of backed-up data are available:
The 64-bit hex number on the left is a token. You'll need this in a minute. The thing on the right is a (relatively) friendly name for the device that owns the set. For example, manta is the code name for the nexus-10; TF-101 refers to the original asus-eee-pad-transformer. Once you've figured out which set you want, you can restore an app from that set using its token:
You can add more package names to the end of the command to restore several packages at once, or you can specify no package name (just the token) to restore every app with data in that set (that is, it does a full-system restore).
Finally, you can wipe an app's data from the current set:
bmgr wipe com.shadowburst.showr
This will make its next backup operation start from scratch. This might be useful after uninstalling an app, if an error in the app corrupted its backup data and you don't want it restored.
You can't make a device start writing into a different set, nor can you wipe a whole set.