Thursday, October 30, 2014

settings - Screen overlay detected, what is the problem?


I wanted to open a picture sent by a friend in the Sketch app in order to highlight something and send it back. The app didn't have permission to access the file system. A popup appeared. I clicked "Allow", then, "Screen overlay detected" appeared and it just wouldn't let me through.


Now, I've read that I can disable screen overlay, add the permissions, and then re-enable it, but I don't feel like going through all my apps to see what permissions they need, neither I feel like disabling & enabling this every time I need to allow something.


Is there any reason why Google did this? I guess there must be a serious security concern, since this is very user unfriendly, but I have no idea what that could be.


See the pictures in the following question for examples of the problem



Answer



This is to prevent 'Tapjacking'.




It works in a surprisingly simple way – you download an application and open it, which triggers the installation of a second, this time malicious, application. Then, when you press a button on the seemingly innocent application, you are actually clicking a button on the malicious application that is hidden within it. So, as its name suggests, the trap is in the tap.


So, imagine this scenario. You have downloaded an application and on the main screen there is a button that says “Start Game”. You click it to begin but, unbeknownst to you, this has triggered the downloading of the dangerous malware. On the next screen you continue clicking away, oblivious to the dangers, and without realizing you have accepted the terms and conditions of the dangerous malware that has hidden itself on your cellphone.



Source


So when Android detects an app is appearing as an overlay it prevents the user from granting permissions or clicking on install when sideloading an app (and possibly more scenarios).


An app developer can opt into this behaviour if the user is doing something that needs to be secure:



Sometimes it is essential that an application be able to verify that an action is being performed with the full knowledge and consent of the user, such as granting a permission request, making a purchase or clicking on an advertisement. Unfortunately, a malicious application could try to spoof the user into performing these actions, unaware, by concealing the intended purpose of the view. As a remedy, the framework offers a touch filtering mechanism that can be used to improve the security of views that provide access to sensitive functionality.



Source



Wednesday, October 29, 2014

security - When you lock down a Lollipop device to disable Chrome's incognito mode, this creates an XML "restrictions file". What actual XML is inside the file?


Note: If this post is too long to read, please see the summary in the last paragraph.


I own an aging Samsung Galaxy S Relay cellphone. It's running Android 4.1.2 and has a built-in physical keyboard. I don't want to upgrade to newer hardware. They say in the XDA Developers forums that, if I want a built-in physical keyboard, the Galaxy S Relay is still the most powerful option available — even though it uses technology which is more than two years old.


