Is there anyway to move apps and data from regular android phone to xiaomi? Helium back up doesn't seem to work for xiaomi at all.

Anyone ever did restore helium back up to xiaomi?

What are the other alternatives? Google play restore doesn't seem to work either.

Note: I do NOT need to back up the APK. What I mainly want is to back up content of chat applications like wechat, whatsapp, etc.

Yes there is an app called Mi Mover which helps to transfer data from one Android Phone to a Mi phone. Users can refer Xiaomiadvices for download links and tutorial on how to transfer data using Mi Mover app.


How can I get the history list of times I started using an application? I want all the timestamps of every time that an app has started running.

I tried searching in the Play Store but I didn't find one. I downloaded an app called AppUsage which shows the Last Launched timestamp but I want all the timestamps

The Android system stores statistics on this, which on most devices can be accessed via a hidden menu:

Open your dialer
Type *#*#4636#*#*
A menu will open. The 3rd entry should read "Usage stats" (or something similar). Tap this.

You should see a list of your apps, which tells for each app how often it was started, and how long it ran. Using the drop-down box on top, the list can be sorted by usage time, usage count, or app name.

Remark: AFAIK this list will be reset when you restart your device.

Edit: In case your device provides no dialer (thanks @ce4 for pointing out my lapsus), it will require some searching to find the appropriate menu, but it's doable. Some launchers (e.g. Apex Launcher) provide the possibility to create shortcuts to "activities" (rawly: screens provided by apps). Long-tap a free space on your homescreen, then select "shortcuts", then "activities". Now scroll through the quite long list to find it. On my LG Optimus 4X the activity is called "Test" and has a "Gear" icon (same as the "Settings" app has in this menu), so that's the first place to look for: scroll to "Settings", open the drop-down, look for "Test".


Can I install a Micromax Canvas Juice ROM on a Micromax Bolt? actually I want to install a Samsung galaxy s5 ROM on my micromax bolt a068 but I was not able to find such ROM for my device on the internet but now I found a s5 ROM for micromax canvas juice ant this device is almost similar to my device,only one the processor is not same I have a 1 GHz processor and it has a 1.3 GHz processor.
so my question is that can I use that ROM for my device. is it safe to do so.
 thankyou

No, you can't use a ROM for a different device. The ROM needs to be for the same device. In most cases, the flashing tool will detect that you're using the wrong ROM and stop you, but in some cases, or if you disable the warning, it will simply brick the device.


Prevent Samsung's stock Messaging app from converting textual emoticon to emoji I'm using Samsung Galaxy S8+ on Android 7.0 Nougat. When I send a classic emoticon in the text on the stock Messaging app, like one of these:

:-)
;-)
:-P

they will be displayed as an Android head, similar to one of these:

A couple of questions about this:

Is this just something that happens locally on my phone, or is the recipient seeing the same thing?
How do I disable the function in my default SMS app?

I personally find it a bit annoying that the conversion only appears after the message is sent. So, I have no way of knowing that my textual emoticons are going to be supplanted during composition.

Please note: I'm not interested in using a third-party (non-Google/Samsung) SMS app, and I don't want to root my phone.

Open the message app, then back out of any open text message until you get to the message history list. Open the menu from the top-left icon, scroll down and select "Settings." There should be an option titled "Enable Smart Emojis." Turn that off and hopefully this fixes your problem.


What's the most complete way to erase all the data from my phone so it cannot be recovered? I just got my replacement Droid and will be sending my current Droid back to Motorola.  I'm sure they are going to refurbish it and resell it.  I've backed up everything and I'm going to be keeping my microSD card, but how to ensure that all the data is completely wiped off the internal memory so there is no chance that it can be recovered by someone else?

Keeping the microSD is probably the main thing, so since that's the plan already it's just the phone to go.

I couldn't swear to this, but I used it when selling my g1:
uninstall everything - except astro file browser or similar
Use astro to wipe out any app related folders
remove astro
Use the "factory data reset" (on 2.2 its under Privacy)
Power up and check it's greeting you as a new user
Power off
Remove sim card
Power up and check it does even less
Power off & send


Is it safe charging a Galaxy Nexus through a USB 2A port? This is a newbie question. While travelling, I need to recharge my Galaxy Nexus and my digital camera, both of which are meant to be charged through a micro-USB port, ie. 0,5A.

To reduce charging time, I have an 1A AC adaptor but it only has a single USB port.

Google shows a number of two-port AC adaptors:

one port is 1A, the other is 2,1A (it looks like Apple devices expect 2,1A)
this one delivers 2A when using a single port, but 1A when using both ports

In case I only need to charge a single device, is it safe to have it fed 2 or 2,1A? I read that a device only uses the intensity it needs, but will it fry if it's fed too much intensity?

Thank you.

Yes, it is fine to charge a device with a higher current charger.

You can think of current like the device pulling rather than the charger pushing.  The device will only take as much current as it wants regardless of how much the charger is capable of supplying.


Android phone slowly charging message I purchased a TCL 10L phone two days ago. To my surprise when I plugged it, the phone said "Fast Charging" and it charged very fast. People on YouTube say that it does not support fast charging. Anyway, on next day, when I emptied the battery, I plugged the charger in. It said something like slowly charging. I panicked and I removed the plug and plugged it back in. It said fast charging like the first time and is currently charging.
I am worried. Is the device displaying the slowly charging message normal? I have 1 day left to replace the device if there are any issues. Though, I am not sure if this is normal or not. The device does not have any faults so far. So, I would risk getting a new device with the same issue and more issues. The port is USB-C if that matters.
Regards and thanks.
Edit: I unplugged the charger at 97%. Then, replugged it. Now, it says "Charging" only. I tried unplugging/replugging two times and still "Charging" no more fast charging at 97%.

"Slow charging" usually means that the phone wasn't able to confirm that the power source is capable of providing more voltage than the original USB spec allows. This usually happens when the phone is connected to a computer or the cable didn't go all the way in and USB data lines don't contact well. If it doesn't happen too often then it's normal.


Mail app stuck at "in progress" I'm trying to configure the mail app in Android 4/ICS with my IMAP account, but I get stuck at "in progress" after setting up the SMTP server.

These are the exact steps I'm going through:

Open the mail app.
Go to settings.
Click the plus sign in the top right hand side corner.
Enter my email address and password. Check "Push notification" and "Send from this account by default". Click "Next".
It says "Retrieving account information" for a while before giving up and asking me "POP3 or IMAP account?" I choose IMAP.
I enter the correct IMAP server name and check "Use SSL". The port changes to 993, which is correct. I leave NTLM authentication unchecked.
I enter the correct SMTP server, which just happens to be smtp.euromail.se. I leave the port at its default of 25, no SSL, no authentication.

Now it just sits there saying "In progress..." forever. I've tried starting over several times, but it always chokes at the last step. How do I solve this?  These same settings work just fine in K-9 Mail.

Open Email.
Enter your email credentials (the address and the password).
Choose Manual setup.
Choose IMAP.
Enter server settings.


Is my Samsung Galaxy Tab using wireless or 3G? I recently got a Galaxy Tab #G from Verizon, but I'm cheap so I only got the 1GB data-plan.

How do I know if the Tab is using the wireless connection I'm connected to, or if it's still trying to use 3G to load data?

Is there a setting, or maybe a free app that I can get to tell me what apps are using what connection?

I haven't explored much on the device itself, so there may be something built-in that I just haven't found yet...

You could just check the logo on the top bar? On the right you have time, battery, signal and either g/3g/h or the wifi logo.

this image (random googled) shows the tab with the wifi logo
while this rather bad (also random google) image shows it with 3g


Building ROMs & Kernels? I've been using customs ROMs and Kernels on my GS5 for a while now, but I want to get a clear explanation about how it works. Here are a few questions:

What is 'building' in Android? I heard that the build system is different from other Linux systems.
What's the difference between a ROM and a Kernel?
Is the 'ROM part' and 'Kernel part' separated? So, can I build them separately and install them separately?
How do I add device drivers(such as WiFi dongles) to my Kernel?
Inside a custom ROM zip file, is the Kernel included alongside with the ROM?
Are kernels compatible with different ROMs? (E.g. Using a Kernel built from the official stock sources on CyanogenMod)

These may be very newbie-ish questions but I'm really, really curious.

1) Building in Android could mean:
 - building a deliverable in the android build tree
 - building a deliverable on an android platform having build tools installed
 - building the AOSP (Android OpenSource Project)
A little bit more context may help. According to the following question 'the build system is different from other Linux systems' it could be the AOSP one. Actually Android is a distro for phone. Then building an android firmware for a mobile platform is equivalent to building a linux distribution for a desktop computer. You build the bootloader, the kernel, the root filesystem and some extra deliverables (ex. recovery filesystem that is a special android system, vendor filesystem image, SDK, NDK, Android CTS, etc...). The way to build all this is different from any other existing build system. All this is very well documented in source Android web site Android Source web site. Have a look at it :)

2) A ROM is not a very precise term. It could mean several things. Generally ROM designates the SYSTEM part of the android complete firmware for a mobile platform, the kernel being another part of this firmware. But sometimes, a ROM contains the whole: the SYSTEM, the DATA, the BOOTLOADER, the BOOTLOADER Params, the RECOVERY and the KERNEL part.

3) If ROM designates the complete firmware, Kernel is part of it, then kernel is included in ROM and build of ROM => build of kernel. If ROM designates the SYSTEM part of android, then both are separate and they can be built and installed separately.

4) Android is a mobile platform and as such runs on phones. Installing device drivers is possible but is a little bit complicated as it greatly depends on the hardware platform design. For reference boards (development platforms), these procedures are well documented by manufacturers, allowing developers to do this by themselves. For a closed platform (as a HTC or SAMSUNG phone), the documentation is far more difficult to obtain (most often it requires at least a NDA, and sometimes no documentation at all is available as it remains company confidential informations).

5) I assume that, by ROM zip file, you mean the OTA update package. This package may contain anything the platform need to update and this includes (but is not limited to) kernel, bootloader, radio firmware, TEE firmware etc. These packages are based on a scripting language (named edify) that allow to do some very complex operations for updating.

6) Kernel is linked to the hardware platform (a phone <=> a kernel). However some SYSTEM may requires some specific features to be enabled at kernel level. Then generally yes, kernels are compatibles with any SYSTEM partitions (assuming term ROM is used here with the meaning of the android SYSTEM partition).

Hope this helped ;-)


Can I get a shortcut on home screen to open gmail with a specific search string? I can add a shortcut/widget to home screen to directly open a particular label in Gmail app, but I want a shortcut to open Gmail with the results of a search string loaded.

I can't do this with gmail filter and a label because I intend to use is:unread in the search string.

So, is this possible? If so, How can I get this?

Not for the GMail app (on non root). If you are willing to use online, you may be able to use some sort of widget that links to the search query (just search it up and copy & paste).


Downloads from my mobile not appearing on computer - Samsung Galaxy I have connected my mobile (Samsung galaxy) with my HP laptop (Windows 7) and clicked "Open device to view files".

I click "Downloads" - that is, what I have downloaded on my mobile - then "videos".

But to view the videos it shows "copying..."

Have the videos been copied on my laptop? If 'Yes', where can I find them?

It does that because it is copying the file via MTP. If you want to view the files on your computer it would be far easier and faster to simply copy them to your computer from the mobile. Each time you open a file from your mobile through your computer it will copy them which takes time.


Dual SIM: Disable telephony features on second SIM I have a Samsung Galaxy S Duos 2 (GT-S7582) with two SIMs. I'd like to use one of those SIMs for everything telephony related, the other SIM for everything data related. I managed to set the first card to be the default SIM for outgoing calls, and I deleted the APN for the first card so that only the second SIM is used for data.

However, I still receive calls for the number of the second SIM. I also get the choice to call using the second SIM, which I do not want.

How can I disable receiving calls from the second SIM? How can I fix telephony/data even harder to the individual SIMs?

Android version: 4.2.2

EDIT: As a first workaround, I disabled the default ringtone for the second SIM. This way only the display lights up, which is easy to ignore.

You can achieve this by applying call barring on the SIM.

Although I know this is a different Andriod version, I am sure you will find something similar to this on my OnePlus 2.

  Phone app > Settings > Call settings > SIM 2 > Call barring > Incoming call barring


Check what storage an app uses? Is there a way to check what storage a third party application is using? i.e  which of these it uses?

If you are rooted, this is quite easy to find out.

First you need to find the app's package name, e.g. com.swype.android.inputmethod for Swype, or com.google.android.apps.maps for Google Maps, for example.  You can usually search for the app in Android Market, and the link will contain its package name, e.g. https://market.android.com/details?id=com.google.android.apps.maps would be the link to Google Maps.  Usually the package names are descriptive enough that you can simply guess which app they represent just by looking at it.

You can do a few simple ls commands in Terminal Emulator or ADB shell to find out the app's name, and where it's stored.  However, you will need to have root access to the device since app and data storage is protected.

Pre-installed apps are generally located in /system/app directory.  Use the command ls -l /system/app/ to find how much space a particular system app is taking up:

ls -l /system/app/Browser.*
-rw-r--r-- root     root               418098 2011-06-26 01:05 Browser.apk
-rw-r--r-- root     root               472760 2011-06-26 01:05 Browser.odex

On most Stock ROMs you will see an .odex file along with a .apk file for each app - those are pre-compiled binaries optimized for your given device.  You cannot remove them.

3rd-party apps are installed to /data/app or /data/app-private directories.  Command ls -l /data/app/[package_name_here]* should return the amount of space taken up by this app on internal memory.  For example, here's the output of looking at Google Maps apk:

# ls -l /data/app/com.google.android.apps.maps*
ls -l /data/app/com.google.android.apps.maps*
-rw-r--r-- system   system            6330104 2012-02-04 09:01 com.google.android.apps.maps-2.apk