I want to help prevent myself from viewing pornography. (I've already joined a twelve-step program for sex addicts, but I still want a second layer of protection.)



I've installed the Qustodio web filter. This web filter only lets me choose between two web browsers: the Android stock browser, or Google Chrome. But it's easy to get around Qustodio. Oddly enough, all I have to do is to enter my browser's incognito mode. Qustodio claims that, when I enter incognito mode, it can detect what I've done and stop me from surfing the web; but, in practice, I've found that it can't.


In a help center article, Qustodio LLC does admit:



Please note that our incognito blocking feature is still experimental.



Fine. Well, I want to reliably stop myself from entering my browser's incognito mode.


I suppose I could switch to a different browser. I could choose the K9 browser. But their (Firefox-based) browser is poorly rated and hasn't received any security updates in the last two years.


Google Chrome for Android is now open source. I suppose I could modify the Chrome source code to disable incognito browsing. But it would be a hassle to keep the browser up to date.


So I guess I'd like to set the relevant Chrome policy instead. I'd need to set the IncognitoModeAvailability policy to 1 in order to disable incognito browsing.


On recent versions of Android (and definitely on Android 5.0 "Lollipop" and newer), you can use an app such as Google's BasicManagedProfile sample app. This will call the DevicePolicyManager's setApplicationRestrictions method (see documentation or source). This method will eventually call the UserManagerService's writeApplicationRestrictionsLocked method (see source). The latter method will, in turn, write some XML to a "restrictions file" in a place where Google Chrome knows to look.



Because I'm running Android 4.1.2: I doubt that I can run the sample app. And I'm sure I can't call either of the two methods.


I suppose I could upgrade the phone to a newer OS. T-Mobile doesn't offer any updates newer than Android 4.1.2. On the XDA Developers forums, "Magamo" points out that CyanogenMod seems to have withdrawn official support for the device a while ago -- even before any stable Lollipop-based ROMs were released. I could choose and find some other ROM. But I've never installed a third-party ROM before, and would rather not learn how to do so.


Dear users of Android 5.0 or higher:


What actual XML does this "restrictions file" contain? Where does it get saved?


(I suppose I could fire up Lollipop in the official emulator and find out for myself, but it's simpler to just ask here.)


Perhaps I can simply create a "restrictions file" in the correct location on my Android 4.1.2 device.


TL;DR: When you reconfigure a Lollipop device in order to disable Chrome's incognito mode, your action will cause an XML "restrictions file" to be saved to disk. What actual XML is inside the file? Where is the file stored? I want to try manually creating a "restrictions file" on a Jelly Bean device in order to see if it will do what I want.



Answer



The XML file alone will not help you. Chrome doesn't read the contents of that file directly. Instead, it accesses it via Android's UserManager.getApplicationRestrictions. In order for this to work, you actually need to set up a "work profile" on your device. In order to do that, you actually need to run the BasicManagedProfile app you have mentioned; this also requires encrypting the device.


Android 4.1.2 is kind of old. From searching at http://www.androidxref.com/, it looks like it lacks UserManager.getApplicationRestrictions. Luckily, there's another way to disable incognito browsing in Chrome. Try that way instead.



How to automatically shutdown below certain battery level


Is there a way to make my phone turn off when the battery level is below 50%?


At the moment it does this when the battery level (or voltage) is critically low, but I want it to do it when there is still half the juice left.


A paid app would be fine too.




How to force phone to switch to faster mobile data network during file transfer


For some context, I am downloading Dragon Mobile Assistant which is a 40+ mb apk from the Google Play Store.



I have an unreliable connection to Verizon Wireless' 3G mobile data network. If I am a few inches too far to the right of a sweet spot, the signal quality will degrade and I will be passed off to 1X. If I am in the middle of a download, it'll just pass me over with no interruption. However, it will not pass me back to 3G during the transfer once quality to that network is "good enough."


This is highly annoying, because if I am downloading a big file, it basically comes to a screeching halt on the horrible 1X network. Sometimes it is even better to cancel the download, wait to be passed back to 3G and restart the download.


Is there anyway on a Droid 3, rooted stock android 2.3.4, to have my phone continue to poll the 3G network and switch to it even while it's transferring data on 1X? It already allows me to go down during a transfer, why can't I go up?



Answer



I hate when that happens. It happened to me more times than I could count while I was traveling through western Maryland (and it's even worse when the phone mysteriously switches from 4G to 1X and refuses to go back to 4G or even 3G)...


Anyway, there are three things you can try.


The first, obvious one is to relocate the phone to somewhere that you get a better signal. This may not help much at all if you're in a fringe coverage area and in a residence, but it's definitely something you should attempt.


Next, to force the phone to reconnect to the network, just toggle airplane mode on and off. (BTW, don't bother with any of those so-called "network signal booster" apps. All they do is toggle airplane mode on and off, hiding the notification bar so you can't see what it's doing.) This is probably your best bet. In my experience this will get your high speed connection back most of the time, but you still aren't guaranteed to keep it long enough to finish your download.


Your phone also has a secret menu which can be accessed by entering *#*#4636#*#* into the dialer. In this menu you can view various statistics about the mobile data connection, as well as change which network types the device will try to connect to. (The exact types vary by device and firmware revision, and I don't have a Droid 3 on hand, so you'll just have to look and see for yourself.) In my experience, though, this didn't help much; the phone would just give me no data service instead of 1X, or refuse to connect to 3G/4G, or to any network at all. Also, be careful in this menu; if you change a setting and don't know what to change it back to, you could completely kill your ability to connect to the network, requiring a factory reset.


Tuesday, October 28, 2014

Does Nexus 7 2013 have 3G support?


Nexus 7 2013 has 4G support, but I can't find any information on 3G support. If I get a Nexus 7 4G model, can I use 3G?



Answer



The current New Nexus 7's only support wifi. They do not support any mobile data yet. But once they are released with mobile data support, you can count on them supporting older networks, like 3g (HSPA/HSPA+) as well as supporting 4g (LTE). LTE coverage is not wide enough for them to only support 4g.


Monday, October 27, 2014

wi fi - Activating wifi hotspot tethering on a Verizon Droid with Froyo 2.2



I rooted my Droid and got Froyo working on it (Bugless Beast).


What is the best way to enable Wifi Hotspot on this thing?


I tried an app "Wireless Tether" which allows me to connect my Mac via Wifi, but it doesn't assign a valid IP address to it.




Sunday, October 26, 2014

cyanogenmod - Second partition can't be mounted (link2sd)


I'm trying to partition my external SD card (32GB SDHC), so I can link application to the second partition with link2sd. Now the problem is that, no matter what filesystem I use, link2sd can't create the mount script/fails to mount. I tried FAT32, FAT16, ext2, ext3 and ext4. Same result everytime, I tried formatting it with MiniTool Partition Wizard and ClockworkMod Recovery. I made the first Partition a FAT32 primary and the second partition an put in filesystem here primary partition. I also tried diffrent sizes between 256MB and 4GB.


I'm on Cyanogenmod 10 running on an Samsung Galaxy Ace (I-5380).


Edit: It seems like the question is quite popular. If you have the same issue, try the things that I said I tried above. In most cases this resolves the issue, my accepted answer is for a silly not so common cause for this issue.



Answer



Ok the problem was simple and stupid. SuperSU had denied link2sd its root access permanently, I must have clicked on denied once... Enabled root access for link2sd and everything was working fine.


Battery usage by certain applications


Can I find out how much battery takes running of certain application? The goal is to minimize using applications that take a lot of battery and maximize battery persistence before having to recharge.



Answer



If you go to Settings -> Battery(settings -> about phone -> battery in < ICS) . You'll see battery usage by everything running on your phone. If some certain application consumes very high battery, it will be listed there along with battery usage. You can then minimize use of such application.


enter image description here


charging - Where are the battery capacity files located?


Background


My current device Huawei Honor 6 comes with a 3100 mAh battery. I was therefore surprised to see 3C Toolbox Pro report the capacity as 4000 mAh.


I mailed the developer of the app and his reply was on these lines



In Android, one can get the stock hard-coded battery capacity from battery profiles, an hidden API in Android. That’s the one of the 2 sources the app uses.


The other source is in the kernel, usually under /sys/devices/power_supply/battery/charge_full_design



( To know the path on your device, from 3C Toolbox, tap request support from Help and support menu. An email will be generated to the developer having information about your device, including battery_info.txt. This file amongst other things specifies the path of second source )



So, the battery capacity and state of battery as reported in percentage depends on from which of these two sources it is being read and the two sources could hold different values (In my case, it was the stock ROM shipped with wrong capacity in the battery profiles)


This explanation fits in well with battery capacity being reported differently by apps as also mismatched battery readings using an extended battery (Note: These two questions are of '14 vintage and based on the location of battery files as mentioned, I have answered)


Question


I have been scouring the net, various forums, Android Developers etc to get an authoritative source for this rather than a mail communication. This would help me understand better and also answer such questions with a good reference


Can someone point to an authoritative source that supports or offers an alternative explanation ?


Edit: I am looking for generic information , not specific to my device



Answer



I think the answer in the email is legit, here's why:


All of the following information is based on the Google Nexus 5, but the general procedure should apply for all Android phones.


The mail describes two possible sources for an app developer to get the information on how high the battery charge is on full capcity:




  1. Reading from the sysfs file in the Android file system (/sys/devices/power_supply/battery/charge_full_design).

  2. Using the Android private API. Private in this case means that only system apps (from Google) have access to this information. But an app developer can use a few tricks (described here) to get access to this information too.


Both of these methods have their own source for the "charge at full capacity" value.


1.: In the Nexus 5 this file is created by the driver responsible for handling the chip (Maxim MAX17048) which measures the remaining capcity on the battery. The source code of this driver can be found here. The driver uses additional files to get device specific information. This information is fixed and usually provided by the smartphone manufacturer. The file used for the driver in the Nexus 5 also contains a value called fcc-mah. You will get the content of this value if you read from the /sys/devices/power_supply/battery/charge_full_design file in the Nexus 5.


2.: Another way is provided by the private Android API. This API uses power profiles to know how much energy every component approximately consumes. The Google documentation says:



Device manufacturers must provide a component power profile that defines the current consumption value for the component and the approximate battery drain caused by the component over time. This profile is defined in platform/frameworks/base/core/res/res/xml/power_profile.xml. For guidance on these settings, see Power Values.




The power_profile.xml also holds a value called battery.capacity which can be read via the API. This value also holds the maximum capacity of the battery.


To get the power_profile.xml for your device, do the following:



  • Use ADB to get the the framework-res.apk: adb pull /system/framework/framework-res.apk

  • Follow these instructions to get a readable version of power_profile.xml

  • Path to the extracted file is: framework-res/res/xml/power_profile.xml




So depending on how a developer chooses to get the "charge at full capacity" value, he may get different results. Especially when I look at the driver file for the Huawei Honor 6, one can see that there are different values depending on the used battery type.


One could assume that a lazy manufacturer does not update the files in the driver or the power profile appropriately for the used battery, which in return causes the different values.



Form a developers perspective the second method is more attractive and easier to implement (again, see this answer). The first method needs access to the Android file system and root privileges.


Saturday, October 25, 2014

rooting - fastboot doesn't see device



I've read a lot of articles about this problem but I can't resolve it. I decided to install my developer application on phone using wifi. To do this I need to do some things with my phone. The first step is to unlock bootloader. I stack on step 8, fastboot oem get_identifier_token shows info < waiting to device >. adb sees my device but fastboot can't. An idea?


My phone is HTC Wildfire S and these are steps which I am following:



  1. I restarted phone and entered into FASTBOOT USB mode

  2. I tried to run fastboot oem get_identifier_token command but without success.


I use Windows 7 Professional and my phone is recognized as HT1CSTR05155.



Answer



Problem solved. At the end I saw that drivers for android were not installed. I installed drivers from this site http://forum.xda-developers.com/showthread.php?t=2126036 and device is visible by fastboot. One thing I don't understand is why adb saw device and fastboot not.


Does freezing apps in Titanium Backup Pro require a phone reboot to take effect?


When freezing apps using Titanium Backup Pro, do I have to reboot for the freeze to take effect? (e.g. not be started anymore, even if applicaple Intent is fired off?)


Does it depend on whether the app is a system one or not?


If it matters, environment is Droid X (Stock 2.2 Froyo, rooted), latest Market version of TBPro.


I tried checking on TB Wiki and found zero reference to rebooting or not as far as freezing functionality.





Here's a specific example: consider the following sequence:




  1. "GPS location changed" intent fires off.




  2. A mapping application "MyGMaps" which is registered for this intent is started to handle it





  3. I kill that application's process(es) - all of them - via Advanced Task Killer




  4. I freeze "MyGMaps" via Titanium Backup Pro




  5. At this point, "MyGMaps" process is NOT running




  6. "GPS location changed" intent fires off again





  7. What happens here? Will "MyGMaps" be started again due to the intent in #6, despite the fact that it's "Frozen"?




My understanding is that, once I reboot the phone after freezing, the app will no longer start at all. But what happens in step #7, right after the freeze but without a reboot?




Android 5.0.0 on Nexus 5 stuck on boot logo


I just recently received the 5.0 update for my Nexus 5 and now my device fails to boot. All that happens is the Google logo gets displayed on the screen and then the device does nothing else. I am able to get into both the bootloader and recovery.


First I tried wiping the cache with no results. Next I did a full factory reset with no results. After that I decided to just flash the factory images directly. Unfortunately this didn't work either. I went back into recovery and discovered that there were a series of error messages displayed in the recovery menu...


E:failed to mount /cache (No such file or directory)

E:Can't mount /cache/recovery/log
E:Can't open /cache/recovery/log
E:failed to mount /cache (No such file or directory)
E:Can't mount /cache/recovery/last_log
E:Can't open /cache/recovery/last_log
E:failed to mount /cache (No such file or directory)
E:Can't mount /cache/recovery/last_install
E:Can't open /cache/recovery/last_install
E:Can't open /dev/block/platform/msm_sdcc.1/by-name/misc
E:failed to mount /cache (No such file or directory)


Also after these messages were displayed I could not wipe the cache or do another factory reset.


Luckily I am able to flash the 4.4.4 factory images and boot the device successfully so my guess is that something might be going wrong with the installation.


Has anyone else encountered similar errors when updating to 5.0?


Thank you in advance for any and all help!




sd card - Unable to get bluestack downloaded data



I installed Bluestacks and I am trying to access files downloaded via Bluestacks but I seem not to find these files (folder is empty). I have also installed ES file explorer . Can anyone provide a good solution on how to access these files ?




settings - How do I disable the 'click' sound on the camera app?


When I take a picture it makes a 'click' sound. As this is default behavior, I would like to turn it off. Is there a setting to do so; or if I find+delete the sound file, will there be repercussions?


**Please note I am looking for a basically permanent solution rather than one that I would need to set/unset with each use of the app. I like the idea of a root solution, or an app solution; but for the sake of non-root memory-hog slow-camera-app-starting people who can't afford to run another background service, let's make a...



Clarification: let's clarify that this is to do with the Motorola Droid (per the tag, sorry). I'm glad it works for other phone models, however to the best of my knowledge it is not a stock option (if I am wrong please point the way) from 2.0.1, 2.1, or 2.2 on the Motorola Droid. That is to say, unless you are referring to the overall volume controls, there is no volume control/mute for the camera application. (Settings options for camera are: zoom|flash|white balance|store location|focus/exposure settings).




I'd like to really tie this question's answer off with a bow: aside from the root option and app option, is there an option to turn off sound in the camera/system settings? [Temporarily muting the phone is a poor option.]



Answer



You'll need root to delete the sound file, but this should be it:


Delete /system/media/audio/ui/camera_click.ogg 

Repercussions? It won't play the sound anymore? :)


Alternatively, you could download another camera app that does not produce a camera sound.


Friday, October 24, 2014

rooting - How To Install/Root Vegan-Tab GingerEdition on Viewsonic gTablet


I recently purchased a Viewsonic gTabet and want to root the device with the Vegan-Tab Ginger Edition. I'm an absolute newbie when it comes to Android, I've been a Windows guy my whole life.


I'm looking for some instructions for "dummies" on how to get this OS installed on the tablet. I found this site here, but I'm not sure if this is enough detail. It looks like some of these steps assume prior knowledge of Android.


Does anyone have any detailed, step by step instructions on how to do this? Thanks for the help, looking forward to exploring this new world.



Answer



I actually found this site http://viewsonic-gtablet-for-dummies.webs.com/, reading through it, its great! Just what I need.


applications - Is it possible or not?


My question goes like this. As we know playstore has great no. of applications and we need to use many of them. but if we install many apps at a time phone becomes too slow. so we install apps only when required and later remove them but we store all backups on sdcard.


now for eg. i have backup of an app say mx player and its version is 8.4.32 but in playstore current version is 9... and other backups also have higher versions in playstore. is there any app or way to update all the backup file to current version available in playstore.





Thursday, October 23, 2014

Is it possible to use an Android device as X11 server for a remote machine over SSH?


When my desktop computer is up, I can connect to it with my notebook, even over the internet (I've set up my router to forward SSH to my desktop computer). My desktop computer runs GNU/Linux (Ubuntu distro), so I can use it with X terminal. My notebook also runs Ubuntu. I just need ssh -X desktop.ip.addr, then I can launch any program on my desktop machine.


So, the question is: what's the way of using Android as X-terminal over SSH?


I don't want to use VNC or other stuff. I think there must be some good SSH apps for Android (I've read about ConnectBot), but I haven't find anything about X11 (maybe it's my fault).




4.0 ice cream sandwich - How to install Android apps without having Google Play?


If you have Google Play application installed is very easy to find and install an application. But some devices seem not to have Google Play application installed. Maybe you can use Google Play in browser to search for those applications.


Is there a way you can find and download the .apk files if you know the application name without rooting and installing Google Play application?



Answer



What you're referring to here is called sideloading - this is a term used when loading an app on to a device without using the/a market store.


It is possible to get APK files for apps, but there're generally good reasons why most developers don't make these publicly available - some developers will make these available thought, it depends on the individual.


I would email the developer in question and ask if you could have an APK version of the app. I wouldn't imagine that they would have any issues with this if your request is legitimate and above board.


security - Preventing installed apps from making calls or sending SMS


It seems like a growing number of (seemingly legitimate) apps casually claim the "Services that cost you money" permissions (making calls and sending SMS) for non-essential secondary features that aren't the main thing people download the app for.


A couple of examples I've seen recently are Any.Do and 2Do. These apps' primary purpose is managing to do lists and projects, but they have secondary minor features that use these permissions (I think it is for scheduling responses to missed calls and sharing tasks by SMS).


I don't want to allow any non-official app on my phone to make phone calls or send SMS. It's just not something I need 3rd party apps to do for me, and I'm not interested in these secondary features. The developers look reasonably legit - but I generally prefer not to feel like I'm unneccessarily handing a company I don't know an open wallet. But I would, ideally, like to be able to use these apps for their primary features, which appear to be very good and better than the competition for what I want.


Is there any way to download these apps and prevent these permissions from being used? Or to make it so any time they did try to make a call or send an SMS, I get some kind of system confirmation notice and the opportunity to stop it before it happens.


(please note this isn't a question about to-do apps, I'm aware there are loads of alternatives that don't use these permissions. It's a question about any kind of app you want for any reason, that requires call and SMS permissions for a non-essential minor feature you're not going to use)





Ideally I'd prefer not to need to root the phone to do this. I've looked at the app Permission Denied (requires root acces) and while I love the idea of what the app does, it sounds like a complicated road that I don't have time to go down. Likewise for custom ROMs.


I don't mind if it's a blunt solution that stops any app except the Android phone interface itself from making calls or sending SMS. In fact, that would be ideal. I thought about trying to use an app like Tasker to set up a trigger on any ongoing call or SMS that cancels it if it wasn't called directly by the Android phone interface, but I doubt that it would work (and of course Tasker uses these permissions itself...).


Also ideally I'd prefer not to need to spend lots of time in airplane mode unable to receive normal calls or messages - but I'll accept a strong solution that involves using airplane mode some of the time if there is no better approach.


I also don't mind if a solution causes the app to crash or force close any time it tries to use one of these permissions. If it thinks it needs to make a call or SMS, that itself is a sign that something is wrong.


This earlier question covers somewhat similar ground but with a focus on data privacy, monitoring, and proper sandboxing for rooted phones. Only one answer there seems like it could be a non-root solution to this specific problem - the app App Shield - but it seems to be no longer available (dead link and nothing relevant in Google Play app search).


EDIT - I've added a seperate linked question trying to find out what the deal is with App Shield: Is App Shield safe, stable, available?




Phone is a Samsung Galaxy Note if that's relevant.



Answer




Marshmallow (Android 6) has a new permissions model. Applications targeting Marshmallow can now be restricted to fewer permissions at runtime, and these applications should fail gracefully, rather than the all-or-nothing permissions model of prior Android versions. In Marshmallow, this is a feature of the standard OS, and does not require rooting or additional applications.


home screen - How to remove this sliding app section?


A couple of weeks ago a sliding app section appeared on my home-screen. I have no idea how it got there, and no clue on how to disable/remove it. I tried all I could on the homescreen, to no luck.


Using Galaxy S3, Android 4.1.2, everything standard (so no custom launcher).


Screen shot showing sliding app section


Any ideas on how to remove it?



Answer



It's part of Samsung's multi window feature, and was added by a system update. To disable it, go to the main Settings app. In the Device group, click on Display. In the General group, there's a Multi window item. Uncheck this setting to turn off the sliding tray.


If you want to use the multi window feature sometimes, but don't want the sliding tray there all of the time, you can add an item to the quick setting menu (at the top of the notification panel). The setting for that is also in SettingsDisplay. Click Notification panel to go to a page that lets you drag buttons on and off the quick setting menu. Multi window is one of the items, and that button toggles the tray on and off.


6.0 marshmallow - Grant an app write access to external storage that does not request it?



I would like to grant the Syncthing app write access to external storage in Marshmallow. The app does not request it explicitly (unlike other apps that seem to use the Storage Access Framework to do so).


In the app permissions screen, there is no permission listed for external storage, only for 'storage' (which seems to mean internal storage). So there does not seem to be any direct way to grant this permission.


My phone is rooted and I could just run Syncthing as root - but this option creates many problems and sometimes results in the app hanging indefinitely.


Is there any other way around this problem?




Wednesday, October 22, 2014

How to see all the purchased apps in google play store


I have purchased several apps on Google Play Store. I've installed a new ROM, and I want to reinstall the purchased apps. Is there any way to see only purchased apps in play store.


I know that there is a way to see all the previously installed apps, but is there any filter to list only the purchased apps?




4.2 jelly bean - How do I scroll to the top of a list?


On iOS, I can single-tap the top of the screen to scroll any list all the way to the top. This doesn't seem to work on my Nexus 4 (4.2.1 / CM10.1) and for instance in the list of phone contacts this is particularly tedious.


Is there a similar gesture on Android?



I'm surprised that I couldn't find this as an existing question, but I did search for it.



Answer



There is a way to do this, based on the Xposed module installer. This requires rooted device!


As per this thread, tapping on the status bar will bring the scroll to the top.


It started out originally based on a thread in Reddit where this user blogged about her experience after ditching Apple for Android, and one of the things the user found troublesome was there was no way for Android to scroll to top, one of the devs that is a regular on the Xposed scene, developed the module to circumvent it.


Tuesday, October 21, 2014

I checked 'use as default' when choosing the default launcher, but now I can't start ADW.Launcher any more


I installed ADW.Launcher on my Galaxy S running Froyo (2.2) to check it out.


When it was installed, every time I pressed the 'home' button, I got a choice which launcher to start.


In the end I found this irritating, I choose the default installed one, and checked the 'use as default' check box.


All fine, but now, I can't seem to be able to start the ADW.Launcher any more.


No icon in my application list and none on my home screens.


How do I start ADW.Launcher again ( without re-installing it ). I verified that it is still installed on my device.




Answer



You need to remove the default setting for the Launcher application.


Menu | Settings | Applications | Manage applications | "All" | Launcher | Clear defaults


How do I delete a draft message (SMS)?


I have created a draft message using the standard HTC Desire message application. However I now want to delete the draft.


When I select the thread I see my previous message, and my draft text below. I select "Menu", "...More", and then "Delete" and am warned I am about to delete entire thread. Which is stupid. I want to delete my draft.


How do I delete a draft?



Answer



Just figured this one out having had the same problem myself (HTC Desire HD, Android 2.2)....


From the "All Messages" view, press the Menu button. A "Drafts" icon appears (a floppy disk icon) - press that, and it takes you to a view of all your drafts.


Press & hold a draft message to View/Delete or press the Menu button again & select Delete Drafts to go to a view where you can bulk mark the drafts you want to delete.


Hope that helps!



Monday, October 20, 2014

battery life - What is USB debugging? Can I keep it ON forever?


Sometimes I need to transfer some music from my PC to my Galaxy S2 and must always activate USB debugging. Then I think, can I keep it ON forever? I mean, Keep it ON for ever can give me a problem (cost battery?) ? And what's USB debugging?



Answer



Enabling USB debugging essentially starts up the adb daemon on your device, which allows it to communicate with adb on another device to enable debugging commands. It's used when developing and debugging applications, and allows you (primarily) to:



  • Transfer data between a computer and your device (both ways)

  • Read log data easily from logcat

  • Debug applications, including breakpoints and heap monitoring

  • Install and uninstall applications

  • Access a stripped-down shell on the device, for command-line interaction.



Leaving it enabled all the time will have a negligible impact on battery, if any at all. Some other things to consider about leaving it on (or not):



  • PRO: If your device has a hardware problem that prevents you from accessing the screen, USB debugging could be helpful in recovering data (especially on a rooted device).

  • PRO: You can install applications, reboot your device, and generally do some other convenient things without having to actually interact with your device physically, even with the screen locked/off.

  • PRO: On a rooted device it may be possible to regain entry if you have forgotten the screen lock password/pin/pattern (also a potential CON, see below).

  • PRO: You can take advantage of port forwarding over USB debugging to use tethering apps like PDANet (I believe that's how it's implemented since it does require it).

  • CON: If your device is lost or stolen, an unscrupulous individual could attempt to steal data from the device regardless of whether or not you've got a screen lock. If you're rooted, they can get pretty much everything.

  • CON: I recall reading that some devices can have trouble with accessing the SD card as a mass storage device when USB debugging is enabled. I've personally never seen this issue, but I have seen people allege that it was a problem.



See also: Using Hardware Devices from the Android SDK documentation which discusses debugging applications on physical devices (rather than the emulator). There is also a documentation page regarding the Android Debug Bridge (ADB) which explains its purpose and its commands.


adb - Why is my Galaxy S4 still not appearing as a device in Mac OS X


I am trying to solve the problem of having an empty list of devices when running adb devices. Why is it not appearing?


I have tried the following to no avail:



  • Installed Kies and ran Tools > Install driver; then restarted

  • Turned off the Mac OS X firewall in

  • run sudo adb devices instead of just adb devices


  • Read the user manual from Samsung, which simply refers me to use Kies

  • Attach S4 to a different macbook in case the USB input is faulty

  • Try both different USB inputs in my Macbook Pro


The output I see after doing a fresh restart and plugging in the S4:


./adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached


(with nothing more shown underneath)


Also, even after installing the drivers using Kies, the device does not appear there.


I am running OS X 10.9 on a Macbook Pro. The phone lights up and does start to charge when it is plugged in to any of the 2 USB ports on my Macbook.


What else can I try to have my brand new S4 appear in this device list?


EDIT It seems according to this thread (http://forums.androidcentral.com/samsung-galaxy-s4/282817-pc-cant-detect-galaxy-s4.html) that it may just be a faulty cable. I'm currently using the cable that came with the S4. I'll try other cables.



Answer



Answer: I was using the cable that Samsung provided with the phone


Solution: Go get a USB<>MiniUSB cable that was provided with a digital SLR a few years back and use that instead. The S4 now appears in the adb output and in Kies just fine.


Thankyou Samsung


Sunday, October 19, 2014

How does Over-the-air updates (OTA) work



I read the Wikipedia article but it's not totally clear on how Android updates are pushed to devices. This is what I understood but am not certain which is correct so please add details to approve or disapprove my statements.


Case A Phone has some service that periodically checks manufacturers servers (with some sort of polling) then if there is a new update it informs the user with a notification. User than clicks the notification and downloads and installs update from manufacturers server


Case B OS updates are just like ordinary software updates, there is a Google Cloud Messaging or similar broadcast receiver active on the phone and manufacturers just send message using this which shows user a notification. User than clicks the notification and downloads and installs update from manufacturers server


Case C Phone is notified about the updates by the mobile network (over-the-air provisioning (OTAP) like MMS and WAP settings) and than it shows a notification of the update. User than clicks the notification and downloads and installs update from his/hers mobile network provider


These all seem probable but consider these cases: What would happen if phone is not registered on network for a long time and internet is disabled (think of a tablet without internet access for example)? Why are phones with same version (international version) of firmware getting new updates at different times on different networks?


NOTE: I recently found out that CyanogenMod has OverTheAir updates in newer versions, how are they doing this, I doubt they have mobile network providers support?




How can I run Android applications on my PC with the Android emulator?


Is it possible to run Android applications on PC (with emulator)? I have Android SDK on my PC and I want to run Angry Bird on it. Can any body help to me?




vanilla android - What exactly is in AOSP?


With recent news about Google shifting more and more of the Android experience out of core Android and into Google Play Services, I got curious.


If I were to download Android's source code from the AOSP page today and compile it, what will I end up with? Besides the binary drivers for individual hardware devices and the various Google services, will I end up with a working version of Android?


My motivation for asking this is to find out how much of the experience people associate with Android is actually part of the AOSP.




Answer



You don't need to compile the source code to get an idea of what AOSP looks like; if you download the Android emulator, it includes a default device image that is just AOSP plus a few developer tools, without any of the Google services. This sums up to:



  • The linux kernel, dalvik VM, Java libraries, and Android framework

  • Stock Launcher (including the various lock screens)

  • Stock Keyboard

  • Stock Browser (NOT Chrome)

  • Calculator

  • Calendar (syncs to Exchange)

  • Camera


  • Clock

  • Download manager

  • Email (syncs to IMAP and POP)

  • Gallery (which also include a Media Player)

  • Messaging

  • Music (NOT Play Music)

  • People

  • Phone

  • Search (local apps, people, and the web via Google, NOT Google Now)

  • Settings


  • Various app widgets


Almost all of the essential Android framework are part of AOSP (e.g. Intent system, Permission system, Activity/Service system, Content Provider system, App Widget system, Daydream system, standard UI Elements, Notification Bar, Dalvik VM, JIT Compiler, Java standard libraries (Apache Harmony), OpenGL and Renderscript, Multimedia framework, Connectivity framework, GPS, Sensors, etc). The only significant part of the framework that aren't AOSP is Google Cloud Messaging, which handles Push service, and Play Store services, which provides application updates, in-app billing, and game services. Since these services are highly dependant on Google servers, they cannot really be a part of AOSP. All of the Android Development tools are also part of AOSP.


Some important Google Apps that aren't part of AOSP includes Gmail, Google Maps, Youtube, Google Now, Google+, Chrome, Hangout, and Play Store.


Here are some screenshots taken from Android 4.3 emulator:


The launcher, with some stock widgets, enough said:


enter image description here enter image description here


All the apps in AOSP pretty much fits into one page, this has been the case since early Android:


enter image description here


All the widgets:



enter image description here enter image description here


enter image description here enter image description here


4.1 jelly bean - One-click access to alarm settings


I want to access the alarm clock feature built into Jelly Bean in one click. In the past, I've always done this by tapping the analog clock that's on the home screen by default. I want to switch to a third-party clock widget now, and it doesn't leave me enough room to keep the analog clock on the screen. (Besides, having two clocks would look weird.)


The only other way to get to the alarm clock setup page, as far as I know, is to open the clock widget and then tap on the "next alarm" bar. That, of course, takes a minimum of two clicks. How can I do it in one?




File permission os SD card (FAT32)


Android uses FUSE for SD cards. Does FUSE support file permissions for SD card? If no - how do I install some apps on SD card? Cause there is no support for symlinks, execution permission etc.



Answer



Usual (FAT32) SD Cards do not support permissions, they allow everything because they are only mass storage and were never designed for such advanced things.

You can of course format your SD Card with a compatible file system (ext4 for instance) that supports permissions.
FUSE does not support file permissions because it just wraps around an incompatible file system. Changes are unsuccessful because there is nothing where you could save those permissions.


Apps on SD card are also not on your external SD Card (FAT32) bit on yourinternal one (ext*) which has support for permissions.


charging - Battery Stats Are Vastly Incorrect


After updating to 6.0.1 (MMB29K) from 6.0.0 (MRA58R) I have come to face a very odd and never seen before issue. My battery stats are wildly wrong. My stats show 4k% or higher and no battery stat monitor, such as the system battery monitor or GSAM for example can see anything correctly.


Here is an image of what the battery stat shows:


enter image description here



Here is the power manager:


enter image description here


Has anyone encountered this issue and if so what's causing this? I have not found anything so far that would explain it. Although I have not yet had a chance to fully comb the source code of the latest release, I don't suspect they would release it with such a glaring issue, so I am wondering how it has come to be.


Some FYI, Its a Nexus 6 device, fully rooted and not that its relevant but also fully encrypted. Anything else you wish to know, let me know. The apps and configurations have been the same on this device (+/- occasional test app that is usually removed within a day or so) since its stock 5.0 OS (which was unlocked and rooted immediately upon receipt).


UPDATE: 12/20/15


I want to begin with many thanks to @beeshyams to offering assistance and providing possibilities to consider. Although the problem was not entirely covered by our discussion, I did figure out what the issue was because of the decision we made to reflash the boot.img and that revealed the problem. Short version, reflashed the stock 6.0.1 boot.img and it resolved the issue. Long version, read below:


TL/DR/RL


The systemless method by which the boot is being done beginning with M (6.0) was to use the SuperSU zip update to root the system without actually modifying the system partition, making for a potentially cleaner or if you will less hacky way of getting root than in the past using the system exploit. Feel free to follow the process by @chainfire here: [WIP][2015.12.20] Android 6.0 Marshmallow [v2.64] but simply put it would use a modified boot.img and a special version of the SuperSU and achieve the root. However as the project gained momentum and new methodology was tested, it was decided in favor of abandoning the use of the modified boot.img and allowing the improved SuperSU binary to handle the internally required modifications. I had forgotten to change the batch file I use to automate the process to remove the patching of the modified boot on top of the stock boot and that's in simplified term what caused the issue. I reverted the boot to the stock and applied the SuperSu binary again to modify the stock properly and it fixed the issue. Thank you for everyone's attention and I hope that this will help others in some way.




Storage space running out. Some system functions may not work


In my Android in notification bar I see message Storage space running out. Some system functions may not work.


When I check I see 188 MB free in device memory and around 10 GB in USB storage.


I re-installed Android OS a few times.


It helps for about a couple of months then the problem returns.


If I delete some applications or data it helps for a few hours to a few days.


Questions:



  • Why do I get Storage space error if there is a lot of available space?

  • Can I join device and and USB memory? Will it help or at least delay the time while the problem return?


  • Any other advice how I can deal with this problem?



Answer



On Samsung phones, type in the dialer *#9900# then choose the second option: "Delete Dumpstate/logcat".


Friday, October 17, 2014

USB tethering with Cyanogenmod 7.0.3


How do I enable USB tethering with Cyanogenmod 7.0.3 and Ubuntu Lucid?


http://oldwiki.cyanogenmod.org/index.php?title=Tethering mentions Settings » Wireless & networks » Tethering » USB tethering, but there is no such option Tethering.


With http://code.google.com/p/android-wired-tether/ the phone application says that I have a bad kernel (on the phone). ifconfig on the laptop doesn't show usb0.



Answer



The built-in tethering should be Settings->Wireless and Network->Tethering & portable hotspot->USB tethering. I think the name of the menu simply changed between CM6 and CM7 from "Tethering" to "Tethering & portable hotspot".


Edit: Additionally, it appears that some phones are simply not supported due to kernel issues. For these devices, the menu option will not be present. This thread on the CyanogenMod forums discusses this, and notes at least two devices which fall into this category (the HTC Tattoo and the ZTE Blade).



How to know if phone has been connected via USB? (connection log on the phone?)


I'm trying to find out if someone has connected the Android phone (Samsung Note 4) to the PC via USB. Is there a log somewhere on the device showing the timestamp of connection? Preferably without turning on the debug mode?





applications - How can I make my phone/tablet ring remotely without a SIM card?


I appear to have lost my Streak somewhere in my apartment, and I can't call it since I don't have a SIM card in it. I've remotely installed Plan B just because, but unfortunately the GPS coordinates are not specific enough to find it inside my apartment :P. Is there any app I can install remotely that will start making noise so I can find the device?



Answer




Bahh! Just found a way to do this! I'm so excited!


First, install AndroidLost from the online Google Play Store.



  • this is the app you can use to control/wipe/access info about your lost device, yadayada


Give it a little time to install to your device, then install AndroidLost Jumpstart from the online Google Play Store as well



This app will wake up the registration process on the androidlost app when ever a phone call is made, an SMS received, battery is low, a package is added, removed or changed.



So you have to install an arbitrary app from the Play Store as well to activate the service, but you can then go to androidlost.com to access functions to control your lost device! Including ringing an alarm ;)



I haven't tested this yet, but I will as soon as I can I tested this on my own phone (although the page for Jumpstart only specifies tablets), and it works! It says it will register on SMS or app install, I did both first, and the activation worked. This is an awesome utility.


4.4 kitkat - Moto E Not Starting Properly After Changing runtime to ART


I have recently bought a MOTO E and it's working cool. Then I have enabled Developer options and changed my runtime from Dalvik to ART. Afterwards I restarted my device. I got the message saying Android is upgraging. After completeing the process I got exceptions like


unfortunately the process com.android.phone has stopped

Please help me how to get out of this problem. I am getting that message for around 10 times and mobile restarting once again.




Answer



/data/property/persist.sys.dalvik.vm.lib contains the name of the runtime library you wish to use - libart.so or libdvm.so. So, you can switch back to Dalvik like so:


adb shell 'echo libdvm.so >/data/property/persist.sys.dalvik.vm.lib'


Source


wi fi - How to make Skype Mobile for Android permit PC-to-PC calling?


I purchased a Samsung Galaxy Tab from Verizon Wireless without a contract, so no 3G support -- only WiFi. I went to Skype.com/m and installed Skype Mobile for Android. After installation, it lets me only do Skype Chat. If I try to do a Skype Call (PC-to-PC calling), it won't let me -- the call just dies. Does anyone know how to make it permit PC-to-PC calling, even though this "PC" is actually a Galaxy Tab on my end?


I mean, Android is built on Linux, and my Linux PC has a version of Skype that permits PC-to-PC calling, so I don't understand what the issue is here for Skype.com on this.



Answer



Skype today released Skype 1.0.2, and mayor change is support for Samsung Galaxy S. Maybe this will affect your phone too. Update and see



Thursday, October 16, 2014

sync - What exactly is synced with Google?


If you enable syncing to Google, what exactly is synced in a more technical way? E.g. about syncing app data, I guess there is just one standard path synchronized? Has anyone seen a more technical documentation of the synching, that describes, what exactly is synchronized?



Answer



Google Dashboard is a service for accessing a simple view of the data associated with a Google account. With Dashboard you can also get a list of your Android apps that store data in the Google cloud, the dates of their latest backups, the amount of storage they use, and some additional data such as the date you first registered the device. To access this information:



  1. visit Google Dashboard at https://www.google.com/dashboard

  2. enter your Google username and password, and log in


  3. scroll down to section "Android devices"

  4. click the "More data stored about this device" link under your device names's entry


sd card - Does Android's Full Filesystem Encryption also Encrypt the SDcard?


In Android's filesystem encryption do they also encrypt the SDcard? If so Is encrypting the SDcard optional or is it encrypted by default when you choose to encrypt your device?


Here's some info about Android's file system encryption and its crypto implemenation on android.com





Cleaning up Samsung S2 memory


When I use the application manager, I see that 1.8GB are occupied out of 2GB available. This of course causes issues when installing apps and brings up a warning notifications that some system services may malfunction. However, if I sum the memory taken by my apps, I come up at 1GB, and many of these apps have been moved to the SD card.


I've tried to use Clean Master to free space, but without much success.


So I want to cleanup files manually. What partitions on the phone's system are the ones in the 2GB space? Is it the root partition?



Answer



/storage/sdcard/android is probably where all the data is. You can manually delete files out of there, but I would recommend using the application SD Card Maid. I say that just because it has a lot of functions to clean up data from apps that are no longer installed.


rooting - How do I root my Samsung Galaxy S?


How do I root my Samsung Galaxy S GT-I9000?





Wednesday, October 15, 2014

How to add person to contacts from a message (person auto linked w/ facebook)


I got a message from someone not in my contacts. The number was automatically recognized as one of my Facebook friends. How do I add this person to my Google Contacts without copying down the number and adding them manually? There is no "Add Contact" button...




keyboard - How to clear my autocorrect's word history on S4 mini?



I let my younger cousins play on my S4 Mini from time to time, but now I have found that all their words they have used are the first to come up when I use my phone to text. It has gotten quite irrititating. Samsung seems to have very hard to find settings compared to my old sony Ericsson so I cannot find where to get rid of the word history typed onto my phone's keyboard.


Thank you.




internet - Is there a way to search for a number in Google without interrupting the call?


Is there a way to search for a number in Google while keeping the ongoing call intact? I have noticed that the internet connection is lost when a call is in progress.




Answer



I believe this depends on your provider.


For example: Verizon's CDMA network does not allow you to do Data + Call; however AT&T's GSM network will.


And as eldarerathis points out:



Another potentially important distinction is that phones on CDMA carriers with other networking capabilities (WiMAX and LTE) will support simultaneous voice and data since they're essentially operating on two separate chips, so this can also be dependent on your device.



So this ends up being device, and carrier dependent.


Tuesday, October 14, 2014

4.0 ice cream sandwich - Galaxy Note apps on stock Android


I've just ordered a Samsung Galaxy Note, and since I generally don't like manufacturer-installed bloatware (TouchWiz etc.), I'd like to reflash it with a stock ICS ROM. However, one of the main reasons I've bought the Note is for the S-Pen functionality.


Is a vanilla ICS ROM capable of running the Note-specific S-Pen apps that come with the phone? If not, is there at least a way to make the phone look and behave as if it doesn't have TouchWiz?



Answer




At first, there's a current Hardbrick warning and a tool to diagnose this for the Galaxy Note (and other Samsung devices).


Here's the Galaxy Note N7000 CM9 team's current issue list, it doesn't mention missing S-Pen functionality (unlike an experimental build #1) so I guess it's fixed.


The CM9 alpha for N7000 announcement on XDA also mentions S-Pen beeing worked on.


And finally, here's the CM9 builds for N7000 and a full update guide.


How do I clear keyboard/autocorrect history on the Galaxy s4?


I let my younger cousins play on my S4 from time to time, but now I have found that all the words they have used are the first to come up when I use my phone to text. It has gotten quite irritating. Samsung seems to have very hard to find settings compared to my old Sony Ericsson so I cannot find where to get rid of the word history typed onto my phone's keyboard.




Monday, October 13, 2014

installation - How to block any app from being installed?


My mom has an android tablet and she doesn't even know what a site is, her e-mail, or even the password of her facebook account. She's an average user. The internet is facebook in her eyes. She has no need for apps or anything, it's just, only, precisely facebook. All is facebook.


How can I completely disable installing apps in android so they can't be installed in any way or form, I mean, not by URL, not by clicking, not by app store, not even by another program. Just disable the entire thing altogether.


Doesn't need to be safe, have locks, passwords etc. I'm not trying to secure the device from intruders, attackers or robbers, I'm trying to secure it from its very own user.


Please help. I just had to remove two anti-virus apps that were opening adware pages when she tried to open facebook lite, and that's obviously a no-go, apps which she "had not installed." Clearly there's some voodoo going on here for them to just popup, or maybe she just did it unknowingly, but none of that's relevant. How can you just disable installs so this couldn't ever happen again?





Where does Lollipop stores notification policy?


Unlike its predecessor Android versions which saves notification policy in the file /data/system/notification_policy.xml (the file which saves the package name of apps you've selected to stop giving notifications by unchecking "Show notifications" from Settings → Apps → your app name) Lollipop doesn't seem to follow that concept.


I have a Oneplus One running rooted CyanogenOS 12 (CM12). I also tested Paranoid ROM (AOSP) running Lollipop and the behavior remains same i.e. disregard for that file.


In the logcat's output the entries I see when I uncheck and later check "Shows notifications" for an app (e.g. AutomateIt) is:



[ 08-24 15:46:43.441 899: 1966 V/NotificationService ]

enabling notifications for AutomateIt.mainPackage

[ 08-24 15:47:01.361 899: 1966 V/NotificationService ]
disabling notifications for AutomateIt.mainPackage

Surprisingly, the source code of Notification Manager Service doesn't seem to disregard the said file.


So, where does Lollipop keeps notification policies which are effectively executed by system?


Edit: Compared to Android Kitkat or below, how Lollipop uses that file? Can a user simply change the content in that file and expect the notification policy for an app to be changed after a reboot. The process is very simple in Jelly Bean though.



Answer



Since this commit notification policy settings were migrated from the separate /data/system/notification_policy.xml file to the generic AppOps subsystem. Now they are stored in /data/system/appops.xml together with other AppOps settings.



Mobile Data only working when used as hotspot


I recently bought a HTC One. Everything worked fine including mobile-data and Wifi. Until I once used my phone as Hotspot for my laptop.


The whole time while using the hotspot I had working internet on both my phone and laptop. But the next day (hotpost disabled), I couldn't get the mobile-data to work.


I don't get an error, it just doesn't load.


Wifi connections still work.


Now I tried reenabling hotspot and to my surprise it works. I now have internet on the laptop but NOT on the phone.


It seems that somehow the mobile-data will only work when the phone is used as hotspot.


What have I done wrong?



Android 4.2.2



Answer



Somehow there was a proxy set up in the APN settings …


Edit: To change the proxy you have to go to the settings and click on mobile data. Select Access point names, select the active APN (or the one you're having problems with) check/reset the Proxy/Port settings.


How Google Play updates itself?


A few days go I launched my old phone with old version of Google Play. I launched it, but in few seconds application crashed. When I launched it again, a new version (this one that I have on my current phone) was shown infront of my eyes. I'm asking, how? I have a theory that Google Play checking content of server and when detect a new apk, it install it in the background. Am I reasoning it right?



Answer



When you're connected to Wi-Fi and Google Play Store is running, it will automatically download any updates for Play Store and Play Services. If you have something like a network monitor, you'll occasionally find Google Play Store occupying large bandwidth and stops after tens of MB.


Updates for Play Services will be installed immediately while updates for Play Store will be installed after you quit it (by pressing back multiple times or home). As noted by @Matthew Read, apps with system privileges do not require user intervention while installing or updating apps.


Sunday, October 12, 2014

htc evo - Port forwarding for wireless tethering


I have an HTC EVO 4G and I've been using the manufacturer's supplied app for wireless tethering. It works great but is missing are several key features I require:




  • Statically assigned IP addresses for connected clients

  • Port forwarding


Is there a way to enable this functionality?




wi fi - How can I access data (such as WiFi keys) in an encrypted Titanium backup?


How can I decrypt an encrypted "Titanium Backup" backup using standard (linux) tools?




Wi-Fi serves as a practical example, many other uses may apply to the solution I'm looking for.


If I quickly want to access backuped Wi-Fi credentials from my Linux box I know a fast way. With encrypted backups I'm currently out of luck.


That's my quick&dirty way how to do it without encryption so far:



me@local:~$ adb shell
root@android:/ # cd /sdcard/TitaniumBackup/
root@android:/sdcard/TitaniumBackup # ls *W*46.*gz
com.keramidas.virtual.WIFI_AP_LIST-20120622-105046.tar.gz
root@android:/sdcard/TitaniumBackup # gunzip -c *W*46.*gz | grep -C1 MyAccessPoint

network={



ssid="MyAccessPoint"
psk="supersecrecretpassphrase"




Some details on the company's site: http://www.titaniumtrack.com/kb/titanium-backup-kb/titanium-backup-cryptography.html



Answer



There are no standard tools as of now yet. TiB uses their own format which they kindly shared with me when I asked them the same above question.


In fact someone needs to write it still. It could be done in Java or even using bash + openssl only.



uninstallation - How do some android apps remember that this is not the first time they are being installed?


Some android apps are can remember whether they were installed on the same device earlier. Suppose you uninstalled an app a year ago. After one year if you install that same app again, that app will be able to recognize that it was installed before on the same phone.


This technique is used by online applications to permanently ban users from ever creating a new account again if they have been banned from using the service once. When such users create a new account by reinstalling the application later, these apps are able to detect their "first time presence" and send this information to servers so that user can be banned again.


How they do it even after clearing their data and uninstalling them completely? It means they keep some file somewhere in the phone, which is not deleted after uninstall. How do I disable this detection?



Answer



There are multiple ways to identify a unique device or its user:




  1. Keep a file in some (non-default) directory: You already said this; apps can often write to the internal storage of a device. This method is easy, works offline and is not the easiest to spot (place the file in some system-like directory and nobody will bother deleting it).

  2. Keep track of a devices unique ANDROID_ID (unique per fresh installation): this method is simple but requires internet access, at least on the first use. It's not very intrusive and does not persist in case of a factory reset. It's also unique per user. See this information.

  3. IMEI: Very intrusive, unchangeable but requires a SIM-capable device. The IMEI is unique for each device, cannot be changed and doesn't follow the user, meaning that if you sell your device, the new owner will be greeted with a screen telling him that the app was already on the phone.

  4. Follow a user's Google account: This is pretty much the same as the ANDROID_ID approach but requires explicit permission (Android 6.0+) from the user to access. Apps that take advantage of the Google account ecosystem (e.g. highscores and achievements in games) can thus follow a specific user and gain more information than just whether the app has been installed or not.


2, 3 and 4 require a network connection and a server on the side of the developer.


How can I disable Google Voice Commands on an Android phone?



I prefer not root my phone, but I'd be willing to, if it's necessary.


Google Voice keeps popping-up Search and Voice Dialer randomly (about twice a minute). They enter random commands into Search bar and I can't turn them off. The problem might be caused by inexpensive headphones.


I'd like to just completely remove the software from my phone. If I can't do that, I'd like to get them to stop randomly popping up.




device firmware - How to restore the IMEI number on the Samsung Galaxy S4 I9505? (IMEI=Unknown, Baseband=Unknown, Sim Card Not Detected)



Hello, I lost my IMEI number on my Samsung Galaxy S4 GT-I9505 today and I would like to restore my original IMEI back to my phone. I still have my original IMEI of my phone written down. And my Sim Card is not detected.


I do not have any backups!
I didn't make any backups of /efs (sorry!), will do that when I have this problem fixed and backup it on all my computers.


I have searched Google and www.Android.StackExchange.com but couldn't find anything that worked for me. (So please don't mark this as a duplicate question)






  • Samsung Galaxy S4 GT-I9505


  • I live in The Netherlands

  • My carrier is KPN (if you wanted to know that)

  • I have my IMEI number written down

  • I do not have any backups of /efs! (sorry!)

  • IMEI = Unknown

  • Baseband = Unknown

  • Sim Card not detected






I dialed *#06# to get the IMEI number:


Screenshot - I dialed <code>*#06#</code> to get the **IMEI** number


The hidden menu in Android: (*#*#4636#*#* or *#*#INFO#*#*):


Screenshot - The hidden menu in Android: (*#*#4636#*#* or *#*#INFO#*#*)







  • Of course, I flashed the stock ROM back on my phone. (Android 4.4.2)





  • I downloaded a backup of /efs from someone else on the internet and flashed that on my phone. However the IMEI is still "Unknown".




  • When I flash the stock ROM on my phone for my country (The Netherlands), it did restore my IMEI. However WIFI didn't work on the stock ROM, and when I flash Cyanogenmod back on my phone, I don't have an IMEI anymore. (So I think the IMEI wasn't written permanently on my phone).






Any help is appreciated.
If I need to add some more information, just tell me. Thanks!




Answer



After all this was a simple bug in the cm12.1-20150623 nightly. It has been fixed in the cm12.1-20150629 nightly. For more information about this bug you look here: CM12.1 Nightly no Sim found. For all the people helped me so far, thanks for your support.


Saturday, October 11, 2014

system - Is Android a 32-bit or 64-bit OS?


The title is pretty much self-explanatory: is Android a 32- or 64- bit OS? I assume that it is one or another and not both, as that would force both 32- and 64-bit binaries to be hosted on Google Play. I know that this is a simple question, and that other people have been asking it, but for the life of me I have not been able to find an answer on the web, and there is certainly not one on this SE.



Answer



In the realm of the ARM chipsets which is the common factor, the entire Android stack, from the near-identical kernel based on Linux, are in fact, 32bit, cross-compiled from usually either a 32bit/64bit host environment, the host environment is usually one of the distributions of Linux. Recommended distribution, by Google, for building and cross-compiling Android is Ubuntu.


The Android run-time library (media, graphics, filesystem, to name but a few) are also 32bit, but as we reach the layer of the dalvikvm, then the number of bits becomes irrelevant as it is at this point, the apks coming from the Google Play Store are native bytecode (A "by-product" of generated Java code compiled into a portable bytecode) which targets the DalvikVM (Virtual Machine) which in turn interprets and translates the bytecode targetting the raw ARM instruction set.


Froyo was the last Android that enabled compilation under a 32bit hosted environment in which it was cross-compiled targetting the ARM chipset.


Gingerbread was the first of "future" Android, back then circa, three years ago, that introduced a requirement to use a 64bit hosted environment in which it was built. There was many hacks to get Gingerbread to be built under 32bit hosted environment.



ICS and JB, and upwards now definitely requires a 64bit environment to speed up compilation and to reduce turn-around time in building.


So to sum up, what you see on the Play Store has no bearing on whether 32bit or 64bit are used and thus irrelevant.


Side note: Typical 16GB RAM/Quad core/64bit Linux distribution, the time it takes to build ICS from scratch, takes 30minutes maximum, had this being a 32bit Linux distribution, it would have taken longer, in fact, may cause a CPU meltdown as there is simply, not enough processing power to churn and crank out cross-compiled code, which is a very demanding and taxing process!



Pull in any native ARM binary found in /system/bin or /system/xbin, for example, /system/bin/dalvikvm, this is the Dalvik VM binary that is responsible for the upper layers of Java and APKs.


Now, examine the binary by issuing this command: file dalvikvm which gives a summary of the type of file it is, the expected output would be this:



dalvikvm: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), stripped



Notice the reference to 32-bit ELF, and is cross-compiled to ARM and is a binary executable.



Right, moving on, let's inspect a native shared library found in /system/lib, for example, /system/lib/libandroid_runtime.so, now issue file libandroid_runtime.so, the expected output would be this:



libandroid_runtime.so: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, stripped



Again, notice, its 32-bit ELF, cross-compiled to ARM and is a shared library.


The key to the host's cross-compilation can be found in the AOSP source, i.e., Gingerbread build originally had a requirement to be built on a 64bit host system, here's the newsgroup linky referring to how to patch the scripts to get it to build on 32bit host which has two patches, found here, for build/core.mk and build/main.mk (combined) on AOSP's Gerrit review.


As a subsequent result, this patch had made its way to ICS's build scripts in which I did have the privilege of compiling ICS on a 32bit platform which took 3 days to build (it was a port of ICS for the Zte Blade). Now, the requirements are ramped up, you do definitely need 64bit host to enable cross-compilation of building AOSP from ICS upwards :)


applications - How to port-forward internet using android Hotspot to PC?


I have a Moto G3 Turbo with Android 6.0.1 Marshmallow. I use the phone to make wifi hotspot so I can use internet on my laptop.


I was able to do a successful Metasploit over WAN/Internet, and for that I need to port-forward to my laptop. But the problem is, I don't have any modern or router to actually go to setting login with admin password or anything like that.


What can I do? Is there any app that can do this and whether it need to root permission?




applications - How can I install an app given only its APK file?



I downloaded the APK file for an app to my PC. How can I install it on my phone?



Answer





  1. Use DropBox. Put the APK in your DropBox folder. Open up the DropBox app on your phone, find the apk, tap on it, and it should download it to your phone and then install it.




  2. Use the SD card. Plug your phone into the computer via USB. Mount the SD card drive. Copy the APK into the SD card. Unmount your phone. Browse to the APK using a file browser app such as Astro. Tap on the APK and it should present to install it.





There are countless other ways to do this, but these two are probably the easiest.


moto x - Enable /system write in TWRP - Systemless root


Moto X Play (XT1562), SuperSU 2.78 (systemless root), TWRP 3.0.2-r3




  • When I flashed TWRP, I chose the option of not writing to system to enable OS update (and also made a Nandroid just after flashing it as a backup)





  • Now, I made some minor changes to system audio files, without dwelling on consequences - won't be able to update OS ( update expected this quarter) without flashing stock OS




I want to enable /system write option in TWRP ( without flashing TWRP again ) so that :


a) Flash backup Nandroid ( of stock OS from the first Nandroid), if I decide to upgrade OS


b) If I don't want to upgrade, have a complete Nandroid and tweak further knowing that I can safely roll back changes


In other words be able to backup and restore /system along with data


Is it possible and how ( please provide detailed instructions )?


Edit: Flashing different versions didn't help - see my unanswered post on XDA




Answer



It appears that the issue was TWRP's fault. To make the /system partition writeable, one could:




  • Uncheck the checkbox near Mount system partition read-only, in the Mount section of TWRP (screenshot at the end of this answer);




  • Delete, move or rename the .twrps file to force TWRP's setup wizard to trigger, in order to make /system writeable. This file is located under sdcard/TWRP, and can be managed directly from TWRP's File Manager, accessible from the Advanced section of the recovery. Notice that any TWRP setting customization aside of themes will be reverted.





TWRP Mount menu


Friday, October 10, 2014

battery life - How to disable Google Search?


Recently my phone started to lose charge faster. It just occurred to me to check Battery in Settings, and I saw that Google Search is responsible for 29%, Screen coming in second with 23%.


I set up Google Now a few weeks back, is it the same thing?


If not, what exactly is Google Search? Is it something I actually use, and Google Search is just a collective name for them? Can I turn it off?



Answer



Google Search is the package that contains both Google Search and Google Now. I think you can disable Google Now while keeping the search part by going into Now->Settings->Switch Google Now (first item).



If it doesn't solves your problem, then you can disable Google Search in Settings->Applications->Google Search->Disable.


Thursday, October 9, 2014

boot loop - Samsung Galaxy Nexus Bootloop. Cannot format or write data


Model: GSM Galaxy Nexus I9250 Takju Maguro
ROM: CyanogenMod 11 Kitkat
Recovery: Clock Mod
OS: Android 4.4


Basically, my phone has been working fine for the last 2 years. I had only one issue of phone getting slow down. That I fixed by rooting and installing Lagfix. I've been using this CyanogenMod 11 ROM for the last 6 month and it was working fine. Suddenly though, I got the error, "Unfortunately, the process com.google.process.gapps has stopped". Then the phone went into boot loop


I've tried rebooting into recovery, formatting data, wiping cache, davlik cache, system, internal storage. I did the factory reset. When I reboot, nothing seems wiped or erased. I tried using the android toolkit and installing the stock JWR66Y boot image from fastboot mode. When I restart, nothing has changed . No apps or data deleted.


I have pulled all my data via adb pull. It seems i can read data but cannot delete or write data.


I also tried Flash stock + unroot from NEXUS ROOT TOOLKIT 1.8.8. But even though it shows everything completed. All the data is intact in the phone and no new data is written.



I tried locking back the bootloader. Its showed Lock Status: LOCKED after locking. But after a reboot it is again showing Lock Status: UNLOCKED.


It seems I can't write any data at all.


Here is the log after Flash stock + unroot from NEXUS ROOT TOOLKIT 1.8.8


--------------------------------------------
Bootloader Version...: PRIMEMD04
Baseband Version.....: I9250XXLJ1
Serial Number........: 0149C2DC16009006
--------------------------------------------
checking product...
OKAY [ 0.011s]

checking version-bootloader...
OKAY [ 0.200s]
checking version-baseband...
OKAY [ 0.013s]
sending 'boot' (4376 KB)...
OKAY [ 0.454s]
writing 'boot'...
OKAY [ 2.551s]
sending 'recovery' (4924 KB)...
OKAY [ 0.514s]

writing 'recovery'...
OKAY [ 4.537s]
erasing 'system'...
OKAY [ 0.017s]
sending 'system' (474180 KB)...
OKAY [ 47.790s]
writing 'system'...
OKAY [1611.793s]
erasing 'userdata'...
OKAY [ 0.040s]

sending 'userdata' (137559 KB)...
OKAY [ 14.088s]
writing 'userdata'...
OKAY [243.999s]
erasing 'cache'...
OKAY [ 0.016s]
sending 'cache' (8832 KB)...
OKAY [ 0.922s]
writing 'cache'...
OKAY [ 14.482s]

rebooting...

finished. total time: 1941.733s



Booting up your freshly flashed stock device...
------------------------------------------------------------------

Wait for your device to finish booting up...


- It may appear to be boot looping; just wait...

- It could take 5-10 minutes; please be patient...

When its finally booted back up, please remember
to re-enable USB debugging if you plan on using
the toolkit to perform other operations.

NOTE: If this process was too quick and your device

is still in bootloader mode, then flashing stock may
have failed or been incomplete. Simply check the
log above: if you notice it skipped steps because it
didn't meet certain requirements, like the bootloader
or baseband version, then consider enabling 'Force Flash'
mode in the toolkits options menu and trying the
'Flash Stock + Unroot' processs again. Cheers.




Press any key to exit...

Anyone knows how to pretty much reset my phone because it seems as if I can't even erase data?
Is there any way to fix this issue?
Is my internal memory dead?
Is there any way to replace the internal memory?



Answer



So after searching lots of forum, chatting with experts in XDA, I found out that:



Samsung used a cheap substandard emmc.




I have tried everything from adb, Odin to jtag. The emmc just died,no way to fix it.


First there was this awful lag issue : Galaxy Nexus GSM bad eMMC chip type V3U00M phone is almost unusable


Later within 2 years, emmc will die and you will stuck with bootloop issue :
Galaxy Nexus GT-I9250 with hardlocked NAND ?!? need help !
Galaxy Nexus S (i9250) stuck in reboot loop - gets to OS loading and restarts


Almost all of us with V3U00M chip and other defective mmc chips would have now got there emmc fried.



What to say, on my side I'm blacklisting Samsung, this phone has been a joke for me since the beginning (the fstrim bug has been a nightmare), if you dare you can try to replace the board.




samsung galaxy s 2 - Cannot restore Kies backup after firmware upgrade

I backed up my Samsung Galaxy S2 on Kies before updating to Ice Cream Sandwich. After the upgrade I tried to restore, but the restore fails ...