The app data and settings are located on /data/data/ partition.  There you will find a directory for each installed app, e.g. /data/data/com.google.android.apps.maps/ for preferences and settings related to the Google Maps app.  Again, ls -l /data/data/com.google.android.apps.maps/* will return a listing of all files with their sizes:

# ls -l /data/data/com.google.android.apps.maps/*
ls -l /data/data/com.google.android.apps.maps/*
-rw------- app_189  app_189              3783 2012-02-07 11:29 mobilemaps.clients.google.com.443
-rw------- app_189  app_189                37 2012-02-01 16:14 nlp_GlsPlatformKey
-rw------- app_189  app_189               208 2012-02-07 11:21 macs
drwxrwx--x app_189  app_189                     2012-02-01 16:14 webviewCache
-rw------- app_189  app_189              2450 2012-02-07 11:21 nlp_state
drwx------ app_189  app_189                     2012-02-01 16:14 selectors
-rw------- app_189  app_189               290 2012-02-07 11:21 nlp_devices
drwx------ app_189  app_189                     2012-02-01 16:14 models
-rw-rw---- app_189  app_189             18432 2012-02-03 13:29 google_analytics.db
-rw-rw---- app_189  app_189              5120 2012-02-07 10:38 google_latitude.db
-rw-rw---- app_189  app_189              6144 2012-02-01 16:14 webviewCache.db
-rw-rw---- app_189  app_189              5120 2012-02-05 17:27 local_active_places.db
-rw-rw---- app_189  app_189              4096 2012-02-05 17:27 da_destination_history
-rw-rw---- app_189  app_189              5120 2012-02-05 17:49 LayerInfo
-rw-rw---- app_189  app_189              5120 2012-02-05 17:26 search_history.db
-rw-rw---- app_189  app_189              6144 2012-02-03 13:29 userfeedback.db
-rw-rw---- app_189  app_189             14336 2012-02-01 16:14 webview.db
-rw-rw---- app_189  app_189                38 2012-02-07 11:13 DATA_SYNC_DATA_LOCAL
-rw-rw---- app_189  app_189             26756 2012-02-01 16:31 DATA_PHOTO_145479516184369608
-rw-rw---- app_189  app_189             26756 2012-02-01 16:31 DATA_PHOTO_4406538396446325405
-rw-rw---- app_189  app_189              1813 2012-02-05 13:48 DATA_PROTO_CLIENT_SAVED_PHOTO_CACHE
-rw-rw---- app_189  app_189               338 2012-02-06 23:41 DATA_TILE_HISTORY
-rw-rw---- app_189  app_189                12 2012-02-05 17:49 DATA_SAVED_REMOTE_ICONS_DATA_BLOCK
-rw-rw---- app_189  app_189             36580 2012-02-01 16:14 DATA_RemoteStringsBlock_en
-rw-rw---- app_189  app_189             26756 2012-02-01 16:31 DATA_PHOTO_240647554975296207
-rw-rw---- app_189  app_189             26756 2012-02-01 16:31 DATA_PHOTO_443613581827136957
-rw-rw---- app_189  app_189              5620 2012-02-05 17:49 DATA_SAVED_BGFS_3
-rw-rw---- app_189  app_189                57 2012-02-05 17:49 DATA_STARRING
-rw-rw---- app_189  app_189               573 2012-02-05 10:04 NavZoomTables.data
-rw-rw---- app_189  app_189             26756 2012-02-01 16:31 DATA_PHOTO_-7991748045000310303
-rw-rw---- app_189  app_189               217 2012-02-05 15:29 DATA_LAYER_4
-rw-rw---- app_189  app_189             26756 2012-02-01 16:14 DATA_PHOTO_-4352347968798340772
-rw-rw---- app_189  app_189             26756 2012-02-01 16:31 DATA_PHOTO_-1960244636679913737
-rw-rw---- app_189  app_189             26756 2012-02-01 16:31 DATA_PHOTO_7546641620697631512
-rw------- app_189  app_189                34 2012-02-07 11:21 nlp_clts
-rw-rw---- app_189  app_189              2492 2012-02-07 11:30 DATA_location_history
-rw-rw---- app_189  app_189                11 2012-02-01 16:14 DATA_LAYER_0
-rw-rw---- app_189  app_189              1186 2012-02-01 16:14 ZoomTables.data
-rw-rw---- app_189  app_189                11 2012-02-05 17:49 DATA_SAVED_BGFS_EXTRA_3
-rw-rw---- app_189  app_189             18994 2012-02-05 17:49 DATA_PROTO_SAVED_CATEGORY_TREE_DB
-rw-rw---- app_189  app_189               247 2012-02-05 17:49 event_store_v2_driveabout
-rw-rw---- app_189  app_189              5294 2012-02-05 10:05 DA_LayerInfo
-rw-rw---- app_189  app_189               380 2012-02-05 16:23 DATA_LAYER_5
-rw-rw---- app_189  app_189             11387 2012-02-05 17:49 DATA_SYNC_DATA
-rw------- app_189  app_189                35 2012-02-07 11:21 cp_state
-rw-rw---- app_189  app_189             26756 2012-02-01 16:31 DATA_PHOTO_-6319433669272599441
-rw-rw---- app_189  app_189                76 2012-02-01 16:14 DATA_ServerControlledParametersManager.data
-rw-rw---- app_189  app_189             26756 2012-02-01 16:31 DATA_PHOTO_-4787236618283354619
-rw-rw---- app_189  app_189                57 2012-02-01 16:14 DATA_star_details_index
-rw-rw---- app_189  app_189             26756 2012-02-01 16:31 DATA_PHOTO_-7325828578927889496
-rw-rw---- app_189  app_189                76 2012-02-05 17:27 DATA_ServerControlledParametersManager_DA.data
-rw-rw---- app_189  app_189             26756 2012-02-01 16:31 DATA_PHOTO_-5041077772587057686
-rw-rw---- app_189  app_189                42 2012-02-05 17:26 DATA_PROTO_SAVED_RECENT_LAYERS
-rw-rw---- app_189  app_189                21 2012-02-05 10:04 DATA_SAVED_BGSF_
-rw-rw---- app_189  app_189               263 2012-02-05 11:30 DATA_LAYER_2
-rw-rw---- app_189  app_189                26 2012-02-01 16:14 NavigationParameters.data
-rw-rw---- app_189  app_189               330 2012-02-05 17:27 DA_DirOpt_en_US
-rw-rw---- app_189  app_189             26756 2012-02-01 16:31 DATA_PHOTO_-4817178430903221341
-rw-rw---- app_189  app_189             26756 2012-02-01 16:31 DATA_PHOTO_8476874153932292760
-rw-rw---- app_189  app_189            141298 2012-02-05 17:27 DATA_Restrictions
-rw-rw---- app_189  app_189                29 2012-02-05 17:49 DATA_PROTO_SAVED_LAYER_STATE
-rw------- app_189  app_189                61 2012-02-01 16:14 nlp_params
-rw-rw---- app_189  app_189                 0 2012-02-05 17:27 DATA_Restrictions_lock
-rw-rw---- app_189  app_189             26756 2012-02-01 16:31 DATA_PHOTO_8041021750103678571
-rw-rw---- app_189  app_189             10237 2012-02-03 13:28 DATA_star_details_0
-rw-rw---- app_189  app_189                 6 2012-02-05 17:49 DATA_RECENT
-rw-rw---- app_189  app_189              5048 2012-02-06 23:41 DATA_Preferences
-rw-rw---- app_189  app_189                65 2012-02-01 16:14 network_initiated_prefs.xml
-rw-rw---- app_189  app_189                65 2012-02-01 16:14 friends_app_widget_preferences.xml
-rw-rw---- app_189  app_189              1269 2012-02-01 16:14 ids.xml
-rw-rw---- app_189  app_189               250 2012-02-03 13:27 settings_preference.xml
-rw-rw---- app_189  app_189                65 2012-02-01 16:14 cache_settings_preference.xml
-rw-rw---- app_189  app_189               358 2012-02-07 11:28 checkin_notification_preferences.xml
-rw-rw---- app_189  app_189               119 2012-02-01 16:14 com.google.android.apps.maps_preferences.xml
-rw-rw---- app_189  app_189               345 2012-02-05 17:49 DriveAbout.xml
-rw-rw---- app_189  app_189               317 2012-02-07 10:38 LOCATION_REPORTING.xml

Android 2.2 (Froyo) introduced the ability to move apps to SD card (or "external storage" on some devices).  This introduces a level of complexity since portions of the app get moved around.  For every app that you move to SD Card/media area, the system creates a virtual mount point named /dev/block/dm-X, where "X" is a sequential number.  It them moves the app's APK (Android package) file and some preferences there.  You can view this by issuing a mount command in shell/terminal emulator.  Along with other usual mounts, it should show which apps were moved to SD Card like in an example below:

/dev/block/dm-0 /mnt/asec/com.metago.astro-1 vfat ro,dirsync,nosuid,nodev,relatime,uid=1000,fmask=0222,dmask=0222,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/block/dm-1 /mnt/asec/com.a0soft.gphone.aTrackDog-1 vfat ro,dirsync,nosuid,nodev,relatime,uid=1000,fmask=0222,dmask=0222,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0

Here I moved Astro file manager and aTrackDog apps to the SD Card on my phone.  Use ls /mnt/asec/ to view the directories created for the moved apps.  Issuing command ls -l /mnt/asec/* will list the file sizes within those folders:

# ls -l -a /mnt/asec/*
ls -l -a /mnt/asec/*
-r-xr-xr-x system   root               332826 2012-02-07 11:21 pkg.apk
dr-xr-xr-x system   root                        2012-02-07 11:21 lib
-r-xr-xr-x system   root              2363522 2012-02-07 11:18 pkg.apk
dr-xr-xr-x system   root                        2012-02-07 11:18 lib

The wrapper for the virtual partition gets stored inside a hidden ".android_secure" folder of the SD Card:

# ls -a -l /mnt/sdcard/.android_secure
ls -a -l /mnt/sdcard/.android_secure
----rwxr-x system   sdcard_rw          4290560 2012-02-07 11:18 com.metago.astro-1.asec
----rwxr-x system   sdcard_rw          2161664 2012-02-07 11:21 com.a0soft.gphone.aTrackDog-1.asec

Once moved the app's APK will no longer be under /data/app/ or /data/app-private/ folders.

Another area of interest is Dalvik Cache - an area that contains cached data for each installed app.  Upon first boot-up or new app installation the system generates a .dex file for each app that it uses for quicker start-up.  These files are stored on /data/dalvik-cache/ partition.  Command ls -l /data/dalvik-cache/*[package_name_here]* will return the space taken up by the app's Dalvik cache.  For example, here's how much space is taken up by Google Maps app:

# ls -l /data/dalvik-cache/*com.google.android.apps.maps*
ls -l /data/dalvik-cache/*com.google.android.apps.maps*
-rw-r--r-- system   app_189           4406016 2012-02-04 09:01 data@app@com.google.android.apps.maps-2.apk@classes.dex

Next, the /cache partition of the internal memory may be used by apps.  The command ls -l /cache/ will show you all files stored there, along with sizes and owner information.  For example, on my phone here's the output:

# ls -l /cache/
ls -l /cache/
-rw-r--r-- app_13   app_13            3640954 2012-02-07 09:16 downloadfile-1.apk
drwxrwx--- system   cache                       2011-12-31 21:03 recovery
drwxrwx--- root     root                        2011-12-31 21:00 lost+found

Besides the standard directories, there is a file named downloadfile-1.apk that belongs to something named "app_13".  I can cross-reference this "app_13" name to the listing of ls -l /data/data/ to see that this file belongs to Android's built-in downloader:

# ls -l /data/data/
ls -l /data/data/
......
drwxr-x--x app_13   app_13                      2011-12-31 21:02 com.android.providers.downloads.ui
......

Finally, apps can use the SD Card for their own purposes, and there is really no way to track this, unless the app names its folders something recognizable.


Why aren't these UI "hacks" more often exploited? What I'm talking about:

Facebook publishes a standalone app called Messenger on the Play Store. It's a chat app, for interactions with other Facebook users. It implements something called "chat heads" which are these round bubbles that sit on top of everything else in the Android UI (except the status bar) that allow for opening an Always On Top chat UI.

Facebook also publish their namesake app, which implemented intrusive notifications for itself, that appear at the top of the screen and contain their relevant content.
They render on top of the system status bar preventing access to it when the app isn't active

These are benign examples but they intrude on userland and feel malicious in the way they manifest themselves -- appearing without warning.
Facebook gave its apps hidden ways to disable these things.
What surprises me is that there are not more apps that exploit these UI security "holes".
If I were in the business of infecting people's phones, I would take advantage of this and make the most infuriatingly annoying malware because it's as if one program is given control of the entire interface  with no escape.
Imagine the things a malicious bit of code could do if it literally prevented the user from doing anything about it. They can't use the interface, so they can't kill the app, they can't turn off the phone and on many phones you can't remove the battery, etc.
Is there an obvious reason why this sort of thing isn't more exploited? I can't find much about it.

That chat bubble is there because you granted Messenger the permission "draw over other apps". In simple terms, call it overlay. The qualified name of the permission is android.permission.SYSTEM_ALERT_WINDOW.

  Allows an app to create windows using the type TYPE_SYSTEM_ALERT, shown on top of all other apps. Very few apps should use this permission; these windows are intended for system-level interaction with the user.

(Emphasis mine)

I don't think chat bubbles of Messenger, in any capacity, are meant for system-level interaction with its user, so you can assume that developers of that app and any such app chose to abuse the system's feature for their own interests.

Furthermore, you definitely are not the first person who thought about exploitation of the overlay feature of Android.

ArsTechnica: New Android ransomware locks out victims by changing lock screen PIN

  Dubbed Android/Lockerpin.A, the app ... overlays a bogus patch installation window on top of an activation notice. When targets click on the continue button, they really grant the malicious app elevated rights that allow it to make changes to the Android settings. From there, Lockerpin sets or resets the PIN that unlocks the screen lock, effectively requiring users to perform a factory reset to regain control over the device.

  ...

  Once the continue button is pressed, the app will acquire administrator rights [becomes a Device Administrator]. From there it will change the PIN and periodically continue to overlay a fake window in an attempt to hold on to the elevated privileges. It's the first known Android lock-screen ransomware to set a phone's PIN lock. Because it requires non-paying victims to factory reset their phones, it causes them to lose all of their data.

(Emphasis mine)

Just so you know, Android understands the potential damage overlay can cause to a device, hence, when an overlay is actively drawn on screen and user attempts to sideload an app, the install button simply fails to work. See Why can't I press the Install button when installing applications from unknown sources?

If only Android extends this feature to activation/deactivation of device administrators, that would be very nice of them.

In case, you want to know which other app has the same permission, you can use my answer on Determine which app is drawing on top of other apps?

The notifications you mentioned, intrusive they may be, are called Heads-up notifications. Until Android 5.1, users didn't have an official way to get rid of them without losing all notifications from an app.

Android Design: Heads-up Notification

  When a high-priority notification arrives ..., it is presented to users for a short period of time with an expanded layout exposing possible actions.

  After this period of time, the notification retreats to the notification shade. If a notification's priority is flagged as High, Max, or full-screen, it gets a heads-up notification.

(Emphasis mine)

As you may have guessed, Heads-up notifications are not the default type of notification a system should be displaying to a user and a developer have to explicitly opt for it in the app's code. It's just that some developers opine that the things their app do are of the ultimate priority in the life of the user, let alone the system, so they often choose to show every notification as a Heads-up notification.

That said, heads-up notifications were introduced only in Lollipop while your device runs Android KitKat, so definitely, as Andrew T. put it in comments, it must be Facebook's native code which is both creating and displaying those pseudo-Lollipop notifications at the top and above a window.

The reason you can't interact with system bar when that pseudo-Lollipop notification is active, is most likely the use of blocking overlays to display a view which is perceived as a notification by the user. Aaron's answer has explained it with a good working example app.

I searched web between the range Oct 2013 to Oct 2014 (the developmental age of Android 4.4.x) and came to know that there were apps available in Play Store primarily meant to create those pseudo-Lollipop notifications. One such app is Floatifications and the other one I found was Metro Notifications Free. Both uses the same blocking overlay to create those pseudo-Lollipop notifications.

I'm surprised you didn't find toasts pesky enough.


Any app to help finishing call? My mother has the habit of ending the conversation by pressing the BACK button several times instead of hitting the red button. The perso she talk to can be heard after a few minutes (people are nosy and my mother is old). Is there an option or an application that contains a silent closing of conversation windows and was visible until the end of the conversation?

An alternative approach that might be easier for your mom: In Settings→Accessibility, there is an option to make the phone's power button end the call (here labeled "power button ends call"). That might be easier for her than remembering to tap the on-screen button.
Google's support site has an an article on the feature but it doesn't really say anything more.


How do I temporarily edit a webpage in Chrome? I want to temporarily edit the webpage displayed in Chrome on my phone, something similar to Chrome desktop's Inspect element feature. I understand this is temporary, but I want to do some tests.

I don't see that option in the application itself, do I need an extension, another app, or is it impossible?

Running the following snippet in the URL bar works in both Chrome for desktop and  Android:

javascript:document.body.contentEditable='true'; document.designMode='on'; void 0

One important note: after copying & pasting the code into the address bar, Chrome automatically strips the javascript: part of it out. You must add that back in or it won't work!

It's to prevent malicious code being run by dumb users who think they'll win an iPad or get +1,000 Facebook friends if they copy some dodgy JS into the address bar.

It has the affect that the whole page becomes editable.

You could then do Print > Save as PDF if you needed to save the edited webpage.

I'm a professional web developer so this definitely has its uses for me. Needless to say, I am not liable if you do something underhanded with this, e.g. falsifying a company's 'thanks, your order is confirmed ' page to defraud products from them with a faked screenshot/print out.

I originally got the code from Stack Overflow, where there are 28 such questions.


Does Android block any ports when tethering? I have a Samsung Galaxy S3 Mini running Android 4.1.2. I have a regular 3G voice & data plan with an Optus reseller in Australia. I often access the Internet from my laptop via bluetooth tethering on this phone and it works beautifully, except for one small problem.

I have several web servers that I access via SSH but I have configured the SSH servers to listen on non-standard port numbers. Although I have selected very large port numbers (ie. greater than 33,000), according to the TCP/IP standard they are valid numbers so they should work fine. Indeed, I have been happily SSH-ing to these servers for years on my wired connections at home and work, but have never been able to access them when tethering.

I have just spent several hours searching the web trying to find out if this is a carrier issue or an Android issue but found nothing useful.

[Additional Notes] The configuration is as follows: laptop is paired via Bluetooth to the phone. The phone has "Bluetooth tethering" enabled so that I can share the phone's Internet connection with the laptop. So the laptop connects to the phone, the phone connects to the Internet via 3G.

The answer to this question is that no, neither Android nor my carrier are arbitrarily blocking traffic on high-numbered ports.

The problem is that I had forgotten how paranoid I am about security and that, in addition to making SSH listen on a non-standard port, I had also created an iptables rule to only allow connections to that port from my home IP address and my work IP address. Obviously I was using a different IP address when attempting to connect via my phone, hence the failure to connect. (And I probably didn't look hard enough when prompted by @Izzy to check server logs, because I'm sure there is a record of the blocked connection attempt in there somewhere). D'oh...

My apologies for wasting people's time, but in case anybody else thinks they have a problem with Android or their carrier arbitrarily blocking ports, hopefully this answer will prompt them to triple check everything about their connection, including their server firewall, before they go off logging tickets.


How do you pair a Device for Wireless Debugging with a QR Code? There doesn't seem to be much written on this, but I see an option to pair my device with a QR code scanner. Is there a way to pair my phone with my computer by generating a QR code on my computer and scanning it from my phone?
I'm running Ubuntu 20.04.
I'm using the Pixel 4a running Android 11.

As of December 2020, the feature seems to be currently only available for Android 11 with Android Studio Canary on macOS.

While the revamped wireless debugging has been known since

the source code commits in October 2019 by XDA

On the user-side, Google plans to add a new “wireless debugging” switch in Developer Options that supports pairing devices by scanning a QR code or entering a 6 digit code.

the release of Android 11 DP2 in March 2020, as reported by 9 to 5 Google and Android Police

it was first introduced officially on Android 11: Developer Preview 3 in April 2020.

Wireless Debugging - In Android 11, we’ve completely revamped the debugging experience using ADB over a Wi-Fi connection. With limited USB ports on laptops, and a myriad of USB cables & connections to manage, the Wireless Debugging feature in Android 11 can help you be more productive. Unlike the existing TCP/IP debugging workflow, Wireless Debugging on Android 11 does not need a cable to set up, remembers connections over time, and can utilize the full speed of the latest Wi-Fi standards. In DP3, use the pairing code workflow to get started with this developer feature. We plan to add an integrated experience for Wireless Debugging with QR code scanning in a future Android Studio release, but we want to get your early feedback on the command line tool offered in Android 11 DP3. For details, see the documentation.
(Emphasis added, link fixed)

However, it was not until December 2020 that the new Android Studio Canary version, Android Studio Arctic Fox (2020.3.1) shown the pairing interface for the first time.

Lastly, for those running MacOS (other platforms are coming soon) with the latest Android Platform tools and an Android 11 device, you can try out the IDE integration for the Wireless ADB feature by going to the Run device selection dialogue → Pair Devices Using Wi-Fi.

Menu to access Wireless ADB feature

Wireless ADB Setup Window

Note that this feature is still under development, and it is still unknown if it is possible to emulate the process for general usage since it is directly linked to ADB.


How to root droid running 4.4.4 KitKat I have a Motorola XT1080 (also known as droid maxx) from verizon, and it is running android version 4.4.4. Is it possible to root this device, and if so, how do I do this?

Try to unlock the bootloader with Sunshine S-Off then use kingo rooting tool. Or try Kingo first as it's free but Sunshine will test your device to make sure it can unlock the boot loader. If so, it will cost 25$ but you have better odds of getting root with the boot loader unlocked.

I have the same phone, I lost root and could not get it back with traditional maxx rooting methods so I unlocked my bootloader with Sunshine then rooted with Kingo but I did all this on android 4.2.2 so it may or may not work on 4.4.4 (please comment on this answer with your results if you try this).

Another program like Kingo is Root Genius.


Quick way to show unread emails in inbox in Gmail app? Is there a quick (menu / tap) way of viewing the unread emails in your inbox? Or at least showing the unread emails at the top of the list of emails, in other words sorted by unread/read (temporarily)?

The only way I have found to do this is to search for is:unread in:inbox which is not ideal on the phone's touch screen IMO.

Is there a quicker way?

Doesn't seem to be, the search is the only way as of now, however; if you use the browser there is an option to view only unread emails.


New Facebook app activates GPS when launched -- how to disable? This started happening with the latest Facebook app update.

I don't want to disable my GPS outright -- I like that it comes up automatically when I call Google Maps. (Which usually is in a "where the hell am I" situation.) But I see no valid reason to allow Facebook to query where I am all the time. Facebook's settings don't have an option to disable this.

Since my phone (Milestone I) is rooted (but still with Motorola's official 2.2.1 OS), I wonder if there's some app through which I could enable/disable GPS usage per app. Is there such a thing?

(If there is, I'd like to disable it in the browser too.)

Similar to Permissions Denied, mentioned by Matthew is LBE Privacy Guard which also allows you to selectively disable permissions for apps. Also good for disabling geo-tagging on your photos as well as preventing Facebook and/or Twitter from broadcasting your location.


Can we stop Gmail from calling home to google before resolving a url? When you click on a link in gmail on your phone, it first queries www.google.com with the url of your query, and then redirects to the destination URL. Is there a way to stop this "feature" of google knowing about all the URLs you click on? I've switching from chrome to firefox as a default browser, but this functionality is in the gmail app itself.

Try to long press the URL in email and open it in new tab
But I suspect you are making your data private because Google already knows the content of your email and has it cached also
Try and use gmail on firefox with Clean URL and adguard extension installed ,although I suspect it will work but one can hope.
 P.S. ... you can't stop a data mongering company from intruding in your privacy while using its services


Smaller internal memory, than expected I have buyed an Alcatel One Touch POP 8 tablet and found, that it has only 2 GB internal storage instead of announced 4 GB(I have seen this on Android Settings page). What causes this problem? Can you offer me an app or something like this, that can show precisely the memory size?

As said in the comments the device is partitioned and you can't see all parts of the device on a non rooted device.
As an example a Galaxy S4 is advertised as a 16Gb device, and out of the box shows 9.1 Gb available. This is a common practice in Android OEMs it would seem. (Desire X from HTC 4Gb, shows 1Gb)

(source: techblogon.com)
Just to give you a scale of what you are dealing with from addictive tips:
Let’s start with a list of standard internal memory partitions on Android phones and tablets. These are:

Note: It says "Standard" partitions. Different companies come out with their own partitions. A good example is the Galaxy S4, and the Galaxy S4 Google Edition. They are absolutely identical hardware in every way. Until recently (with so called 'merged ROMS') no ROM from one could be installed on the other due, mostly, to the partitioning of the two devices being totally different.

/boot
/system
/recovery
/data
/cache
/misc
In addition, there are the SD card partitions.
/sdcard
/sd-ext
Note that only /sdcard is found in all Android devices and the rest are present only in select devices. Let’s now take a look at the purpose and contents of each of these partitions.
/boot
This is the partition that enables the phone to boot, as the name suggests. It includes the kernel and the ramdisk. Without this partition, the device will simply not be able to boot. Wiping this partition from recovery should only be done if absolutely required and once done, the device must NOT be rebooted before installing a new one, which can be done by installing a ROM that includes a /boot partition.
/system
This partition basically contains the entire operating system, other than the kernel and the ramdisk. This includes the Android user interface as well as all the system applications that come pre-installed on the device. Wiping this partition will remove Android from the device without rendering it unbootable, and you will still be able to put the phone into recovery or bootloader mode to install a new ROM.
/recovery
The recovery partition can be considered as an alternative boot partition that lets you boot the device into a recovery console for performing advanced recovery and maintenance operations on it. To learn more about this partition and its contents, see the ‘About Android Recovery’ section of our guide to ClockworkMod recovery.
/data
Also called userdata, the data partition contains the user’s data – this is where your contacts, messages, settings and apps that you have installed go. Wiping this partition essentially performs a factory reset on your device, restoring it to the way it was when you first booted it, or the way it was after the last official or custom ROM installation. When you perform a wipe data/factory reset from recovery, it is this partition that you are wiping.
/cache
This is the partition where Android stores frequently accessed data and app components. Wiping the cache doesn’t effect your personal data but simply gets rid of the existing data there, which gets automatically rebuilt as you continue using the device.
/misc
This partition contains miscellaneous system settings in form of on/off switches. These settings may include CID (Carrier or Region ID), USB configuration and certain hardware settings etc. This is an important partition and if it is corrupt or missing, several of the device’s features will will not function normally.
/sdcard
This is not a partition on the internal memory of the device but rather the SD card. In terms of usage, this is your storage space to use as you see fit, to store your media, documents, ROMs etc. on it. Wiping it is perfectly safe as long as you backup all the data you require from it, to your computer first. Though several user-installed apps save their data and settings on the SD card and wiping this partition will make you lose all that data.
On devices with both an internal and an external SD card – devices like the Samsung Galaxy S and several tablets – the /sdcard partition is always used to refer to the internal SD card. For the external SD card – if present – an alternative partition is used, which differs from device to device. In case of Samsung Galaxy S series devices, it is /sdcard/sd while in many other devices, it is /sdcard2. Unlike /sdcard, no system or app data whatsoever is stored automatically on this external SD card and everything present on it has been added there by the user. You can safely wipe it after backing up any data from it that you need to save.
/sd-ext
This is not a standard Android partition, but has become popular in the custom ROM scene. It is basically an additional partition on your SD card that acts as the /data partition when used with certain ROMs that have special features called APP2SD+ or data2ext enabled. It is especially useful on devices with little internal memory allotted to the /data partition. Thus, users who want to install more programs than the internal memory allows can make this partition and use it with a custom ROM that supports this feature, to get additional storage for installing their apps. Wiping this partition is essentially the same as wiping the /data partition – you lose your contacts, SMS, market apps and settings.


List of apps ever downloaded I bought myself a new Android phone since my last one died (overheated). So I've lost all the applications.

Is there some kind of download history to find what you've downloaded via your Google Account or something? I'm aware of something similar in Market > My Apps,  but that contains only what you have on the current device.

I ran across this by accident, but it is exactly what I was after! Hope it helps others.

https://market.android.com/account and the Orders tab

Update - this is now https://play.google.com/apps


Is it possible to clear the "Notifications" on Facebook for Android? I have enabled notifications in the 'Inbox' section of my Facebook for Android program.

Does anyone know of a way to clear the 'Notifications' list ?

Reason I ask : Every time I start up Facebook , I get the message that I have 4 new notifications. Over and over again , the same notifications.

Under Windows, these are the same four as I can see when clcking the world icon on top of the screen. However, on Windows, the world icon only lights up when a new notification has arrived, as soon as you click (or view) the notification, no visual indication is present any more.

So, I would like these notifications only to alert me, when new arrive, not every time.

UPDATE:

As it was, I was talking about the Samsung version of FB/ Android (Facebook S! version 1). I downloaded and installed the one from the Market, and this is much better.

No, there doesn't appear to be a way to clear the notifications short of visiting the item so it is no longer new.

The Android Facebook app has a lot of deficits. It's still head-and-shoulders better than the previous version, though.


Upgrading galaxy s2 GT-I9100T 4.0.3 to 4.4 I'm pretty desperate trying for a day now rescuing my phone.
I am new in this whole updating android firmware stuff and I did the following:

root my  phone, enabled USB debugging
downloaden ODIN, installed the kernel thingy ('CF-Root-SGS2_DX_SIN_LP9-v5.4-CWM5.tar' to be exact)
downloaded spiritROM-4.4.4-20140710-i9100.zip, moved it to internal sd card
did the dalvic cache wipe and cache partition wipe &! data/factory reset.
tried installing the ROM, incountered the status 7 problem (error in... installation aborted)
tried couple of methods fixing it, including opening the rom, changing the google/android script by erasing the first line in the code and do a bunch of stuff with notepad++ from a guide I saw. the problem is - after copying the new ROM to EXTERNAL sd card (because i have no access to internal, due to recovery) it came up with the status 6 problem. in general it seems that using external SD causing problem
tried the ADB push method - problem is (D:) my phone is not recognized in windows no matter how much samsung Drivers/kies/usb drivers i install. it is still shown on my comp as unrecognized usb connection, so the adb push not even working because it cannot 'see' my phone.

I have reached a point of desperation. Is there any way fixing this issue, upgrading to 4.4 or even restoring it back to 4.0.3?? (i've seen somewhere that there is an issue with the 9100T models, and I assume that's what causing all problems)

thank you in advance, kind human beings of the android community. (and sorry if my english is kind of shallow as in not good)

Status 6 often refers to a problem within the updater script. Be sure to save it in unix format. I mostly use notepad++ to edit those files.
notepad++ > edit > EOL conversion > UNIX format

Also make sure there is an empty line on the end of the script. So if the script has 112 lines, the 113 should be empty.

Status 7 means that the rom is incompatible with your device as it checks the device model. Thats why you have to delete the first line in your updater script. Be sure to delete the whole line (with the semicolon).


Is there any downsides to rooting the tab s? I was recently given this stunning tablet from my company I work for, in the hopes that it could be turned into an offline development platform. I have been looking at alternatives to gain this setup without the requirements of root.. Whilst there are options out there, I always find myself resorting back to the original trail of thought of being manually installing necessary packages to achieve a stunning development platform.

I come here today to ask the following question: Is there any downsides to rooting the tab-S?

As lets face it, unlocking the maximum potential for a tablet is a brilliant feeling. The unrestricted usages it provides & the removal of the touchwiz bloatware.

Now, I have done alot of research into the rooting process done on the tablet, it's fairly straight forward and can be acomplished with minimal effort with the use of the auto root tool available, or rooting with the odin tool.

But, the downsides are vaguely listed, most of which revolve around tripping KNOX.. Which in turn makes the use of Samsung pay useless, but on a tablet.. Is it really necessary? On a mobile, I can understand the slight inconvenience it can cause as with the S6 will support Samsung pay and what not.. But regarding the tablet.. What actually are the real reasons to why most people avoid rooting Samsung products?

In the past, I have rooted a selection of Sony mobiles and a few Lenovo tablets, without a problem as they all came with an extremely short list of downsides.. regarding Samsung though.. There are quite a few documented downsides for this process, which are not properly explained.

I don't see any harm in rooting unless you brick your tab.

Also, if your tablet in under warranty you will void the warranty on rooting the tab.


How to copy / modify data from a soft-bootlooping Samsung Galaxy S2 (GT-I9100) The Samsung Galaxy S2 (GT-I9100) I have at hand was turned off after getting hot during standby. When trying to start it again, it was in a bootloop: Like usual, it first shows "Samsung Galaxy S2 GT-I9100", then shows the provider branding and then shows "Samsung". But at the time when it was normally asking for the PIN, it was again showing the provider branding and going into a loop.

It is possible to go into the recovery mode. Among other things (see below) it shows "E:Error in /data/log/recovery_log.txt (No space left on device)".

The phone was running the newest stock firmware (Android 4.1.2). (At least I’m quite sure it was the newest version.)

Is there something I could try to make it start again, without loosing any data? For example, it could be the case that it’s not starting because the /data partition is full. Is it possible to remove files from this partition when booting the device is not possible?

If that’s not possible, is it possible to backup all the data (including app data and the internal "USB" storage), without loosing any data?

It seems like installing a different recovery ROM makes it possible to backup the data. However, I’ve read that installing a different recovery on a S2 with a stock ROM will stop the system from booting. In this case it doesn’t boot anyway. But in case it’s possible to fix the problem by making space free on the /data partition, can the original system be restored?

Some things which I observed that may (or may not) be helpful:

The recovery mode says "Android system recovery <3e>" at the top and "# MANUAL MODE #", "-- Appling Multi-CSC...", "Applied the CSC-code : DTM", and "Successfully applied multi-CDC" in the middle, right over the out-of-space error described above.

When turning on the phone, the provider sends SMSs to everyone who has tried to call the number while the phone was off. Even though the phone is boot-looping, such notification was sent.

When a phone is constantly crashing without any changes from your side, getting hot, usually it has a more seriously reason. You should focus on how to get your data off the phone first.

The SMS availability notifications indicates that android is still booting, just the gui system_server is crashing. To avoid availability toggle Airplane Mode or remove SIM Card.

Your internal memory (mmcblk0) is probably near wear-out. This means it will switch from read-write access to a read-only mode (for some partitions or completely) and one day it becomes unreadable. So how is data stored? List of partitions

EFS        /dev/block/mmcblk0p1
SBL1       /dev/block/mmcblk0p2
SBL2       /dev/block/mmcblk0p3
PARAM      /dev/block/mmcblk0p4
KERNEL     /dev/block/mmcblk0p5
RECOVERY   /dev/block/mmcblk0p6
CACHE      /dev/block/mmcblk0p7
MODEM      /dev/block/mmcblk0p8
FACTORYFS  /dev/block/mmcblk0p9
DATAFS     /dev/block/mmcblk0p10
UMS        /dev/block/mmcblk0p11
HIDDEN     /dev/block/mmcblk0p12

Typical important partitions on most android devices are BOOT RECOVERY CACHE SYSTEM USERDATA.

The BOOT (mmcblk0p5) partition contains the kernel and rootfs for the OS. It then loads the ROM from SYSTEM (mmcblk0p9). both partitions are read-only and can be downloaded everywhere (stock ROM). RECOVERY (mmcblk0p6) is a separate emergency rootfs. Samsung like to make things complicated, so in your case it is a recovery ramdisk which is included in boot. CACHE (mmcblk0p7) is a writeable partition for temporary files during OTA updates and log files. It can safely wiped/formatted any time. USERDATA (mmcblk0p10) is the only writeable partition for apps data, user installed apps and user files. However, seems like your phone has another additional writeable partition UMS (mmcblk0p11) especially for pictures and downloads (in newer android it is merged aka emulated storage), this is what you call USB Storage.

In android you only have access to pictures and downloads. the apps data is protected from user access and can only be backup with root access.

Modern android partitions are protected from altering, you can not flash modified content with a locked bootloader. Unlocking bootloader will trigger a factory reset, this is for security reasons to protect your data from unwanted access.

Luckily this is not the case for your device, the GT-I9100 comes from stock with unlocked bootloader!

The Android system recovery <3e> (stock recovery) gives you a very limited emergency access (sometimes with backup user data / restore user data) and wipe data/factory reset and wipe cache partition and apply update functionality.

So how to get access to your data? You can flash a custom recovery like TWRP from flash tool. This will not alter USERDATA or UMS partition.

Even more lucky, someone has leaked the Samsungs internal-only OEM signing key for OTA packages! (for older devices only)

PhilZ Touch Recovery CWM 6 comes as flashable signed zip which can be flashed directy from stock recovery.

download philz_touch_6.48.4-i9100-signed.zip
copy file to MicroSD Card
boot in Android system recovery <3e>
apply update from sdcard

This will (hopefully) bring you to custom recovery (if not, reboot to recovery mode). Now you can backup your /data and /sdcard -> to /external_sd

Once the backup is finished, perform a factory reset to see if this fixes your boot loop. factory reset will only wipe cache + userdata your stock ROM remains intact. If the phone is working, restore your backup and use adb shell in recovery mode to examine/delete your files.

If you managed to restore your phone, get off all your pictures via USB. consider a cloud backup of WhatsApp and other apps in google drive. This will help you to migrate your data to another phone before old phone dies.


Android failure to boot on LG I need to recover data from my AT&T LG Thrill Android Phone

Background:

My AT&T LG Thrill phone's battery died a couple of days ago because I forgot to charge it. When I charged the phone and tried to turn it on, it showed the LG logo followed by the dropping balls and the AT&T "Rethink Possible" screen. I then get a mesage that the Application Google Services Framework has crashed and the phone goes into a loop with the dropping balls showing again followed by "Rethink Possible" screen. This sequence repeats itself over and over and the phone does not get out of this loop.

I have been able to go into the recovery screen (both Safe Mode and the Android Recovery Service) and have cleared cache, etc. However, I DO NOT want to wipe user data and restore to factory settings as this will wipe all of my data (pictures, application data, etc).

Solution Needed:

I need a suggestion to a way of accessing my data so that I can back it up onto an SD card/computer. I DO NOT want to root the phone as this may void the warranty. What I'm looking for is a way of perhaps putting the original flash image on the micro SD card and then have the phone read that image. Or some other similar solution that will get the phone out of this loop and allow me to get to the data.

When you are in recovery mode you should be able to use adb to get your data.


DNS blocking on mobile networks? I'm using my HTC One phone on Sprint's network in NYC, and noticed that my phone cannot access Imgur.

On Chrome, when using mobile data (3G/4G):

http://i.imgur.com/TDvhBMA.jpg Fails to resolve "i.imgur.com"
http://i.lvme.me/hjzy57l.jpg Loads fine

On Chrome, when using WiFi:

http://i.imgur.com/TDvhBMA.jpg Loads fine
http://i.lvme.me/hjzy57l.jpg Loads fine

Is anyone else seeing this sort of behavior? Might this be site-blocking at the carrier level? Or is there another technical explanation?

Any suggestions appreciated. (I'm missing my cat pictures already.)

DNS can be changed with apps like "Set DNS" and with the setprop command, however all fail on KitKat to modify resolvers ONLY IN CASE they were set by the mobile carrier.

An simple solutions was given at:
How to change mobile connections's DNS on Android KitKat?
(in brief: put imgur's IP's in /etc/hosts)

It will work, but myself, I'm still hunting a way to modify the carrier's resolvers.


droid 2 lock screen problems I just broke my Droid DBA so im switching back to an old phone (Droid 2). But my lock screen is not responding properly: it shows, I grab the lock, but it doesn't unlock (or it just doesn't register).

Does anybody know whats wrong?

Maybe the touch sensor is broken, had the same issue with an old Motorola milestone: only the left third of the screen was detecting events (and rightmost pixel line). I could unlock it with a 2 finger gesture (tap&hold left, tap& hold right side, then release left. The slider then jumped to the right and unlocked. The milestone has a hardware keyboard which i then used to further navigate


Is there a way to disable voice search? Since updating to Jelly Bean, my Nexus S had a problem with voice search starting up all the time (about every 30 secs).

Is there any way to disable it?

far easier, folks:

settings > language & input > keyboard & input methods: DISABLE 'google voice typing'


Kindle Fire HD on-screen keyboard on Nexus 5 I have found the keyboard on the Kindle Fire HD to be one of the best mobile device on-screen keyboards I have used and am wondering if it's available on any other devices?

Much like other android alternative keyboards such as SwiftKey, is there a version similar to the Kindle keyboard that I would be able to install on my Nexus 5?

Thanks.

Device: Nexus 5

OS: Android 4.4.4

Rooted: Yes

Maybe you're looking for this?
This is the stock Kindle Fire HD keyboard.And this is the actual link if you're concerned. Don't follow the instructions mentioned on the link.It is only to replace the system keyboard.


Bad screen resolution permanently crashes Poco F1 In short: I used SecondScreen app and changed the screen resolution to a bad one. The app autostarts and changes my resolution automatically. This causes a boot loop. What can I do?
In detail:
This is what I did on my non-rooted Poco F1:

installed Second Screen
I gave it the permissions it needed, using ADB via my PC, and other permissions it asked via UI .
I chose some big resolution.
I shut down the PC, before disconnecting the phone from PC.
The phone was stuck in the weird resolution, so I restarted it.
it is now in an infinite boot loop. :(

It starts booting normally, but than the screen resolution becomes bad (see the photo), and, before finishing the booting, it restarts again :(
At last, the recovery menu is reached and it gives me 3 options.

Reboot (this is the restarting loop that brings me back to the same menu)
Access via MI PC Suite: I cannot access the device this way; the device is not detected. It never sees the device, except in Fastboot it says: "Try connect in normal mode first then switch", but I cannot enter "normal" mode.
Wipe the data (if at all possible, I would prefer to avoid losing the data).

What I know:
Codename:       beryllium
Bootloader:     locked
Anti version:       1

I can get my phone into FASTBOOT and adb sideload modes, but unfortunately not in the "normal" adb mode. Can I uninstall the app somehow, stop it from autostart, undo its damage, or anything to fix the phone without losing the data?
A non boot-loop fix was done by typing:
From adb shell, type:
wm size reset
wm density reset

but I cannot find out how to do that from FASTBOOT or sideload....

I fixed it* by letting the phone bootloop until fully discharged. I then plugged the phone into the computer and turned the phone on as soon as it charged enough to allow me this. At that point there is a brief window where full ADB access is possible, but only because I did have USB debugging enabled after all, but the bootloop was too fast to allow full ADB access at any point.
I imagine the phone does a fuller/slower reset when discharged. At one point in the "good" bootloop it shows a nice, round, "loading" circle, and that is when I got ADB access. There is little time before "bad" bootloop is resumed.

This is what I kept entering in command line during the "loading" circle boot phase, until it finally indicated that I have the full ADB access by showing the alphanumeric ID of the phone and "device" after it:
adb devices

List of devices attached
    03464364da54  device

Uninstall the culprit app called SecondScreen, by first finding its proper name, and then uninstalling it via adb:
adb shell pm list packages | grep second

pm uninstall -k --user 0 nameOfTheAppReturnedByTheAboveCommand

This was not enough, and the phone entered the "bad" bootloop again, so I discharged it again and reset the screen size and density (DPI I believe):
adb shell wm size reset

adb shell wm density reset

It works like new now.


I need to know which app to download, how do i select the right one? I have an AT&T tablet I have inserted my sim card correctly. Now I need to know which app to get from the playstore that will give me a keypad so I can dial out and receive calls. Please help.
Thank you,
Marci

According to theartiszan on the T-Mobile support forum:

  The tablets are setup in a way in the US that you can not use them for phone calls.
  So unless you root it and put in custom software you would not be able to use the standard phone features as such.

Depending on the model of your tablet, you may be able to modify your tablet with root access and activate these features, though keep in mind that this process can be dangerous for the device and may also void your warranty.

Alternatively, you can use a VoIP service such as Skype or Hangouts to make Internet calls and send messages. Also, Google’s Hangouts Dialer app lets you make and receive phone calls when you set up a Google Voice™ number. Keep in mind that these services will use carrier data instead of carrier minutes.

Note: While the quoted post is from the T-Mobile forums, it applies to all tablets in the U.S. including ones authorized by AT&T.


Freeing up space on SD card I'm trying to clear some space on my SD card, so I can run AnTuTu Benchmark. Also, having some extra space for music would be great. I'm assuming apps installed to your SD card can eat up free space faster than you'd imagine. As of now, 19 (out of 65 apps) on my SD card which occupy appox. 197 MB total.

I currently have 1.74 GB used and 103.47 MB free, would my ROM be occupying a lot of space (i.e. needing 4GB of HD space to install Ubuntu/Linux)?

I want to figure out the best way to maximise space on my SD card without haphazardly deleting files. Also, knowing what are key folders would help too.

It's better if you don't manually delete stuff, unless you can recognize the package names for the apps you want to remove.
Though it sounds hilarious to install an app to get rid of apps, APPS2SD will neatly list out whatever apps are on the SD card or can be moved between that and the internal memory, so you can make a list of the apps you don't want and manually uninstall them.

Speaking of key folders, here are a couple of common ones-

DCIM - This stores camera photos.
Attachments - Default save location for Gmail attachments.
download - Default file download location.
data - Stores app specific data. If you have games that download additional data, they may store that here.

This is based off my SD card - most of the other folders I've seen are app specific.

Update - Some phones have a Camera directory, with DCIM under it, so look for both.


How to set Wi-Fi HTTPS proxy, not HTTP, via adb shell? For HTTP I found a link: How to set WIFI proxy via adb shell?
But I want to setup HTTPS proxy via adb shell.

This question is a near duplicate of questions like this and this, and closely related to this and this. In fact it can be better explained by a developer, but since it keeps on appearing again and again with slightly different situations, I'll try to explain what I know with some unnecessary details to make the picture clear from a broader perspective.

In short:

Unlike VPN, a proxy - by design - is not meant to be set system-wide. Individual apps have to create connections through proxy instead of connecting directly to remote hosts (visited websites).
If an app doesn't have built-in support for proxy, it's possible to enforce the proxy on per-app basis or system-wide. Most of the solutions require root access, but Android's VpnService APIs work without root.

Transparently proxying https traffic requires SSL Bumping (decryption) on proxy server which breaks the security model of https. This needs to be worked around from both sides; client and proxy.

Android lets proxy be configured for Wi-Fi, Mobile Data (APN) or both. As of Android 9 proxy settings are saved in

/data/misc/wifi/WifiConfigStore.xml
/data/user_de/<User_ID>/com.android.providers.telephony/databases/telephony.db

Both files aren't directly accessible for editing without root. But there is another Global HTTP Proxy setting meant for managed devices which saves proxy information to /data/system/users/<User_ID>/settings_global.xml. It's possible to change global device settings through CLI:

~$ settings put global http_proxy <host>:<port>

And to unset:

~$ settings put global http_proxy :0

Or you can manually set keys:

global_http_proxy_host
global_http_proxy_port
global_http_proxy_exclusion_list
global_proxy_pac_url

Android sets this host/port information as the following Java system properties on all DVMs of running apps:

http.proxyHost
http.proxyPort
https.proxyHost
https.proxyPort

But only default browser or other system apps necessarily honor these proxy related networking properties. That's why when setting Wi-Fi proxy it warns:

  The HTTP proxy is used by the browser but may not be used by the other apps.

For non-system custom apps, it is up to the app creator to respect the proxy settings and use them for http and https proxy, as usually a server listening on single port can handle both type of requests (GET and CONNECT) as explained below.

HOW PROXY WORKS (EXPLICITLY)

Actually http/https proxy is used only by proxy-aware apps and Android cannot enforce this system-wide. No one can, except the (http client) app which is making http/https connections. It's because proxy is set on per connection basis i.e. client itself decides which kind of connection it's going to make when creating a network socket. For http proxy full URL is to be given after GET verb instead of simple path. For https proxy the CONNECT method is used instead, so that proxy is requested to create a http tunnel towards remote host, through which TLS handshake takes place (without proxy's involvement) and encrypted traffic flows back and forth. It's essentially like doing a single local port forwarding.

See this answer for SOCKS proxy. For further details: Why proxy set on Android does not work when used as hotspot?

CLIENTS' SUPPORT FOR PROXY

Since establishing a proxy connection is the responsibility of client app, many client libraries have in-built support to configure proxy settings. Mostly web browsers let user configure proxy in settings UI or use system provided information e.g. on Windows there are IE Proxy Settings and also netsh command for programs which are linked against WinHTTP library. On Linux environment variables http(s)_proxy are honored by many networking libraries, CLI utilities and GUI programs including web browsers (1).

However native methods aren't directly applicable to Android's Java based framework. Android's HttpURLConnection (2, 3) and Apache's HttpClient (deprecated) handlers honor (4, 5) above mentioned system properties (6, 7). So the apps making use of these APIs are able to use same proxy (8, 9) for all connections. An example is WebView (10, 11) which is based on Chromium:

  by default the system-wide Android network proxy settings are used to redirect requests to appropriate proxy servers

But not all Java libraries consider the VM system properties as was the case with Apache HttpClient before version 4.2. Such apps may listen to PROXY_CHANGE_ACTION broadcast (12, 13) to get notified of changes in proxy settings and then getDefaultProxy settings - either set through CLI (global) or GUI (per network basis) or programmatically (14, 15).

Or app may also ask user to configure proxy in app itself and use multiple available proxies (16, 17) including system properties (18) on per-connection basis.

Proxy-aware apps, particularly web browsers support:

Configuring https (SSL) proxy explicitly in settings through GUI (e.g. Firefox's network.proxy.ssl preference) or CLI (Chrome's --proxy-server option) or plugins like FoxyProxy.
Using .pac (19, 20, 21) file to import proxy settings from remote host.

For Wi-Fi APs Android also supports importing .pac files (but not WPAD). In this case ProxyHandler and PacProcessor helper apps make a local proxy available to apps but authentication doesn't work.
CONNECT over TLS connection towards SSL proxy (e.g. Squid or Apache) in contrast to plain TCP CONNECT method which sends unencrypted traffic from client to proxy before TLS handshake. See FoxyProxy and network.proxy.proxy_over_tls option on Firefox.
Authentication if proxy requires, other apps usually fall back to no proxy mode when connection to proxy isn't established. Apps need to handle authentication even if loading some content in WebView.

So if you want your app to work with https proxy, consider all above factors and choose appropriate SDK/libraries when coding the app.

ENFORCING PROXY (TRANSPARENTLY)

For those libraries and programs which provide no means to configure proxy, there are different methods proxifiers/socksifiers use to force traffic towards a proxy server.

tun2socks is a socksifier which accepts all TCP (and optionally UDP) traffic directed towards a tun interface in routing table. That's how VPN works on Android. While tun2socks is a perfect choice to be used with SOCKS tunnels, it doesn't support http(s). But there are tun2http(s) solutions (like TunProxy) which are based on Android's VpnService API and transparently redirect all http(s) traffic towards remote proxy.
redsocks is another similar tool but it NATs all traffic to a specific port listening as SOCKS or HTTPS (HTTP/CONNECT) proxy. transparent_https is another similar custom made minimal solution.

Both above methods can be used on Android to forward traffic to an upstream proxy e.g. on internet or local network (22). Also see related details in this answer.

Setup interactive proxy like ZAP or mitmproxy on your local network (e.g. on router / gateway) using only routing / TPROXY (no DNAT/SNAT) and configure it to use your upstream proxy running in explicit mode (CONNECT).
Use Shared library interceptor method. See details in this answer.

SSL/TLS INTERCEPTION (MITM)

If the purpose of https proxy is the Access Control like logging, anti-virus scanning, content blocking, filtering or adaptation, SSL bumping (23, 24) is required on proxy server. In the absence of CONNECT, the very first HTTP request sent is already encrypted. So the proxy doesn't know who the original intended host is, (SNI may help but even with CONNECT method, you can't do DPI) without decrypting SSL.

It means that every outgoing SSL/TLS connection is to be terminated and re-established by proxy, so the proxy must be forced intercepting (like squid). But not every https proxy supports SSL decryption and working transparently (25); the s part needs special handling of Certificate Authorities. Proxy's root SSL certificate - which signs dynamically forged web server's certificate - needs to be added to credential store of client app and/or device (keeping this in consideration) to avoid invalid certificate errors. Or client may opt to ignore the errors, thus defeating the purpose of secure http.

If the purpose is not the filtering but only to hide visited websites from ISP / local network or to hide public IP from visited websites, an alternative is to do simple NAT on both sides i.e. on device or router and the remote proxy server. SSL Pass through is a similar approach.

RELATED:

How to set up a socks5 with Android cli?
Why is not all traffic captured from my device when routing through proxy?


Android installation age Is there a way to discover when my Android OS was installed? In other word: what is the age of the SO running in my phone (since the last FW upgrade)?

I have root access and I prefer not installing any extra apps to this task (altough, if it is the only way, I may install one). I already have a Terminal Emulator App.

I looked into "Settings -> About phone" and there is a counter since the last reboot, which is not what I want.

I am running Android 4.0.4 on a Sony Xperia P.

I have no idea how to know the last Android OS installation date. But if you logged in to your Google account at that day, you can search the log in date. Browse there, verify your phone model and check authorization date. Hope it works!


How to set MAC address on (HTC Desire) Android terminal emulator? I typed into the terminal this:

  ip link set eth0 address
  XX:XX:XX:XX:XX:XX

the XX for my numbers and so on.

But it says permission denied.

Source: http://androidforums.com/incredible-tips-tricks/78668-how-spoof-mac-address.html

This seems like your terminal doesn't have root access. Is your phone rooted? and did you type su to get to the root user first? On my phone you can tell if you're using root privileges by checking the prompt, $ = no root, # = root.


malware adding to Google Contacts I found a contact that I don't recognize. Is there a way for an Android phone malware to add to my Google Contacts?

I generally only run Skype and YouTube on the phone. Occasionally I use the default browser.

An app must have permission to access your contacts in order to modify them. When you install an app, prior to Android 6, you have to agree to the permissions it requests in order to install. Android 6 and later you have to agree to permissions when you run the app. An app doesn't visibly have to do anything with your contacts to modify them; as long as it is running, it can work with whatever it has permission to access.

So, you might check the permissions for various apps you use and see if they have been granted access to contacts. You can do this through Settings > Apps > (each app).

Also, you might consider the browsers you use. If a browser has access to contacts, it might be possible (I don't know for sure) for javascript or some browser extension to write to contacts.

One more thing to be wary of: if you have installed a custom keyboard, it can be a source of compromising your system. For example, an untrustworthy keyboard could capture account names passwords and send them to some hidden third party.


Is it possible to enable Location Services via Shell? Is it possible to enable Location Services(GPS or Google NetworkLocation) via ADB or Terminal Emulator?
I'm on a rooted Phone.

Extra Points: Is it also possible to change other system-related settings?

For Android 6.0

To Enable use :

For GPS : adb shell settings put secure location_providers_allowed +gps

For Network : adb shell settings put secure location_providers_allowed +network

To Disable :

GPS : adb shell settings put secure location_providers_allowed -gps

For Network : adb shell settings put secure location_providers_allowed -network


How to use internet from another basic mobile through bluetooth? How to connect an android phone with the basic phone having unlimited data packs . How to use the data on their phone in android using bluetooth?

If that basic mobile has the future of bluetooth hotspot, you can make use of that. Otherwise it can't be done as per your requirements.


android - can't send or receive sms with android official sms app after i installed custom ROM on my phone(android 4.2.2), i rooted it and uninstalled hangouts(system app).

[i think] hangouts was default sms app
after installing ROM .

now i can't receive  sms with android official sms app.
and when i send sms  , it always stay on sending status.

but i haven't any problem with other sms apps(go sms, hangouts[after reinstall],...)

I'm need to send or receive  sms with android official sms app.any ideas welcome.

P.S:

1.i installed new ROM for my
phone locked on bootloop

2.i not found any difference between old ROM and new ROM.

3.i checked sms center number.

i re-flashed my phone official ROM (without losing data by this learn) and now this problem solved!


How to mount a remote FTP share as local folder/directory? I would like to mount a remote FTP share as local directory (or drive) on Cyanogenmod and be able to access it like it was a regular folder and browse files on it.

Ideally, an app would mount FTP as a folder and let me browse files in it outside of that app, but if it can be done without any app, it is also acceptable. The folder need to be browsable by any application afterwards.

Can anyone suggest a solution?

Thank you in advance

This won't directly mount it as a drive but ASTRO File Manager can emulate that experience. It will give you the same experience it does for local filesystems but with a FTP file system.

https://play.google.com/store/apps/details?id=com.metago.astro for the download.


How to setup a reverse USB tethering connection (multiplatform)? I've tried to setup a reverse USB tethering connection to share an internet connection from a macbook to a smart phone running Android 7.0 using this tutorial but I can't seem to get there 100%.

Here's what's working:

HoRNDIS-rel8 install (restart was required)
Tethering & portable hotspot > USB tethering is enabled / Tethered Enabled Internet
Sharing from WiFi to Android device Android device appears connected
via DHCP in Network Preferences pinging works both ways (from OSX to
Android and back) route works and outputs something like this:

Destination: 192.168.42.0, Gateway: *, Genmask: 255.255.255.0, Flags: U, Metric: 0, Ref: 0, Use 0, Iface: rndis0

What doesn't work:

netcfg is missing
pinging google.com or accessing anything from the internet doesn't work

I've tried running route add default gw 10.42.0.1 dev rndis0
which resulted in

route: resolving 'gw'

I've tried disabling the other shared interface (which weren't connected anyway) such as USB Ethernet and Thunderbolt Ethernet,
disabling/re-enabling USB tethering but the Router for this interface in Network Preferences is still `192.168.42.129`, just the IP changes.

Any hints of what I might be missing or how I can make this work ?

Thank you,
George

For documentation purposes here is an expanded version of the comments.

Option 1: SimpleRT does work and the device gets an IP on the local network which is a plus. On the downside, it supports a single android device and doesn't support hot-plugging at the moment, however, the software is free and open-source (another plus)

Option 2: Reverse Tethering NoRoot.
I've tried the free app and it's a great app: minimal easy to understand UI, the server app on desktop is brilliant in it's simplicity. It supports multiple clients and hot-plugging (great pluses to have). At the moment it doesn't look like the android device gets an IP on the local network which would be great feature.

In conclusion: if you simply need to connect multiple android devices to the internet via USB and don't mind the lack of a LAN IP for the devices, Reverse Tethering NoRoot is the easiest option.


Blank screenshots on Android tablet I use ddms to take screenshots of my phone and it works fine, but when I try to do the same with my tablet I just get a black image. The phone is a Samsung Intercept running Android 2.2; the tablet is a ViewSonic gTablet with Cyanogenmod 7. I found a forum post that mentions that Tegra devices (like the gTablet) don't use fb0, so normal screenshots don't work, but it also claims that screenshots taken through adb connections work and they don't for me -- I get the same black image. Is that the reason ddms doesn't work on my tablet? Is there a workaround that will let me take screenshots?

I believe I have one of these device (mine is branded as something else but the US brand is the ViewSonic gTablet). I cannot recall if I have tried to do a screenshot with DDMS or not. I don't know why the forums you read would say adb would work becuase ADB uses the same method as DDMS.

I will try my device when I get home from work today, in the mean time, I have read that these apps should work with the device.

All of these are paid apps, they may have a free/lite version but I dont know if they will work for your issue.
Screenshot ER - Requires Root
Screen Shot It - Requires Root
No Root Screen Shot It - NO ROOT REQUIRED (but I am not sure if this works)


nexus S partition scheme, can it be changed? planning on moving from the Nexus One to the S.

the only thing I don't like about the S is the 512ram and the 1GB for apps.

I tried to search forums, but found nothing relevant about this quesiton:

Is it possible to partition it something like

/system 6Gb
/SD 9Gb
/swap 1Gb

?

i'm comfortable flashing custom roms, but i never dealt with partitions.

Not sure this helps you 100% as I've never done this on the Nexus S but I did it on the HTC Desire, which the manufacturer gave a laughably small area for user installed apps.  I follows this tutorial:

http://alpharev.nl/

Basically you're using fastboot to put a new hboot down. I suggest googling for more info about these; whether there's an existing one close enough to your requirements, or if it's easy to create them yourself.


Android Emulator size issue I'm having some issues managing/running AVDs from the commandline.  Whatever device I create/run seems to get cropped and displayed wrongly (see below).  I've tried various devices and settings (-scale) and have looked at the avd config files (they just seem to get reset after I make a change).
How can I fix this?
System Info:

Windows 10;
Latest Android SDK (manual install - no Android Studio);
Android Version: 23

Make sure you select the right device resolution and screen size

There are a variety of options for example:

dpi (1440 x 2560)
xxhdpi (1080 x 1920)
tvdpi (800 x1280)
xhdpi (1080 x1920)

In my setup (API 23)

Here is my configuration:

5 inch screen size
Density 480
Monitor dpi 96

Can you check if these values correct you problem, I suggest you try from GUI this time:

See image:

To start from GUI go to the folder where android sdk was extracted for example:

C:\Users\Test\Android\android-sdk\AVD Manager.exe


USB device not recognized. USB device not recognized. The last USB device you connected to this computer malfunctioned, and windows does not recognize it. This is Windows 10

Originally my Windows 10 was working just fine and my pictures were imported with no issues. However, we had switched to Lenux (ms) and did not like it so we went to Best Buy Geek Squad and had Lenux removed and Windows 10 restored. Now I get the message I put above and I have no idea why or what to do and I need to get my pictures off my Samsung Galaxy s6 phone. Help?

Some computers only recognize devices when they are plugged into the right usb ports. Have you tried using a different port? Also, some chords can be finicky, some of the cheaper ones don't like you when you try to do get into a device like that. Another thing you can try is to do like someone commented, and make sure you have the right driver for your device for your computer to recognize it. Just google search for the right driver for your model.


Can we make a Vpn server run on Android? Can we make a Vpn server run on Android. Can applications do this? If yes, which protocols are supported and is this a good idea to use such apps? If not, what are some issues that we may face?

Yes we can run VPN server on Android, but not without root. Stock Android doesn't support VPN servers, even many protocols aren't supported as client too, so you have to install third party apps. There are apps like Servers Ultimate which offer VPN server, but I haven't tested. CLI keeps life simple:

Build openvpn static binary and copy to /system/bin.
Create a basic server configuration file:

### /etc/openvpn/server.conf

# basic configuration
port 69
proto udp
dev tun
mode server
tls-server
keepalive 10 120

# dynamic IP pool
server 10.8.0.0 255.255.255.0

# send RESTART command to clients if tunnel is restarted (UDP)
explicit-exit-notify 1

# configure like a "traditional" broadcast-based network
topology subnet
push "topology subnet"

# send all traffic from client to VPN
push "redirect-gateway def1 bypass-dhcp"

# DNS nameservers
push "dhcp-option DNS 1.1.1.1"
push "dhcp-option DNS 1.0.0.1"

# certificates and keys to use
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
tls-crypt tc.key

# cipher algorithm to use for encryption
cipher AES-256-CBC

# log files
log /data/media/0/openvpn.log
status /data/media/0/openvpn-status.log
verb 3

# do not recreate TUN interface on reset (SIGUSR1)
persist-tun

# do not reread key files on reset (SIGUSR1)
persist-key

Create server keys and certificates. tc.key can be created by executing openvpn --genkey --secret tc.key.
ca.crt, server.key, server.crt and dh2048.pem are built using EasyRSA. It can be done easily on a Linux/Windows PC, on Android it rquires some extra effort:

~$ easyrsa init-pki
~$ easyrsa build-ca
~$ easyrsa build-server-full server nopass
~$ easyrsa gen-dh

Copy configuration file, certificates and keys to /etc/openvpn/ and set permissions:

~# chmod 0600 /etc/openvpn/{ca.crt,dh2048.pem,server.crt,server.key,tc.key}
~# chmod 0644 /etc/openvpn/server.conf
~# chmod 0755 /system/bin/openvpn
~# chown -R 0.0 /etc/openvpn /system/bin/openvpn

In the same way build client key and certificate using EasyRSA:

~$ easyrsa --days=30 build-client-full client nopass

Copy the contents of ca.cert, client.key, client.crt and tc.key to client configuration file. Also add public IP address of Android device if want to connect from internet or local (WiFi/hotspot) IP address:

### client.ovpn

client
dev tun
auth-nocache
verb 3

remote-cert-tls server
cipher AES-256-CBC

pull
resolv-retry infinite

remote <IP_ADDRESS> 69 udp
nobind
connect-retry 5 5
connect-timeout 10

# only for Windows
#block-outside-dns

<ca> INSERT_HERE </ca>
<cert> INSERT_HERE </cert>
<key> INSERT_HERE </key>
<tls-crypt> INSERT_HERE </tls-crypt>

Android ignores main table at all, create custom rule and insert routes:

~# ip rule add table 5000 priority 5000
~# ip route add 10.8.0.0/24 dev tun0 table 5000
~# ip route add 192.168.43.0/24 dev wlan0 table 5000
~# ip route add default dev rmnet_data1 table 5000

Where rmnet_data1 is the interface connecting to Mobile Data and wlan0 is WiFi or hotspot. Adjust interface names and network addresses according to your device.

Setup forwarding and source NAT:

~# echo -n 1 >/proc/sys/net/ipv4/ip_forward
~# iptables -I FORWARD -i tun+ -j ACCEPT
~# iptables -I FORWARD -o tun+ -j ACCEPT
~# iptables -t nat -I POSTROUTING -o rmnet_data1 -j MASQUERADE

Run server, but first make a minor adjustment due to difference in Android vs. Linux:

~# mkdir /dev/net
~# ln -s /dev/tun /dev/net/tun

~# openvpn --cd /etc/openvpn/ --config server.conf

Import the client.ovpn in any OpenVPN client app (on Android / Windows / Linux) and connect.

You can do advanced configuration on server, run it as an Android init service, or what ever you want.

RELATED:

How to run SSH/SFTP server for multiple user logins with password authentication on Android?
How to use your Android phone as a proxy server?


Can't delete any files in my download folder asus sl101 slider running cyanogenmod 10

This problem actually started around when I upgraded to cm9.1 and I think I got an error that my android profile had changed or something. from that day forward I have been unable to delete anything in my downloads folder.

The following did not work

rm /sdcard/download/filename
removing with rootbrowser
adb shell> rm /sdcard/download/filename
remounting the sdcard

I get the error that the folder is read only and when I try to change permissions it wont let me.

I was able to

mv /sdcard/download /sdcard/download.back
mkdir /sdcard/download

but still cannot delete from the old download folder.

Eek!

I'm not sure if you're still having this issue or not, but a couple of things that come to mind:

In the output you paste in your responses, you mix terminal output with $ and #. You need to be root all the time which means that you should always see a #.
If I were you, I would first check the permissions on the old download directory with something like ls -alh | grep <foldername>. Who owns the directory, what group?
Try changing ownership with chown, changing chmod to 777 recursively (just throwing stuff at the wall here to see what sticks). After setting yourself (root) as the owner and giving everyone full rights to the directory recursively, I would try rm -rfv <foldername> and see what output I got.

Hopefully this might help someone else. Also, when you do ls -alh it should show you if it's a symlink, and if so to where. If it's a mounted folder, I would run something like mount | grep <foldername> to see what's going on.


Sync files to the cloud, but only upload differential changes? I want to maintain a large file synced between my android device and a PC. I will be doing small changes to this file file all the time on the device, and I want these changes to be reflected on the PC. Ideally the file should not be uploaded in full everytime it changes (because it is so big), but only the differential changes (which are small). Is there a tool  / app that does this? Does Dropbox / Dropsync work like this?

Update: This says that Dropbox only uploads the differential part. But I do not know if the same applies to Dropsync.

Differential sync or Delta sync is a feature that is available only on the PC version and not on Android as explained in Dropbox help pages Delta sync for Android

  Power:....Delta sync means you have to carry out hashing operations on the file, which on pretty much all mobile devices is a non-power optimised operation....

  Hashing Overheads for small files: Now, if the file is very large, and the change set is very small, sure there will be a tipping point, but for mobile stuff we aren't talking about a usage pattern which generally covers files hundreds of MB upward in size being edited, its going to be brand new files (photos, videos etc) or small changes to documents etc....You aren't going to be editing huge videos on an Android phone or tablets for example.

(Emphasis Supplied)

If Dropbox for Android doesn't do Delta Sync, Dropsync logically cannot do, since it feeds Dropbox. Besides, app forum talks of comparing files but not differential or Delta sync
I couldn't find any alternative cloud solutions that implement this sync on Android, perhaps for the reason mentioned earlier. Even services like Own Cloud which have an Android app, give similar reasons
Only alternative I can think of is using rsync which does incremental backups, which is faster than differential backup (See a nice tabulated summary here)

Some pointers that may help you implement this solution ( should you decide on this route, it may help to ask a separate question for details )

How it is implemented for USB backup. Sync ext SD to USB OTG **without** using a PC
See footnotes of Izzy's answer for app based solution using rsync for Android and where to download it from
From SE.ubuntu , How to rsync to Android


How to install ROMs without ClockWorkMod in Huawei U8800 I have official Huawei ROM installed on my U8800 (Android 2.3.5) and I want to try some custom ROMs like MIUI. So I researched and find out that I need to replace default recovery.img file in /.cust_backup/image with ClockWorkMod Recovery image file. After I replaced this file successfully tried to boot into Recovery using reboot recovery command (also tried pressing [VOL+]+[Power]) but my phone didn't flash CWM but started to reboot several times instead. After 2 or 3 reboots phone is starting normally without flashing CWM. Then I restored replaced recovery.img with my backed-up one and rebooted, default Recovery screen flashed with no problem. I used official CWM Recovery image (5.0.2.6) for U8800 and some other unofficial CWM images for U8800. But none of them worked. I could neither solve this problem nor find another way to install my ROM Zip from SDCARD. Does anyone know what can I do to solve these?

After trying a lot of different Recovery images finally one of them worked. CWM 5.0.2.7 flashed successfully. People with the same problem can download the working recovery image file from this link