# Question
Title: Is there any way that can EXTEND (not mirror) my phone screen to another phone? Half-Half
Just want a bigger display for my phone. I need to know how I can EXTEND my phone's screen to another phone, by using Bluetooth or WiFi or RF or web?

Few apps (iDisplay, AirScreen, AirDuet screen, etc) exist for only mirroring/sharing the screen - but not extending it. It's like using two monitors for your PC side-by-side & you select 'Extend display' between two monitors and hence the display bisects into two monitors. Same principle to phones.

# Answer
I haven't tried it (yet), but DisplayLink Presenter app might help, if you have the "dongle".
> -1 votes

---
Tags: screen, external-display
---


# Question
Title: How to Prevent Battery Full Notifications in Mi 2 Band?
Situation: to prevent Mi 2 Band's battery full vibration, which wakes me up; the notification bypasses Android's own Silent Mode
Secondary solution: use *Do Not Disturb* applicaiton of Playstore

Band is in the connection with the phone by Mi Fit of Playstore. My Pebble is connected to my phone by *Gadgetbridge*. Situation

* In Mi Fit, DND active from 2100-0700
* Android's Silent mode active but not effective
* In Mi Fit, I find no setting about disabling the vibration of the band about the battery full status

My Settings \> Notifications \> App specific for Mi Fit

Phone: Samsung Galaxy S4, Oneplus 3
Phone OS: Cyanogenmod 13
Activity band: Xiaomi MI Band 2
Smart watch: Pebble Classic 1
Pebble firmware: 3.12.2 (newest 9.8.2016)
Pebble hardware: V3R3
Ticket at Gadgetbridge github about the issue: Can you Stop Vibrations of Mi 2 Band about Battery Full Status with Gadgetbridge?

# Answer
I resolved the problem by getting the second phone for my Mi Band 2 because I use Pebble at work, thus causing me much complications because no two internet gadget -support is not supported at the same time. This way, you can control the notifications of battery full -status stably.
> 0 votes

---
Tags: xiaomi, silent-mode, sleep, mi-band-2
---


# Question
Title: Use an android phone as a monitor screen with AV-in wire?
I'd like to use my phone instead of a TV as a small display monitor (with a cable, not wifi). I have a couple of devices which have AV out on them, what I'd like to do is show their output on my phone (for example a MFT camera, so i can use it as a video monitor without having any special apps controlling it, or for a baby monitor that doesn't have wifi, it could plug in and i could see the feed on the phone and take screenshots perhaps)?

Is such a thing possible? I have found the right cable on amazon (male to male, micro usb to mini usb) but i don't know if it'll *just work*? I have a Sony Xperia Z3 (f that makes any difference).

# Answer
Use easy cap ... easy cap is generally used for fpv in multirotors which has also the same purpose as yours. It takes an av input and decodes it to give an output in the phone. Check here.. http://www.amazon.com/EZ-Cap-EzCAP168-Capture-Software/dp/B008I679QG/ref=sr\_1\_1?ie=UTF8&qid=1464120381&sr=8-1&keywords=easy+cap
> 1 votes

# Answer
EasyCap capture devices work fine - I've used one to set up/test a security webcam. The same (built-in USB OTG) drivers are also used for many endoscopes and microscopes that display on Android.

BTW Mscopes handles the android software end, better than the software bundled with hardware, in many cases.

Martin
> 1 votes

---
Tags: screen, video, sony-xperia, external-display
---


# Question
Title: Practical longevity of current Android phones
Before continuing to read, please understand that I do not have a smartphone and have never had one. Thus my experience with such devices is minimal.

I am thinking about getting an Android smartphone, but I strongly prefer something that lasts (please don't debate why). How long do current smartphones stay practically usable? How long do they last physically, and how long does the software stay reasonably usable?

I do have an iPad 2 (release year: 2011), which at this point is barely usable. It is in good condition but the (irreversible) OS updates made it slow and many current apps are also so slow as to seriously affect usability. It used to be the same with computers many years ago, but it isn't so anymore: a 4-5 year old laptop computer holds up perfectly well today, and I see no need to upgrade. What about current mobile devices?

I am not willing to get a smartphone unless it is likely that it will stay usable for at least 4-5 years. I'd rather stay with my 6 year old Nokia. I am not in a position to get a carrier-locked phone, so a getting a quality device would be a significant expense.

To sum up: I am not sure that progress in mobile device performance has already slowed enough to make longevity a reasonable expectation, hence my question.

# Answer
I second what @DeathMaskSalesman says in the comment - it largely depends on how you use your device and whether you load custom ROMs on it.

Bottom line is, unless you use the phone lightly, nothing can hold up to 5 years nowadays, and even then the battery will wear out. My 3-year-old Nexus 4, when retired at its 2.5 year of service, has its battery down to 1500mAh from the designed 2100mAh. This is increasingly serious a problem since recent smartphones tend to have non-replaceable batteries.
> 1 votes

---
Tags: updates, performance
---


# Question
Title: How can i enable otg in symphony H250? which is unsupported otg phone
my phone doesn't support otg how can i enable this feature in my SYMPHONY XPLORER H250 android phone?

# Answer
Unless someone develops a kernel for it that adds support (which your phone likely never will - the fate of unpopular devices), there's no way around the limitation. Even then you will have to externally power the USB device in question (e.g. via Y-cables), since the port don't natively supply power.
> 0 votes

---
Tags: usb, usb-on-the-go
---


# Question
Title: Is there any way to sync my Outlook calendar to my Samsung Galaxy S without Kies?
I am trying to sync my Outlook 2010 calendar to Samsung Galaxy S using Kies. For some reason, it doesn't sync.

Kies has a nasty habit of hanging, so I would really like to use something else, if possible, instead of trying to understand why it doesn't sync to begin with.

Are there any tools out there that will sync the calendar directly to the phone without using Kies?

# Answer
> 2 votes
Have you thought about doing this over the air, rather than using a desktop client for the sync?

If you use Outlook, presumably your company uses Exchange for it's mail servers? If so, and if they allow Exchange Active Sync, and/or have Outlook Web Access enabled, then you could sync your phone's mail and calendar directly with them over the air.

The built-in Mail client can be used to connect directly with Exchange, or there are third party alternative Exchange clients like Touchdown, Moxier or K-9 Mail

# Answer
> 2 votes
You might give Google Calendar Sync a try. It's a tiny application which will run on your Windows PC and synchronize your outlook calendar with googles calendar, so you'll have all your appointments always on your mobile. Works like a charm for me, and you'll not nitice it's even running.

# Answer
> 2 votes
You can do this using the native Exchange app on your device. On my Galaxy S5 using Android 6.0, it's in Settings -\> Account -\> Accounts -\> Microsoft Exchange Active Sync -\> then I tap on the specific Outlook account I'm trying to sync.

Below is a screenshot of what it looks like on that next page. When I had this exact same problem, I found that "Sync Calendar" was not checked. I'm not sure where in my app updating or activities that this got unchecked, but putting this on immediately solved my sync problems.

For your device, it's probably buried somewhere in Settings as well, but it's not too hard to find once you get in there.

---
Tags: samsung-galaxy-s, sync, calendar, samsung-kies, outlook
---


# Question
Title: OK Google voice command through bluetooth headset (D.I.Y. Google Home device)
I have a Bluetooth speaker with a built in microphone (and also several bluetooth headsets which are essentially the same). I have it paired with my Nexus 5x running Marshmellow. I would like to have a setup such that when the bluetooth device is on and connected, I can speak "OK Google" into the bluetooth device and Google Now activates on the phone.

I am fully aware that I can launch Google Now through a button push on the bluetooth device (albiet the speaker does not have any buttons but power on/off), however, I dont want to have to push any buttons. I want to activate Google Now, through the bluetooth device, hands free.

Note, in the Google Voice settings, I do have "Bluetooth Headset" on and "Hands free for Bluetooth devices" also on.

Is this possible?

# Answer
Yes it is possible, it works on my Android 4.4 tablet with a Technika bluetooth speaker and I can say "Ok Google" anywhere in the room and it picks it up, it's pretty sweet! just like an Amazon Echo or Google Home device, just free.. haha. Just make sure "Ok Google anywhere" is turned on in the Google app settings and that your mic option is turned on in the system bluetooth settings and you should have your DIY Google Home/Amazon Echo up and running! I hope this helps and have a nice day!
> 1 votes

---
Tags: 6.0-marshmallow, bluetooth, nexus-5x
---


title: WhatsApp Web doesn't work on the phone

text:
# Question
Title: WhatsApp Web doesn't work on the phone
When i try to start WhatsApp Web on the phone, the QR-Code scanner screen does not even open, but i get a passive notification "check your internet connection on the phone". While i can chat with WhatsApp without any problems, so the internet connection and the connection to WhatsApp cannot be the real problem.

How can i get Whatsapp to recognize that the internet connection is fine and open the qr code scanner?

# Answer
It works after a Backup & Reset:

* Make a new local backup (via settings -\> chats -\> chat-backup)
* uninstall WhatsApp
* install WhatsApp
* Login via Phone number and sms verification (even when there's a backup)
* Whatsapp finds the local backup and asks if you want to import it. Nothing is lost, but a few settings. Profile image is restored, but for the screen name whatsapp asks you again (and suggests the name from your google account)

So if someone has the same problem: backup & restore works fine. Of course it doesn't hurt to have a TitaniumBackup, adb backup or similiar as well.
> 0 votes

---
Tags: whatsapp-messenger
---


# Question
Title: The Android phone app wants to know my location - why?
I'm running CyanogenMod 13.0 without Play Services. I launched the Phone app and wanted to search through the contacts. Then a popup appeared, that:

> Allow **Phone** to access this device's location?

What does a phone app need location for?

# Answer
It might have something to do with **Truecaller**.

Some CyanogenMod isos integrate C-Apps directly into the OS, and Truecaller is a CallerID service with social media integration. Now, if you're not one for social media, I'd recommend blocking this off the bat. However, if you are, I'd recommend looking through the functionality further and determining whether it'd be useful for you or not.

But, then again, it might be something else. If you really want to be sure, I'd recommend going to the github page for your given CM distro and finding someone familiar with the code to take a look at the part that contains the phone application.

Sources:

https://wiki.cyanogenmod.org/w/Cyanogen\_Apps

https://en.wikipedia.org/wiki/Truecaller

https://cyngn.com/c-apps
> 1 votes

---
Tags: cyanogenmod, permissions, privacy, location-services
---


# Question
Title: BLU phone having trouble downloading apps
I have a BLU Advance 5.0 and a 64 GB SD card already in it. I changed preferred install location to the SD Card and I also change the default write disk to the SD card. But after every download from Google Play Store, I have to manually put each app onto the SD Card. And now, even though I have every app on the SD Card and have everything set to the SD card, the phone still tries to download every app onto the internal storage, that is still saying "insufficient storage". What should I do?

# Answer
> 0 votes
called the company of Blu. they will be sending a new update that will fix app problem. They were aware of the problem.

---
Tags: google-play-store, sd-card, insufficient-memory, storage
---


# Question
Title: Nexus 4 - suddenly lost access to all Google sites
Nexus 4, stock 4.3, rooted. WiFi only for data, strong signal

Suddenly today, for no apparent reason, every app requiring access to a Google site stopped working: Google Now gives "Network error" Google Chrome gives "This webpage is not available" for any Google url, but works fine for any other url Android Weather sits on "Updating" Finance gives "Error. Network connection unavailable" Google Maps gives blank screen Play Store gives "Server Error"

The one exception to this is that Firefox can access any Google url, no problem. All other apps accessing the internet work fine.

I have tried rebooting - no effect.

Anyone have any ideas how to solve this problem.

Thank you.

# Answer
> 0 votes
Is it only Google services or all HTTPS sites? In any case, make sure the clock, date, and time zone is set correctly on the device.

# Answer
> 0 votes
It is probably a problem with your host file, located in "/etc/hosts". To fix this you need root rights, then edit the host file and delete the line which says "android.clients.google.com"

# Answer
> -1 votes
I had this problem, too. Found a good answer, finally, here: http://www.galaxys4forums.net/forum/12-galaxy-s4-help/3671-problems-after-4-3-update-2.html It's a matter of settings for the WiFi network you are connecting to.

---
Tags: wi-fi, nexus-4, 4.3-jelly-bean
---


title: Prevent "Location Found" Notification

text:
# Question
Title: Prevent "Location Found" Notification
I have a Samsung Galaxy S7 (SM-G930V) through Verizon. Every once in a while an app will request the phone's location. The notification area will then display `Location Found`.

When I long-press on the `Location found` notification, I get the `App notifications` screen for `System UI`. I don't think it would be wise if I disabled notifications for `System UI`. It seems like this would block other useful notifications.

I could uninstall or disable the apps which are using `Location Services` and hence triggering the `Location found` notification. However, I want the apps to run and use `Location Service`

How do I keep the `Location found` notification from appearing even though I am using the `Location Service`?

# Answer
> 3 votes
Using an app such as Automate, one can write a very simple flow which waits for notifications from `com.android.systemui` with the text of `Location found` and then cancel the notification as soon as it exists.

This works okay. The flow doesn't use any CPU time until a notification shows up and then the flow is very quick (3 ms execution time). However, the notification still appears for a brief moment. My point is that this solution is like putting a net at the bottom of a cliff when a fence at the top would work much better.

# Answer
> 0 votes
Go to your location settings and change it from 'High Accuracy' to 'Battery Saver' to get rid of this "Location Found" notification. You can switch back to "High Accuracy" mode while using an app like Google Maps that needs your exact location.

---
Tags: notifications, location-services
---


title: Transferring Pictures and phone numbers

text:
# Question
Title: Transferring Pictures and phone numbers
How do I remove pictures and emails from my Nokia android phone. And how do I copy my address book to my new Samsung Galaxy S5 phone?

# Answer
To transfer any file/picture/etc.. between your phone and PC, you'll need to turn Developer Options on and enable USB Debugging.

***Some Android devices already have Developer Options listed in the Settings menu. Most, however, need a certain "key combo" to bring it out of hiding***

1) On your phone, navigate to Settings 》About Device (Phone) 》and tap your device's Build Number 7 consecutive times. A caption will display at the bottom of your screen, stating how many taps are still needed & when you're considered a "Developer".

2) Once Developer Options is turned on, navigate back to Settings 》Developer Options 》and enable USB Debugging.

***Developer Options is located at the bottom of your Settings, above "About Phone"***

3) After enabling USB Debugging, plug your device to your PC via USB cable.

4) Swipe down the notification bar on your phone 》tap USB Options 》and verify your device is set at MTP. If it isn't, change it to MTP.

WALA! You are now able to swap files, pictures, etc.. from your phone to your PC and vice versa.

***Ensure proper connection between your phone and PC by clicking your PC's Start Menu, then navigating to the "Devices & Printers" section. Your phone will register as either an MTP Device or your phone's model number if properly connected. If not, it'll say a name you won't recognize and have a yellow triangle with an exclamation point (!) in the middle.***
> 0 votes

---
Tags: samsung
---


# Question
Title: HTC One M8 resets some settings every time battery dies
Every time my HTC One M8's battery dies, which is roughly once every two weeks, when I charge it and turn it on, a large portion of random settings or configurations are reset to default on the device. This time it happened, it actually erased all of the contacts on my phone, and previously, it's logged me out of all my apps, reset my theme-ing options, and erased all of my music.

Why is that happening? Can I prevent it from happening in the future? Configuring my phone like it's a new device every time the battery dies is quite painful.

The device is on Stock Android 6, latest version available to me (No S-off or Root), and running Sense 7.

# Answer
* Firstly, letting the battery run dry and then charge (*deep discharge*) is harmful to the life of battery and is never recommended in normal usage
* Perhaps, this has caused the *battery reset logic* to go awry. I am not sure how this would cause the reset of your device, but as an interim measure resetting battery logic as recommended below may help

This was the reply to user whose device would not turn on after deep discharge on ifixit

> Have you tried to reset the charging logic of the device, first you must charge your M8 for a minimum of 10 minutes using a wall charger. With the power off, press down and hold the volume up and down button with the power button for approximately 2 minutes. After 2 minutes, release all of the buttons. After the release the charging logic should be reset. Then charge your phone to 100% using your wall charger.

* After doing above, use your device and charge the battery when it falls to 20℅

This may help fix the issue, if it doesn't, at least the battery connection with your problem is ruled out. From the information supplied by you it appears to be linked to battery only
> 2 votes

# Answer
This is a weird issue that others have suffered from I believe... One person on Android Central recommended disabling the news republic app that is baked into sense. Some people had noticed success in doing this....
> 2 votes

---
Tags: settings, battery, charging, htc-one, hard-reset
---


# Question
Title: Control phone on MacBook Pro via bluetooth?
I'd like to control my Galaxy Nexus via my Macbook Pro via VPN (Virtual Private Network).

Since connecting the Galaxy Nexus to an Adhoc, WiFi created by the MacBook Pro doesn't work. That's why I'd like to do it via bluetooth.

Is that possible and if yes, how?

# Answer
A similar question was posted entitled "Software to control mobile phone via bluetooth" over at Superuser.com on 11th December 2012 to which I responded:

https://superuser.com/questions/517884/software-to-control-mobile-phone-via-bluetooth/517888#517888

My response was this:

A program called Remote Professional from mobileways.de claims to be able to make calls from your PC-mobile. There is a brief article about it entitled Remotely Control Your Phone from Computer from Technize.com

A youtube video and link to download the program is also included: http://www.technize.com/remotely-control-your-phone-from-computer/

However this method used a PC rather than an Apple Mac. It may well be possible that mobileways.de offer a similar program for Macs.

So in theory what you have asked is perfectly plausible, if they haven't developed a program for apple macs, they may do in the near future.
> 0 votes

# Answer
i have been able to do it partially "1keyboard" it lets you use your macbook to type in your android phone. which is great since one of my androids has a twitchy screen. o i use it to type, i also saw one for a mouse, but i lost the link.
> 0 votes

---
Tags: samsung-galaxy-nexus, bluetooth, macos, 4.2-jelly-bean, ad-hoc-networks
---


# Question
Title: Site sends costly sms without asking for permission
since some time, while browsing(SFW sites, news, blogs etc.), my phone browser - chrome redirects me sometimes to some strange pages asking me to go further if i am an adult, which I've never did. It was rather annoying, but since it did not happened all the time, I've ignored it. Lately I found out that If I accidentally click a button on this site it sends some costly Sms. Fortunatelly I blocked this kind of possibility with my operator, but I am a little bit amazed how it is possible. Does Android Lollipop (not rooted) allows to send SMS from browser without asking for confirmation? BTW there is no any trace of it on my phone. Only the answer from operator, that he can not complete my request, because I blocked it.

# Answer
> 0 votes
It sounds like they tried to force you to send SMS messages through a **rogue telecom operator**, which is essentially stealing money through text messages.

This exploit, it's not out of the question, necessarily. There was an article not too far back about how you can 'jailbreak' an iPhone by clicking on a link. The vulnerabilities are different, though, and I'm not really sure how they manage to find a hole to send a text message with.

Ideally, you should try to update to Android Marshmallow or Nougat (when it launches in earnest), or an equivalent version of Cyanogenmod, so you can get permission-by-permission control on your applications.

I can't say this is explicitly an answer to whether it's possible or not. At best, you've found an exploit that's already been patched. At worst, you've found an unpatched exploit that's being taken advantage of.

# Answer
> 0 votes
I've found out what is really going on. Some operators allow registering to some "premium services" via WAP. They use your network authorization to authorize the request. In this kind of situation you have to just click on link(which of course is hidden) and voila - you are registered to some high cost service. Unless you block this kind of premium services, what was fortunatelly my case. Anyway the information from the operator system is kind of misleading, therefore you may think(and also operator's call-center) that it could have been some sms send from your phone. So there was no sms sent without my knowledge via browser.

---
Tags: sms, 5.1-lollipop, chrome-for-android
---


title: Extract photo from contact

text:
# Question
Title: Extract photo from contact
This is a friend of mine, Taranaki: (perfect picture timing)

I want to extract this photo to a PNG on my device. How do I do that?

# Answer
> 1 votes
The best way is to do the following steps:

1. Go to `contacts`
2. `Options > Import/Export`
3. Select `Export to .vcf file`

Now the .vcf backup will be stored in your storage.

1. Open .vcf file in an advanced editor (in pc or phone)
2. Scroll and find the entry of the particular contact.
3. You can find a base64 encrypted code of your contact's photo -copy it.
4. Now open some `online base64 decoder` and paste the code and click decrypt.

You have your photo. Enjoy.

---
Tags: contacts, photos
---


# Question
Title: Sharing Windows PC Internet via USB cable
I cannot see any option to share My Windows PC Internet via USB cable.

How can I share PC internet to phone via USB? Please help.

# Answer
what do you want to do, usb is not capable of sharing INTERNET.

If you are referring to sharing files, they you don't need usb, if you have wifi, where both your pc and phone connect, preferably a private home wifi.

to use the ftp on wifi: phone to pc, set sharing on phone, and pc will ftp. while pc to phone, set sharing on a folder and use ftp or file explorer like es-file explorer to folder. I use this all the time to transfer photos. es if i want to post to intsagram from a digital photo(after transfer from camera to pc)
> 0 votes

---
Tags: samsung-galaxy-s-4
---


# Question
Title: Does moving apps to internal sd storage move the app save data as well?
I am just wondering. Lets say I move the game "Cooking Mama" to the adopted internal SD storage. The game is says 73.21 mb after the move. Does that include the game saves and downloaded content or just the original app and all my save data are in my phone still.

# Answer
Game saves are usually in the `/data` partition and will not be affected by app storage movement.

Downloaded content are usually in `Android/data` or `Android/obb` in your storage and is likely to be moved as well.
> 1 votes

# Answer
if you are moving apk files, then yes they are standalone, and only useful when you need to reinstall on another android os, repair or downgrade the app. They are safe to move. Only move apk that you installed and not came with original os.
> 0 votes

---
Tags: 6.0-marshmallow, internal-storage, external-sd, app2sd, internal-sd
---


# Question
Title: Updated Samsung galaxy A5 to Marshmallow but look and feel remains that of Lollipop
I have a Samsung galaxy A5 (SM-A500H) I didn't get a notification for an update from settings so I grabbed android 6.0.1 from Sammobile, I downloaded the South African version since there's no version for my country.

Everything is working and if I go to settings about phone, I see it's 6.0.1 and if I tap I get the marshmallow logo and the game that looks like flappy bird. And everything is working.

But it still feels like Lollipop. The color is still blue rather than black, the marshmallow themes and wallpapers are missing. When the phone boots I don't see the marshmallow animation, the scrolling in the app drawer is horizontal not vertical etc.

Is there a way to verify that what I'm using is really marshmallow? Could it be a knockoff?

# Answer
> 2 votes
Lower-end phones usually won't get the new manufacturer skin (that's on the new flagship phone) with a new Android version.

As for the launcher, bootanimation and stuff, it's how Samsung chose to make it in their TouchWiz skin - they don't necessarily follow how Google do it on Nexus.

Try installing Google Now Launcher if you want the vertical scrolling experience. Not looking as harmonious on top of all the TouchWiz icons but better than nothing.

# Answer
> 0 votes
in API 23(Marshmallow) Android apps should request permissions at runtime so all you need is open an app that uses your location or reading your sd card

try with google maps or download and install file explorer apps

and when you run the app you can see a dialog pops up for requesting permissions

---
Tags: samsung, 6.0-marshmallow, device-firmware, samsung-galaxy-a5
---


title: Recovery data from nexus 5

text:
# Question
Title: Recovery data from nexus 5
I have a nexus 5 that give me a Black screen when i unlock it with sign-code.I can't utilize it but i have to recovery my data.I thought to install an update image with adb sideload to see if my phone restarts to work well and recover my data but I don't know if the update images wipe my data.Do update images wipe my data.Are there other methods to recover my data?

# Answer
Sounds like your launcher (home screen) is acting up. Turn on USB Debugging if you haven't (go to Settings from the notification bar), then `adb install` another launcher from your PC. After that press HOME and select what's installed.

Don't try updating stuff yet - there are ways to recover even if the above fails (though more complicated).
> 0 votes

---
Tags: adb, nexus-5, data-recovery, fastboot, images
---


# Question
Title: How can I recover my phone (factory reset doesn't work)?
My phone is Asus Zenfone 5 and I want to recover my phone but I can't because it always stucks in the screen with the Asus logo.

I've tried recovering it by using the factory data reset in the settings and a hard reset but it just stucks on the Asus logo.

I also have heard about recovering it on a computer but I couldn't find the link to download a suitable recovery version for my phone.

Notes:

* I use Android 4.3.
* My phone version is:

> `ASUS_T00J_WW_user_1.15.40.35_20140715_3835release-keys 010175_201401130121`

# Answer
Get factory firmware here. There are versions matching exactly what you have (scroll down below), though ideally you need the one that also matches your SKU (region). It should come with instruction and tools (I can't verify), report back if not.
> 2 votes

---
Tags: recovery-mode, factory-reset, data-recovery, 4.3-jelly-bean, asus-zenfone-5
---


# Question
Title: Screen permanently black with broken proximity sensor and Proximity Sensor Accelerometer App
My phone's proximity sensor is broken and constantly signals "covered". The screen turns black when I'm called.

I installed an app Proximity Sensor Accelerometer to solve this and played around with the features.

**Now my screen is permanently black.**

How can I disable or uninstall the app? Maybe remotely? Maybe install another app remotely to fix this?

I don't have usb debugging enabled on the phone. Plugging in the charger doesn't reactivate the screen.

Device: Sony Xperia Z2, not sure of Android version

# Answer
The app settings are reset after the phone is restarted so I did this: power button + volume up.

Press it at the same time for a few seconds to turn off the screen without needing to use touch. Then start the phone and the app is reset.
> 0 votes

---
Tags: uninstallation, sensors, sony-xperia-z, proximity-sensor
---


title: Update Lava Iris X1 Grand to Lollipop

text:
# Question
Title: Update Lava Iris X1 Grand to Lollipop
I have Lava Iris X1 Grand. When I first bought it, the update was available. I was not interested at that time. Now I feel it should be installed but it doesn't work.

Anytime I click software update in About phone menu option, it doesn't respond at all. I installed third party app but it says "No update available & your device is already updated".

What to do then?

# Answer
> 0 votes
even I was facing this issue, but some how got the solution by trial and error. The funny part is its very simple. I hope you have downloaded the update package form the link: http://www.lavamobiles.com/support/iris-x1-grand/android-lollipop-upgrade once you have downloaded it, just rename it from "Update\_KK to L\_SD card.zip" to "Update.zip", try the steps to update now.

---
Tags: 5.0-lollipop, ota-update
---


# Question
Title: Samsung Galaxy Note 10.1 charging paused, battery temperature low
I have a new Samsung Galaxy Note 10.1. I recently bought it online. It was working fine, but now the tablet is not charging and keeps giving the error 'battery temperature low'. I tried charging it by switching the tablet off, but then it gives a yellow error sign.

# Answer
I can only get min to charge in safe mode. In normal mode it makes the charger connect sound, immediately followed by charger disconnect sound. To start in safe mode simply power down and restart, it will first show static Samsung logo, and then start animated Samsung logo, when second logo starts press and hold volume down. The screen will go slightly grey after a few seconds. You can leave the button then, it will start in safe mode. Only workaround seems to be rolling back to Kit Kat.
> 0 votes

---
Tags: charging, samsung-galaxy-note-10.1
---


title: Restore Note 4 on factory settings

text:
# Question
Title: Restore Note 4 on factory settings
I have a problem I hope it has solution. I broke a display on my Note4. Phone works in behind but display is not activated at all. I went to shop but the repair cost is not worth it. I want to sell the phone to repair dealer, but I want to bring the phone to factory settings and delete ally media. How can I do that when the display broken? I tried to connect it to PC. Windows 10 recognizes it and I get an icon of the phone. But when I click it no content is shown

# Answer
> 1 votes
Turn off the phone,. Once fully off hold volume down and power, it will bring you to the recovery menu, using the volume buttons navigate the menu and use power as your enter button, should have reset to factory or wipe user data as a option. Not sure if it will need a on-screen button press but only other way is from that recovery menu you would be able to flash the partitions via adb or if you unlocked your bootloader it would auto wipe the user partition. Which doesn't need on screen confirmation. But there are your options.

---
Tags: samsung-galaxy-note-4
---


# Question
Title: Can I use my Mobile's wifi adapter in Desktop PC
My desktop has broadband connection. But I do not have any wifi adapter. I want to use my cell phone's wifi adapter and wifi hotspot facility to make internet available for other systems. How can I do that?

# Answer
> 0 votes
It is possible but for that you need to use reverse tethering and then create a wifi hotspot.You can view this XDA thread for more information
PS:- Do you have a laptop? If yes, then you can use wifi hotspot apps to create a hotspot from your laptop

---
Tags: wi-fi
---


# Question
Title: Restore WhatsApp media from Google photos
I set up my phone to automatically backup WhatsApp media to Google Photos. Now I want to print one of my conversations as a book using a service like Zapptales. The problem is, that all media, that has already been backed up, is no longer available:

```
'Sorry, this media file doesn't exist on your SD card.'

```

However, the photos and videos are all still available on Google Photos. Is there a way to restore certain or all WhatsApp media from there back to my device?

# Answer
> 1 votes
Downloading the photos, keeping the names the same and putting them back in the

```
/storage/emulated/0/WhatsApp/Media/WhatsApp Images/

```

folder will work for most of them. Some photos might have been resized or other meta data changed during the upload to google photos and so it might not work for all.

If you are talking about a large number of photos, then you can download ALL your google photos from here (could take a while):

```
https://takeout.google.com/settings/takeout#

```

to your PC, and then select all the ones with a WhatsApp-style name, e.g:

```
IMG-20160913-WA0000.jpg

```

If you have set up google *drive* backup (Settings -\> Chats -\> Chat backup), then you might stand a chance by uninstalling WhatsApp, deleting the local backup from the phone, and allowing WhatsApp to retrive the backup from Google Drive. Before going to all that effort however, it is probably worth checking the size of the backup listed under (Settings -\> Chats -\> Chat backup). If it is large then it might contain all your photos. If it is small then it is unlikely to be worth the effort.

---
Tags: whatsapp-messenger
---


title: Ota images for nexus 5

text:
# Question
Title: Ota images for nexus 5
I want to update my nexus 5 with an ota image because it freezes after I unlock it with the sign code and I can't access the os.So I want to update my system with adb sideload and an ota image that I download directly from Google to see if the problem will be solved.I don't want to erase my data so my question is:Does a flash of an ota image through adb sideload wipe my data?

# Answer
> 1 votes
Google has noted here:

> \[Manually updating your Nexus device using OTA binary image files\] has the same effect of flashing the corresponding factory images, **but without the need of wiping the device**.

<sub>(Emphasis mine)</sub>

On the contrary, by OTA update, if you meant incremental platform/system updates, then even so, user data would not be wiped out.

User data would also not be wiped out if the factory image files are flashed manually (not via the included script) and *userdata* partition is skipped from flashing.

**Note:** It is my assumption that the question refers to *data* as everything created or added by the user (directly or indirectly - via an app or system) since the last time the factory reset was done. *Data* hence corresponds to files stored in the *userdata* partition, mounted at */data*. In simpler terms, *data* here is everything that would be deleted if a factory reset is performed on the device.

---
Tags: adb, stock-android, fastboot, nexus
---


title: Google Translate offline translation

text:
# Question
Title: Google Translate offline translation
I downloaded tons of offline translation packages for Google Translate some time ago. Then at some point I must have done something, maybe an update, or a setting change (perhaps that Primary Language thing that kept popping up every time I opened Translate?), and suddenly my packages have all vanished! Moreover, when I go under the top-left corner dropdown menu and choose "Offline translation", I end up here:

after getting a message `Can't get offline packages list` (or that pops up after those two blue texts appear, that varies from time to time), and none of those is a link. How do I get my offline translation back?

# Answer
> 2 votes
I just had the same problem. Just delete your app data and download them again.

---
Tags: offline, google-translate
---


# Question
Title: Working root method for Alcatel OT Pixi7 l213?
I Want to root my Alcatel OneTouch Pixi 7 (l213). Android 4.4.2

I tried adb manual from linux terminal, but stopped at "readonly partition" I have not sufficient knowledge and no actual clear instructions.

Kingroot failed at about 70%, without any error messages.

Any idea or link to insruction highly welcome

# Answer
> 0 votes
Have you tried KingRoot, you can download it from their website? Not 100% guaranteed but supports the most phones. Also you could try SuperSU's Update.zip too.

---
Tags: rooting
---


title: Adoptable storage prior to marshmallow?

text:
# Question
Title: Adoptable storage prior to marshmallow?
As most people know, adoptable storage is a feature that allows users to use an SD card as internal storage, including the saving of apps (Similar to the app2sd system, which was removed in KitKat). Now, is there **any** way (Short of creating my own custom ROM/kernel) to utilise this feature on phones and tablets before Marshmallow?

Edit: I should clarify that I mean **anything** that *replicates the behaviour* of adoptable storage (so anything like editing `vold` file still counts, from the accepted answer, for example)

# Answer
> 2 votes
This is the closest I could find that matches OP's expectations and should work, requires rooted device ( not tested by me). This **only** replicates *adoptable-storage* behaviour of Marshmallow to the extent it allows use of external SD to be used as internal SD for moving apps

**Sources:**

1. Swap internal storage with the SD card in Android Lollipop and KitKat
2. How to swap internal storage with the SD card in Android device

Both these are blogs by the same person but take different approaches:

**Source 1** requires

> This module changes value (path to internal SD card) in some Android APIs which apps use. Control this path in module's settings. You can enable this module for all apps or only for specific apps. Also you can enable full access to external SD card (for KitKat+)

And

* WSM Tools app that can be downloaded from Aptoide \- not available on Play Store

**Source 2** requires only Xposed module XInternalSD

**Approach**

* Swap internal storage with external SD using the XInternalSD module ( Common step for both methods)

* Using WSM Tools choose apps which you want to move External SD or move all apps (*Source 1*)

*OR*

* Using a root explorer amend `vold.fstab` to interchange `sdcard0` with `sdcard1` ( *Source 2*)

---
Tags: adoptable-storage
---


# Question
Title: Why is my phone carrier-branded and how to remove it?
I have purchased my HTC One mini for a full price from an independent store. I have connected it to MegaFon (Russian cellphone operator) and now there is a carrier's app on a phone and it is recognized as "MegaFon HTC HTC One mini".

I don't want my phone to be carrier-branded. How did it happen and how do I remove it?

# Answer
> 1 votes
SIM card subsystem is more complex than most people realise.

SIM cards can store applets, which can be run silently (without user acknowledgement) when a phone is booted with a sim installed. It would in theory have privileges to perform system actions like install an app or boot animation.

If the branding is being initiated by the SIM card, then you have no way of stopping it other than using a different network, or rooting and overwriting the customizations.

Having said that, while it is possible, it is uncommon and unlikely that is what happened.

It is also possible that the ROMs in the Russian market contain code which checks your sim card and performs some carrier-specific device customization.

It does seem more likely that the store sold you a branded device from the outset, but which only became activated once the SIM was installed.

It would be great to know what happens if you do a factory reset and install a sim from another network!

# Answer
> 0 votes
How it works is that mobile companies buy the rights to the Android OS to change the boot screen menu. Thus allowing them to set a brand logo on the start-up menu.

You are going to have to contact MegaFon to unbrand the device as it is a clear indication that the phone was branded to be locked by them.

---

OR

You are going to have to uninstall the Android OS and re-install it again.

This OS versions can be found on the Android homepage.

---
Tags: carriers
---


title: OTG storage devices stopped working

text:
# Question
Title: OTG storage devices stopped working
I have a Samsung I9305 running rooted stock Android 4.4.4 with Xposed framework.

I used to be able to use USB OTG Storage devices flawlessly.

However, recently, none of them mount. I've tried third party root drivers such as Paragon, but it didn't help. I've tried drives formated in FAT32, exFAT, ext4, NTFS and HFS+ (for the latter I tried using the Paragon driver.) None of them work now.

OTG mice and keyboards still work, so that leads me to think that this may be a software problem.

Is there anything, short of a full firmware restore, that I can try to make this work?

# Answer
> 0 votes
Try the app USB Device Info it might assist with debugging USB issues.

> This application will provide information about almost all currently plugged-in USB device (see below for more info about the 'almost').
>
> Information includes: •The Device class •The USB device path •The Vendor ID (VID) and the Product ID (PID). •A List of all interfaces and their endpoints.
>
> If you download the accompanying databases, the application will also be able to provide you with additional info such as the Vendor of the device (which is not necessarily the brand!), the vendor's logo and the product name.
>
> This application uses two different methods to collect information:
>
> 1. Android mode will use the native android USB API.
> 2. Linux mode will parse /sys/bus/usb/devices/.

---
Tags: usb-on-the-go
---


# Question
Title: How to root Samsung Galaxy A5 (SM-A500H) running Android 6.0.1
I have Galaxy A5 (SM-A500H) When I was on Lollipop I rooted it using kingroot apk. Yesterday I upgraded to 6.0.1 from sammobile. And it has `SS/pc` not sure if that prevent rooting or anything like that, I'm using Uzbekistan's version.

Kingroot apk no longer works, it gets to 65% then tells me that no rooting strategy works. Kingroot exe seems to be offered exclusively in Chinese these days so I cannot use it.

The chainfire version doesn't work, if I use it, I get a little red warning on booting screen that I have breached the warranty or something like that, I don't care about the error but the phone won't boot, the only way to exit, is to press volume down and power and home button and wait like 10 seconds, enter download mode and flash the Sammobile firmware again.

# Answer
Odin, this TWRP recovery and a SuperSU flashable zip (the thread also supplies one but it seems to be for Lollipop) should be all you need.

P.S. As of version 2.78, SuperSU is fully under the control of Chinese firm CCMT - use 2.76 if you don't trust that.
> 1 votes

---
Tags: rooting, root-access, samsung, samsung-galaxy-a5
---


# Question
Title: Android 6, delete file from /data/user/0/
I have an un-rooted Samsung Galaxy running Android 6.0.1 and for an app to work properly, I must delete a (lock-)file from the following path:

/data/user/0/com.some.app/some.dir/lkc904d56b5dbe600e60d121882bb2a1f2

How can I delete that file (without rooting the device)?

Thanx a lot for your help!

BR, D.

PS: I tried mounting the device storage to my Ubuntu 16.04 machine, but could not find the folder.

# Answer
There is no way you can access the `/data` partition **unless you are *rooted***.

So, you need to root the device again to delete it..

Or, if you have a custom recovery installed, then you can just easily delete it, like:

1. For TWRP, open 'Advanced' and go to 'File Manager' and delete the file.
2. For CWM/Philz, just use (flash) the AROMA Filemanager Zip and browse & delete the file.
3. Or else, you could create a flashable zip to delete the file from the exact file location, or you could do it from the Terminal of the custom recovery (if it provides one)

Or else, if you don't have custom recovery, and if you don't want to root, the only way would be to **factory reset** (you might want to take backups before that).

> PS: I tried mounting the device storage to my Ubuntu 16.04 machine, but could not find the folder.

The device storage (internal storage) shows the files under `/data/media/0`, so you won't see it there..
> 1 votes

---
Tags: linux
---


# Question
Title: Why such outlined fonts appearing randomly in my phone?
See the OK Google thing in the screenshot?

# Answer
> 1 votes
This is caused by a accessibility option. To turn this off, go to: `settings > accessibility > high contrast text`

---
Tags: 6.0-marshmallow, fonts
---


# Question
Title: Moto G 1st gen getting "unfortunately google play services has stopped" message even in safe mode
I hope you can help.

I have a Moto G 1st gen phone and for the last two days I have had the dreaded "Unfortunately google play services has stopped" message.

I cannot "force stop" the app as suggested elsewhere, since the only buttons still working are "disable" and "manage space".

The "force stop" and "uninstall updates" buttons are greyed out.

The "clear cache" button is not greyed out but doesn't do anything when pressed.

I have tried changing to "safe mode" and even then I still get the same "unfortunately...." message. Apparently that means it isn't a problem with any of my many installed apps (?)

I cannot update the app manually as it doesn't exist on "play store".

I did have an incident yesterday where Norton closed down internet access for a time, having discovered "malware" in an app which I then had to delete to reinstate the internet connection and continue using the phone. I can't remember if the play services message was appearing before that incident or not.

Please advise in straightforward terms what I can do next - is a factory reset my only option or could you suggest something else? If you can suggest something else, please advise in simple terms what I need to do and where to find what I need, if you can.

The version of Google play services I have on my phone is Version 9.4.52 and obviously it isn't running the latest operating system as there was never an upgrade available for my phone.

Thank you !

# Answer
> 1 votes
If I'm correct, the best way to handle this is usually this: Tediously, navigate to settings. Once in there, go to accounts and remove all your accounts. Once this is done, back out of that to the main settings. Then navigate to apps. Look for `Google Play Services`. Force stop it, then clear cache and data. Do the same with `Google Play Store`. Once this is done, go open up the Play Store. If done correctly, usually it'll ask you to accept the Terms of Service. If you get that, then you can sign in and it should be fixed. Sometimes you have to repeat this a couple times because sometimes it doesn't trigger whatever it is that fixes it.

---
Tags: motorola-moto-g, google-play-services
---


title: how to view saved passwords with root

text:
# Question
Title: how to view saved passwords with root
How do I get the saved wifi passwords from my android kitkat phone. It is rooted and I have the adb tool. How do I do this? I know that I can download stuff to do it but I do not want to download any application as my device has no more storage. What other options do I have? I have looked around but I do not know what to do.

# Answer
> 0 votes
first, if using windows, go the the folder containing adb.exe. then shift right click on the folder and select `open cmd here`. then type `adb devices` to check is the device has developer options on. type `adb root` .then type `adb shell`. if the `$` sign changes to `#` then it is now in root mode. type `cd /data/misc/wifi`. then type `cat wpa_supplicant.conf`. VOILA!

---
Tags: adb, shell, password
---


# Question
Title: How to stop System Update from Canvas A1?
Android version of my Canvas A1 (AQ4501) is 4.4.4. And its rooted.

Now I am getting System Update for Android 6.0.

How to stop System Update for my rooted Canvas A1? and

If I update it to Android 6.0, will it affect root access?

Regards

Ugn10

# Answer
> 1 votes
> How to stop System Update for my rooted Canvas A1?

**PROCEDURE to disable the Google Official OTA updates completely:**

\*. You need to be rooted for this.

1. Install this app: **Disable Services** and open it.
2. Select the '***System***' tab.
3. Select the "*Google Services Framework*" app and uncheck (**disable**) the following service: ***SystemUpdateService***
4. Again, select the "*Google Play Services*" app and uncheck this service: ***SystemUpdateService***

Tested and working on Android One devices & Google Nexus.

That's it! You'll never get the update notification and neither will you be able to check it manually.

If you feel you want the updates again, you can re-enable these services again to receive updates.

(Source: **\[TIP\] How to disable the Google OTA updates completely**)

> If I update it to Android 6.0, will it affect root access?

Yes, definitely it will affect the root access.
BTW, you won't even be able to install the OTA zip (since you have rooted the stock KitKat, by which system partition is modified).

# Answer
> 0 votes
why dont you want to update? i would highly recomend updating as it will not affect root *to my knowledge*. if it does, just root it again? you can use kingo root: https://www.kingoapp.com/ it works *most* of the times.

---
Tags: android-one
---


# Question
Title: I accidentally uninstalled the kingroot app and I can't find a way to completely unroot now
So all the sudden after having my phone rooted for a month, my phone freaked out and sent me a notification that said kingroot was "hurting" my phone. So I tried to click on it and apparently I hit the uninstall button in the notification and now I can't completely unroot to reroot and fix this. I can't just install another root and I've looked thru all of my files in the preinstalled "my files\* app and there is nothing kingroot related if I understand correctly. Help pleeeaasee! Without root my battery is very bad and every stupid bloatware app autostarts.

# Answer
just go to kingo root webiste and root again: https://www.kingoapp.com/
> 1 votes

# Answer
Try installing it again and then removing root, but UNTICK the KEEP BACKUP checkbox.
> 0 votes

---
Tags: uninstallation
---


# Question
Title: A way to automate the creation of flashable ZIPs
So, my question is: is there a way to automate the creation of flashable ZIP archives, in order to avoid having to write the **updater-script** and **update-binary** by myself each and every time I want a ZIP to be done?

Furthermore, the only feature the ZIP archives are required to do, is to install an application as **system app**. How could I perform such task, preferably without the aid of an external app?

# Answer
> 1 votes
Being unable to find something that matched my needs, I resolved to write a little script by myself. It's open to anyone which needs it.

```
#!/system/bin/sh

#This variable is used to calculate the time took by the various operations
#Altering it will result in badly calculated elapsed time
SECONDS=0

#This variable saves the path where the script resides
#DO NOT ALTER IT, or the whole script will fail with unpredictable errors
scriptDir="$(dirname "$(readlink -f "$0")")"

#This function verifies if there's at least an APK in the script's folder
#///Beginning of function "apkChecker"///
function apkChecker {
 echo "[INFO] Checking if at least an APK file is present..."
 if [ "$(ls "$scriptDir" | grep "\.apk$")" != "$(cat /dev/null)" ]; then
  echo "[INFO] At least one APK file has been found."
 else
  echo "[FATAL] No APK file found. Aborting."
  exit
 fi
}
#///End of function "apkChecker"///

#This function checks if the required tools (aapt and zip) are installed
#///Beginning of function "depencenciesChecker"///
function dependenciesChecker {
 echo "[INFO] Checking if both the aapt and zip utilities are installed..."

 whence -v aapt &> /dev/null
 isAaptAbsent="$(echo $?)"

 whence -v zip &> /dev/null
 isZipAbsent="$(echo $?)"

 case "$isAaptAbsent" in
  0)
   case "$isZipAbsent" in
    0)
     echo "[INFO] Both aapt and zip have been found."
     unset "isAaptAbsent" "isZipAbsent"
     ;;
    *)
     echo "[FATAL] zip cannot be found. Aborting."
     exit
     ;;
   esac
   ;;
  *)
   case "$isZipAbsent" in
    0)
     echo "[FATAL] aapt cannot be found. Aborting."
     exit
     ;;
    *)
     echo "[FATAL] Neither aapt nor zip can be found. Aborting."
     exit
     ;;
   esac
   ;;
 esac
}
#///End of function "dependenciesChecker"///

#This function relies on aapt, and is meant to retrieve the app's name from the given APK
#Notice that only the first APK in a list gets picked
#///Beginning of function "appNameRetriever"///
function appNameRetriever {
 echo "[INFO] Retrieving app name from the provided APK..."
 apkFile="$(ls "$scriptDir" | grep "\.apk$" | head -n 1)"
 appName="$(aapt d badging "$scriptDir"/"$apkFile")"
 appName="${appName#*application-label:\'}"
 appName="${appName//app*/}"
 appName="${appName%\'*}"
 displayedName=$appName
 appName="$(printf "%s" $appName)"
}
#///End of function "appNameRetriever"///

#This function creates the tree used by the ZIP (namely, the META-INF/com/google/android and appName folders)
#It also copies the previously picked APK to the appName folder, renaming it in the process
#///Beginning of function "folderTreeCreator"///
function folderTreeCreator {
 echo "[INFO] Creating ZIP folder tree and placing the APK to be flashed inside it..."
 mkdir -p ""$scriptDir"/$appName/META-INF/com/google/android"
 mkdir -p ""$scriptDir"/$appName/$appName"
 cp ""$scriptDir"/""$apkFile""" ""$scriptDir"/$appName/$appName/$appName.apk"
}
#///End of function "folderTreeCreator"///

#This function creates a dummy updater-script, which server mainly for aesthetical purposes
#///Beginning of function "updaterScriptCreator"///
function updaterScriptCreator {
 echo "[INFO] Creating dummy updater-script..."
 echo -n "#This is a dummy file. The magic is in the update-binary, which is a shell script." > ""$scriptDir"/$appName/META-INF/com/google/android/updater-script"
}
#///End of function "updaterScriptCreator"///

#=== BEGINNING OF "update-binary" WRITING SECTION ===
#From now on, the functions whose name begins with "sectionWriter", are used to assemble the update-binary

#This function writes the function and variables used for outputting things when flashing, to update-binary
#Thanks to Chainfire @ XDA, which seems to have been the first to implement them
#///Beginning of function "sectionWriter_header"///
function sectionWriter_header {
 echo "[INFO] Writing variables and functions prototypes to update-binary..."
 cat <<-EOF > ""$scriptDir"/$appName/META-INF/com/google/android/update-binary"
#!/sbin/sh

OUTFD=\$2
ZIP=\$3

ui_print() {
 echo -ne "ui_print \$1\n" > /proc/self/fd/\$OUTFD
 echo -ne "ui_print\n" > /proc/self/fd/\$OUTFD
}

EOF
}
#///End of function "sectionWriter_header"///

#This function writes the title of the ZIP (which contains the human-readable app name of the APK), to update-binary
#///Beginning of function "sectionWriter_zipName"///
function sectionWriter_zipName {
 echo "[INFO] Writing script title to update-binary..."
 cat << EOF >> ""$scriptDir"/$appName/META-INF/com/google/android/update-binary"
ui_print ""
ui_print "******************************"
ui_print " $displayedName Flashable ZIP "
ui_print " made by EDGAR, written by "
ui_print " Death Mask Salesman "
ui_print "******************************"
ui_print ""

EOF
}
#///End of function "sectionWriter_zipName"///

#This function writes the instructions necessary to mount the system partition in read-write mode, to update-binary
#///Beginning of function "sectionWriter_systemRwMount"///
function sectionWriter_systemRwMount {
 echo "[INFO] Writing mount instructions to update-binary..."
 cat << EOF >> ""$scriptDir"/$appName/META-INF/com/google/android/update-binary"
ui_print "~ Mounting /system in read-write mode..."
mount /system
mount -o remount,rw /system
ui_print ""

EOF
}
#///End of function "sectionWriter_systemRwMount"///

#This function writes the instructions to check for the Android version, to update-binary
#Notice that only JB, KK, LP and MM are supported, for now. That means a vast plethora of devices
#///Beginning of function "sectionWriter_osVersionChecker"///
function sectionWriter_osVersionChecker {
 echo "[INFO] Writing OS checking instructions to update-binary..."
 cat << EOF >> ""$scriptDir"/$appName/META-INF/com/google/android/update-binary"
ui_print "~ Checking Android version..."
androidVersion="\$(cat /system/build.prop | grep 'ro\.build\.version\.release')"
androidVersion="\${androidVersion#*=}"

case "\$androidVersion" in
 4.1*|4.1.*|4.2*|4.2.*|4.3*|4.3.*)
  ui_print "~ Android Jelly Bean (\$androidVersion) detected: proceeding."
  ;;
 4.4*|4.4.*)
  ui_print "~ Android KitKat (\$androidVersion) detected: proceeding."
  ;;
 5*|5.*|5.*.*)
  ui_print "~ Android Lollipop (\$androidVersion) detected: proceeding."
  ;;
 6*|6.*|6.*.*)
  ui_print "~ Android Marshmallow (\$androidVersion) detected: proceeding."
  ;;
 *)
  ui_print "~ Your Android version (\$androidVersion) is either obsolete or still unsupported."
  ui_print "~ Unmounting /system and aborting."
  umount /system
  exit
  ;;
esac

EOF
}
#///End of function "sectionWriter_osVersionChecker"///

#This function writes the instructions needed to unpack the ZIP to a temporary location, to update-binary
#This procedure is needed to obtain the APK to be installed as system app
#///Beginning of function "sectionWriter_zipUnpacker"///
function sectionWriter_zipUnpacker {
 echo "[INFO] Writing ZIP unpacking instructions to update-binary..."
 cat << EOF >> ""$scriptDir"/$appName/META-INF/com/google/android/update-binary"
ui_print "~ Extracting the ZIP to a temporary folder..."
mkdir -p "/tmp/$appName"
cd "/tmp/$appName"
unzip -o "\$ZIP"
ui_print ""

EOF
}
#///End of function "sectionWriter_zipUnpacker"///

#This function writes the bunch of instructions necessary to install the app as system, to update-binary
#As can be seen from the case-esac, almost each Android release has its specific install location
#///Beginning of function "sectionWriter_appInstaller"///
function sectionWriter_appInstaller {
 echo "[INFO] Writing APK installation instructions to update-binary..."
 cat << EOF >> ""$scriptDir"/$appName/META-INF/com/google/android/update-binary"
ui_print "~ Installing $displayedName..."

case "\$androidVersion" in
 4.1*|4.1.*|4.2*|4.2.*|4.3*|4.3.*)
  cp "/tmp/$appName/$appName/$appName.apk" "/system/app/"
  ;;
 4.4*|4.4.*)
  cp "/tmp/$appName/$appName/$appName.apk" "/system/priv-app/"
  ;;
 5*|5.*|5.*.*|6*|6.*|6.*.*)
  mkdir -p "/system/priv-app/$appName"
  cp "/tmp/$appName/$appName/$appName.apk" "/system/priv-app/$appName/"
  ;;
esac

ui_print "~ $displayedName has been installed."
ui_print ""

EOF
}
#///End of function "sectionWriter_appInstaller"///

#This function writes the instructions to change ownership, permissions and eventual SELinux context, to update-binary
#As for now, the script determines if SELinux is present by looking for the setenforce binary
#I'll probably base the check on the presence of "/sys/fs/selinux", but that has to be done in a next version
#///Beginning of function "sectionWriter_validateApp"///
function sectionWriter_validateApp {
 echo "[INFO] Writing APK ownership, permission and context change instructions to update-binary..."
 cat << EOF >> ""$scriptDir"/$appName/META-INF/com/google/android/update-binary"
case "\$androidVersion" in
 4.1*|4.2*|4.3*)
  ui_print "~ Setting ownership and permissions..."
  chown 0.0 "/system/app/$appName.apk"
  chmod 644 "/system/app/$appName.apk"
  if [ -e "/system/bin/setenforce" ]; then
   ui_print "~ Setting SELinux appropriate context..."
   chcon u:object_r:system_file:s0 "/system/app/$appName.apk"
  fi
  ;;
 4.4*)
  ui_print "~ Setting ownership and permissions..."
  chown 0.0 "/system/priv-app/$appName.apk"
  chmod 644 "/system/priv-app/$appName.apk"
  if [ -e "/system/bin/setenforce" ]; then
   ui_print "~ Setting SELinux appropriate context..."
   chcon u:object_r:system_file:s0 "/system/priv-app/$appName.apk"
  fi
  ;;
 5*|6*)
  ui_print "~ Setting ownership and permissions..."
  chown 0.0 "/system/priv-app/$appName"
  chmod 755 "/system/priv-app/$appName"
  chown 0.0 "/system/priv-app/$appName/$appName.apk"
  chmod 644 "/system/priv-app/$appName/$appName.apk"
  if [ -e "/system/bin/setenforce" ]; then
   ui_print "~ Setting SELinux appropriate context..."
   chcon u:object_r:system_file:s0 "/system/priv-app/$appName"
   chcon u:object_r:system_file:s0 "/system/priv-app/$appName/$appName.apk"
  fi
  ;;
esac
ui_print ""

EOF
}
#///End of function "sectionWriter_validateApp"///

#This function writes the instructions to unmount the system partition, to update-binary
#///Beginning of function "sectionWriter_systemUnmount"///
function sectionWriter_systemUnmount {
 echo "[INFO] Writing unmount instructions to update-binary..."
 cat << EOF >> ""$scriptDir"/$appName/META-INF/com/google/android/update-binary"
ui_print "~ Unmounting /system..."
umount /system
ui_print ""

EOF
}
#///End of function "sectionWriter_systemUnmount"///

#This function writes something as a termination/goodbye message, to update-binary
#///Beginning of function "sectionWriter_goodbyeString"///
function sectionWriter_goodbyeString {
 echo "[INFO] Writing goodbye message to update-binary..."
 echo "ui_print \"Installation completed! Have a great day!\"" >> ""$scriptDir"/$appName/META-INF/com/google/android/update-binary"
}
#///End of function "sectionWriter_goodbyeString"///

#=== END OF "update-binary" WRITING SECTION ===

#This function packs the META-INF and appName folders, thus creating the flashable ZIP
#DO NOT set a compression level of "0", or the produced ZIP will be corrupted
#///Beginning of function "zipPacker"///
function zipPacker {
 echo "[INFO] Packing the ZIP..."

 cd ""$scriptDir"/$appName"
 zip -qr9 $appName.zip *
}
#///End of function "zipPacker"///

#This function moves the compressed ZIP to the same directory of the script, and wipes the directories created by "folderTreeCreator", along with their content
#///Beginning of function "cleanup"///
function cleanup {
 echo "[INFO] Moving the flashable ZIP to "$scriptDir"..."
 mv ""$scriptDir"/$appName/$appName.zip" "$scriptDir"

 echo "[INFO] Cleaning up the folders used as ZIP base..."
 rm -rf ""$scriptDir"/$appName"
}
#///End of function "cleanup"///

#This is the core of the EDGAR tool
#Here, all of the previously defined functions are called in the correct order
#To add a function, and thus extend EDGAR's versatility, simply define it above, and call it below
#///Beginning of EDGAR's core///
echo "**************************************"
echo " EDGAR - Flashable ZIP creator script "
echo "    by    Death    Mask    Salesman   "
echo "**************************************"
echo ""

apkChecker
echo ""

dependenciesChecker
echo ""

appNameRetriever
echo ""

folderTreeCreator
echo ""

updaterScriptCreator
echo ""

sectionWriter_header
sectionWriter_zipName
sectionWriter_systemRwMount
sectionWriter_osVersionChecker
sectionWriter_zipUnpacker
sectionWriter_appInstaller
sectionWriter_validateApp
sectionWriter_systemUnmount
sectionWriter_goodbyeString
echo ""

zipPacker
echo ""

cleanup
echo ""

echo "[INFO] Operations took "$(((SECONDS/60)/60))" hours, "$(((SECONDS/60)%60))" minutes and "$((SECONDS%60))" seconds."
echo "[INFO] All done!"
#///End of EDGAR's core///

```

# Answer
> 1 votes
I have taken the script by @DeathMaskSalesman and augmented it so that it produces a ZIP containing all `.apk` packages found in the current directory and installs both those packages as well as the libraries contained therein.

```
#!/bin/sh
#!/system/bin/sh
# Swap the above two lines as appropriate: Linux: /bin/sh; Android: /system/bin/sh
#http://android.stackexchange.com/questions/143304

#This variable is used to calculate the time took by the various operations
#Altering it will result in badly calculated elapsed time
SECONDS=0

#This variable saves the path where the script resides
#DO NOT ALTER IT, or the whole script will fail with unpredictable errors
scriptDir="$(dirname "$(readlink -f "$0")")"

# This defines the name of the created ZIP
ZIPFILE="$scriptDir/edgar.zip"

# This defines the name of the temporary directory where
# the ZIP structure will be built
ZIPDIR="$ZIPFILE.dir"

rm -rf "$ZIPDIR" "$ZIPFILE" # Uncomment to automatically remove pre-existing ZIP

#This defines the path to the update-binary within the ZIPDIR
UPDATE_BINARY="$ZIPDIR/META-INF/com/google/android/update-binary"

#Helper function to abort: prints fatal error message and exits
abort() { echo '[FATAL] '$*; exit 1; }

#Aborts unless listed dependencies are satisfied
depend() {
  for dep in "$@"
  do
    which "${dep}" &> /dev/null || \
      abort 'Missing dependency '${dep}' (required: '$@')'
  done
}

#This function relies on aapt, and is meant to retrieve the app's name from the given APK
#///Beginning of function "appNameRetriever"///
#Sets globals $displayedName to the app name with whitespace intact
#             $appName to the app name with whitespace removed
#             $apkFile to the path passed in as $1
function appNameRetriever {
 echo "[INFO] Retrieving app name from $1..."
 apkFile="$1"
 appName="$(aapt d badging "$apkFile")"
 appName="${appName#*application-label:\'}"
 appName="${appName//app*/}"
 appName="${appName%\'*}"
 displayedName=$appName
 appName="$(printf "%s" $appName)"
}
#///End of function "appNameRetriever"///

#This function creates the directory structure required inside ZIP
init() {
  [[ -e "$1" ]] && abort "Cannot initialize '$1'; already exists"
  echo "[INFO] Initializing ZIP structure..."
  mkdir -p "$ZIPDIR/META-INF/com/google/android"
}
#///End of function "folderTreeCreator"///

add_apk() {
 echo "[INFO] Adding $appName..."
 mkdir -p "$ZIPDIR/$appName"
 cp "$apkFile" "$ZIPDIR/$appName/$appName.apk"
}

#This function creates a dummy updater-script, which serves mainly for aesthetical purposes
#///Beginning of function "updaterScriptCreator"///
function updaterScriptCreator {
 echo "[INFO] Creating dummy updater-script..."
 echo -n "#This is a dummy file. The magic is in the update-binary, which is a shell script." > "$ZIPDIR/META-INF/com/google/android/updater-script"
}
#///End of function "updaterScriptCreator"///

#=== BEGINNING OF "update-binary" WRITING SECTION ===
#From now on, the functions whose name begins with "sectionWriter", are used to assemble the update-binary

#This function writes the function and variables used for outputting things when flashing, to update-binary
#Thanks to Chainfire @ XDA, which seems to have been the first to implement them
#///Beginning of function "sectionWriter_header"///
function sectionWriter_header {
 echo "[INFO] Writing variables and function prototypes to update-binary..."
 cat <<-EOF > "$ZIPDIR/META-INF/com/google/android/update-binary"
#!/sbin/sh

OUTFD=\$2
ZIP=\$3

ui_print() {
 echo -ne "ui_print \$1\n" > /proc/self/fd/\$OUTFD
 echo -ne "ui_print\n" > /proc/self/fd/\$OUTFD
}

get_buildprop() {
 prop=\$(grep "\${1//./\\.}=" /system/build.prop)
 echo "\${prop#*=}"
}

ui_print ""
ui_print "******************************"
ui_print " APK Flashable ZIP "
ui_print " made by EDGAR, written by "
ui_print " Death Mask Salesman "
ui_print "******************************"
ui_print ""
EOF
}
#///End of function "sectionWriter_header"///

#This function writes the title of the app (which contains the human-readable app name of the APK), to update-binary
#///Beginning of function "sectionWriter_zipName"///
function sectionWriter_appName {
 echo "[INFO] Writing script title to update-binary..."
 cat << EOF >> "$ZIPDIR/META-INF/com/google/android/update-binary"
ui_print ""
ui_print "******************************"

EOF
}
#///End of function "sectionWriter_zipName"///

#This function writes the instructions necessary to mount the system partition in read-write mode, to update-binary
#///Beginning of function "sectionWriter_systemRwMount"///
function sectionWriter_systemRwMount {
 echo "[INFO] Writing mount instructions to update-binary..."
 cat << EOF >> "$ZIPDIR/META-INF/com/google/android/update-binary"
ui_print "~ Mounting /system in read-write mode..."
mount /system
mount -o remount,rw /system
ui_print ""

EOF
}
#///End of function "sectionWriter_systemRwMount"///

#This function writes the instructions to check for the Android version, to update-binary
#Notice that only JB, KK, LP and MM are supported, for now. That means a vast plethora of devices
#///Beginning of function "sectionWriter_osVersionChecker"///
function sectionWriter_osVersionChecker {
 echo "[INFO] Writing OS checking instructions to update-binary..."
 cat << EOF >> "$ZIPDIR/META-INF/com/google/android/update-binary"
ui_print "~ Checking Android version..."
androidVersion="\$(get_buildprop 'ro.build.version.release')"

case "\$androidVersion" in
 4.1*|4.1.*|4.2*|4.2.*|4.3*|4.3.*)
  ui_print "~ Android Jelly Bean (\$androidVersion) detected: proceeding."
  ;;
 4.4*|4.4.*)
  ui_print "~ Android KitKat (\$androidVersion) detected: proceeding."
  ;;
 5*|5.*|5.*.*)
  ui_print "~ Android Lollipop (\$androidVersion) detected: proceeding."
  ;;
 6*|6.*|6.*.*)
  ui_print "~ Android Marshmallow (\$androidVersion) detected: proceeding."
  ;;
 *)
  ui_print "~ Your Android version (\$androidVersion) is either obsolete or still unsupported."
  ui_print "~ Unmounting /system and aborting."
  umount /system
  ;;
esac

EOF
}
#///End of function "sectionWriter_osVersionChecker"///

#This function gets the list of supported ABI versions (CPU Architecture)
#in increasing order of preference
#///Beginning of function "sectionWriter_getAbiList
function sectionWriter_getAbiList {
  echo "[INFO] Writing getAbi instructions to update-binary..."
  cat << EOF >> "$UPDATE_BINARY"
ui_print "~ Getting supported ABIs..."

reverse() {
  if [ "\$#" -gt 0 ]; then
    local arg=\$1
    shift
    reverse "\$@"
    echo -n "\$arg "
  fi
}

androidAbiList="\$(get_buildprop 'ro.product.cpu.abilist')"
androidAbiList="\${androidAbiList//,/ }"
if [[ -n "\$androidAbiList" ]]
then
  androidAbiList="\$(reverse \$androidAbiList)"
else
  androidAbi="\$(get_buildprop 'ro.product.cpu.abi')"
  androidAbi2="\$(get_buildprop 'ro.product.cpu.abi2')"
  androidAbiList="\$androidAbi2 \$androidAbi"
fi

ui_print "~ Supported ABIs: \$androidAbiList"

EOF
}
#///End of function "sectionWriter_osVersionChecker"///

#This function writes the bunch of instructions necessary to install the app as system, to update-binary
#As can be seen from the case-esac, almost each Android release has its specific install location
#///Beginning of function "sectionWriter_apkInstaller"///
function sectionWriter_apkInstaller {
 echo "[INFO] Writing APK installation instructions to update-binary..."
 cat << EOF >> "$ZIPDIR/META-INF/com/google/android/update-binary"
ui_print "~ Installing $displayedName..."

case "\$androidVersion" in
 4.1*|4.1.*|4.2*|4.2.*|4.3*|4.3.*)
  unzip -qo "\$ZIP" '$appName/$appName.apk' -d '/system/app/'
  ;;
 4.4*|4.4.*)
  unzip -qo "\$ZIP" '$appName/$appName.apk' -d '/system/priv-app/'
  ;;
 5*|5.*|5.*.*|6*|6.*|6.*.*)
  unzip -qo "\$ZIP" '$appName/*' -d '/system/priv-app'
  ;;
esac

ui_print "~ $displayedName has been installed."
ui_print ""

EOF
}
#///End of function "sectionWriter_apkInstaller"///

#This function writes instructions to update-binary to install any libs in the apk
#As can be seen from the case-esac, almost each Android release has its specific install location
#///Beginning of function "sectionWriter_libInstaller"///
function sectionWriter_libInstaller {
 echo "[INFO] Writing library installation instructions to update-binary..."
 cat << EOF >> "$ZIPDIR/META-INF/com/google/android/update-binary"
ui_print "~ Installing $displayedName libraries..."

case "\$androidVersion" in
 4.1*|4.1.*|4.2*|4.2.*|4.3*|4.3.*|4.4*|4.4.*)
  apkFile='/system/app/$appName/$appName.apk'
  ;;
 5*|5.*|5.*.*|6*|6.*|6.*.*)
  apkFile='/system/priv-app/$appName/$appName.apk'
  ;;
esac

unzip -qo "\$apkFile" 'lib/*'
for abi in \$androidAbiList
do
  if [[ -d "lib/\$abi" ]]
  then
    ui_print "~ \$abi..."
    mv lib/\$abi/* '/system/vendor/lib'
  fi
done
rm -rf lib

ui_print "~ $displayedName libs have been installed."
ui_print ""

EOF
}
#///End of function "sectionWriter_libInstaller"///

#This function writes the instructions to change ownership, permissions and eventual SELinux context, to update-binary
#As for now, the script determines if SELinux is present by looking for the setenforce binary
#I'll probably base the check on the presence of "/sys/fs/selinux", but that has to be done in a next version
#///Beginning of function "sectionWriter_validateApp"///
function sectionWriter_validateApp {
 echo "[INFO] Writing APK ownership, permission and context change instructions to update-binary..."
 cat << EOF >> "$ZIPDIR/META-INF/com/google/android/update-binary"
case "\$androidVersion" in
 4.1*|4.2*|4.3*)
  ui_print "~ Setting ownership and permissions..."
  chown 0.0 "/system/app/$appName.apk"
  chmod 644 "/system/app/$appName.apk"
  if [ -e "/system/bin/setenforce" ]; then
   ui_print "~ Setting SELinux appropriate context..."
   chcon u:object_r:system_file:s0 "/system/app/$appName.apk"
  fi
  ;;
 4.4*)
  ui_print "~ Setting ownership and permissions..."
  chown 0.0 "/system/priv-app/$appName.apk"
  chmod 644 "/system/priv-app/$appName.apk"
  if [ -e "/system/bin/setenforce" ]; then
   ui_print "~ Setting SELinux appropriate context..."
   chcon u:object_r:system_file:s0 "/system/priv-app/$appName.apk"
  fi
  ;;
 5*|6*)
  ui_print "~ Setting ownership and permissions..."
  chown 0.0 "/system/priv-app/$appName"
  chmod 755 "/system/priv-app/$appName"
  chown 0.0 "/system/priv-app/$appName/$appName.apk"
  chmod 644 "/system/priv-app/$appName/$appName.apk"
  if [ -e "/system/bin/setenforce" ]; then
   ui_print "~ Setting SELinux appropriate context..."
   chcon u:object_r:system_file:s0 "/system/priv-app/$appName"
   chcon u:object_r:system_file:s0 "/system/priv-app/$appName/$appName.apk"
  fi
  ;;
esac
ui_print ""

EOF
}
#///End of function "sectionWriter_validateApp"///

#This function writes the instructions to unmount the system partition, to update-binary
#///Beginning of function "sectionWriter_systemUnmount"///
function sectionWriter_systemUnmount {
 echo "[INFO] Writing unmount instructions to update-binary..."
 cat << EOF >> "$UPDATE_BINARY"
ui_print "~ Unmounting /system..."
umount /system
ui_print ""

EOF
}
#///End of function "sectionWriter_systemUnmount"///

#This function writes something as a termination/goodbye message, to update-binary
#///Beginning of function "sectionWriter_goodbyeString"///
function sectionWriter_goodbyeString {
 echo "[INFO] Writing goodbye message to update-binary..."
 echo "ui_print \"Installation completed! Have a great day!\"" >> "$UPDATE_BINARY"
}
#///End of function "sectionWriter_goodbyeString"///

#=== END OF "update-binary" WRITING SECTION ===

#This function packs the prepared ZIP directory and
#removes it, leaving behind the flashable ZIP
#DO NOT set a compression level of "0", or the produced ZIP will be corrupted
#///Beginning of function "zipPacker"///
function zipPacker {
 echo "[INFO] Packing the ZIP..."

 OLDPWD=$(pwd)
 cd "$ZIPDIR"
 zip -qr9 "$ZIPFILE" .
 cd "$OLDPWD"
 rm -rf "$ZIPDIR"
}
#///End of function "zipPacker"///

#This is the core of the EDGAR tool
#Here, all of the previously defined functions are called in the correct order
#To add a function, and thus extend EDGAR's versatility, simply define it above, and call it below
#///Beginning of EDGAR's core///
echo "**************************************"
echo " EDGAR - Flashable ZIP creator script "
echo "    by    Death    Mask    Salesman   "
echo "**************************************"
echo ""

depend aapt zip find
echo ""

init "$ZIPDIR"
echo ""

updaterScriptCreator
echo ""

sectionWriter_header
sectionWriter_systemRwMount
sectionWriter_osVersionChecker
sectionWriter_getAbiList

for appName in $( find "$scriptDir" -maxdepth 1 -type f -name '*.apk' )
do
  appNameRetriever "$appName"
  sectionWriter_appName
  add_apk
  sectionWriter_apkInstaller
  sectionWriter_libInstaller
  sectionWriter_validateApp
done

sectionWriter_systemUnmount
sectionWriter_goodbyeString
echo ""

zipPacker
echo ""

echo "[INFO] Operations took "$(((SECONDS/60)/60))" hours, "$(((SECONDS/60)%60))" minutes and "$((SECONDS%60))" seconds."
echo "[INFO] All done!"
#///End of EDGAR's core///

```

Some points

* The script runs on my Android Lollipop and on Linux. I haven't been able to test on other Android versions.
* I have only tested flashing the generated ZIP using FlashFire.
* It installs libraries for the ABI that the Android system reports as valid. Where there are multiple it installs all of them from the least preferable to the most preferable (so the latter overwrites the former).

I am just learning about the internals of Android and I may have done some things incorrectly, so bear that in mind when looking at the script. I think the script could do with some cleaning up but I just wanted to get it out there for @DeathMaskSalesman to take a look at.

---
Tags: recovery-mode, system-apps, zip
---


# Question
Title: Disable Google Voice typing automatic language detection
I have been a fan of Google Voice typing for a long time. I use it for 2 languages, English and Italian.

On the Android Keyboard I can switch the language of the spell-checker by pressing the "World" icon. Until a few months ago, that would also change the language of Google Voice typing, i.e. when I pressed the microphone icon and start speaking, Google Voice typing would interpret my words in the language I had selected in the keyboard.

Right now instead, Google Voice typing got "smarter" and doesn't care about my keyboard setting, it just automatically detects the language I'm speaking. Of course it gets it wrong most of the time, and that is very frustrating, in particular because when I speak Italian (my mothertongue) it often thinks I am speaking English instead.

So, does anybody know if I can disable this automatic language detection and revert to the old behavior? Or do you have any suggestion on a workaround?

# Answer
Unfortunately at the moment it is impossible to disable automatic language detection and force the speech to text to interpret spoken words with the language set manually in the keyboard.
> 1 votes

# Answer
Go to Settings app of your phone and choose Google Voice typing option. Inside this you have an option to choose your Default Primary Language, as shown in below screen shot:

You can chose your Default (Italian) by **Press + Hold** the language name. Click **SAVE** and Google voice typing should pick your Updated default Primary Language irrespective of your Keyboard Settings.
> 0 votes

# Answer
This is a two-step process:

* Settings \> Language & input \> Google Keyboard \> Languages. Here disable English (disable `Use System language` if enabled) & only enable Italian.
* Also in your Google Voice Typing option, set your Default Primary language as Italian.

Now Voice Typing will not pick up English words even if you wanted it to.
> 0 votes

---
Tags: google, voice-recognition
---


# Question
Title: How do I enforce charging only on USB and disallow data?
The US Federal Trade Commission now suggests consumers driving rental cars not plug in their mobile phones using USB, due to security concerns.

I understand for the security of my phone and data the physical solution is best; there is no way data can be transferred though the cigarette lighter, but this requires carrying additional hardware when traveling.

Is there a way to disallow data transfer over USB within Android? My primary concern is with unrooted Android 7.0 Nougat, but I am actually interested in prior Android versions as well.

I am aware of the "Use USB to" menu that shows up under notifications with the following options:

1. Charge this device: Just charge this device
2. Supply power: Supply power to the other connected device
3. Transfer files: Transfer files to another device
4. Transfer photos (PTP): Transfer photos or files if MTP is not supported (PTP)
5. Use device as MIDI: use this device as MIDI

I am able to use USB debugging while "Charge this device" is selected, which is definitely sending data over USB and is in conflict with the description. Does this mean only explicitly allowed devices can send data over USB in "Charge this device" mode? Or are there other exceptions as well?

How do I enforce charging only for USB connections like a rental car and disallow data transfer?

# Answer
> -1 votes
First, don't leave ADB enabled except when you need it, even though you have to authorize any device that uses ADB, as good safety practice... Other than that, Marshmallow and newer Android do not allow file transfer or other data transfer without authorization on a per connection basis.

In Marshmallow or newer, I think this is generally an unwarranted concern and usb connection in rental cars can safely be used. TBH, I doubt any legitimate rental company car is of concern at all.

---
Tags: security, usb, 7.0-nougat
---


title: Fastboot's command boot

text:
# Question
Title: Fastboot's command boot
What can I do with fastboot's boot command?Can i boot into twrp recovey with my bootloader locked?I have to recover some data from my phone but I have adb disabled...I have a nexus 5 and I have thought to some solution but nothing...I don't know what to do

# Answer
Fastboot boot command allows a Bootable image to be started on the device without flashing it permanently... It can be a custom boot kernel image, a recovery environment (TWRP, CWM, Philz), or other custom image. Having an unlocked bootloader is a requirement to boot an unsigned (meaning not stock) image like TWRP.
> 2 votes

---
Tags: adb, recovery-mode, stock-android, fastboot
---


title: Show tasks in Google Calendar app

text:
# Question
Title: Show tasks in Google Calendar app
There is a "Tasks" calendar that can be selected on the Google Calendar web interface, that displays all Gmail tasks deadlines. This calendar is not shown/synced in the Google Calendar app. Is there a adapter app that works for tasks like maybe the Birthday Adapter app works for events? I'm not looking for a separate tasks app unless it can also hook into Google Calendar to show my tasks there.

# Answer
> 0 votes
Have a look at Reminders, the successor of Google Tasks. You can switch back and forth between Tasks and Reminders by opening the web interface, clicking the arrow next to 'Tasks' in the sidebar and selecting 'Switch to Reminders' from the menu.

---
Tags: google-calendar, google-tasks
---


# Question
Title: How to keep downloads from disappearing in standby mode?
Large downloads tend to disappear a while after I turn off my screen.

If I keep my screen on while downloading, my downloads finish normally, however, if I turn my screen off for a while, they completely disappear. I don't recieve an error message, they don't pause, and they don't show up in my history. They're just gone.

I download only using wifi, I don't use 4G.

My phone is a Samsung Galaxy Note 3 running under Android 5.0.

Power saving mode is off, restricting background data is off, Chrome's data saving mode is off, and enable wifi on standby is set to always.

I've tried using Advanced Download Manager instead, and that solved the problem, but it caused a lot of inconvenience as I had to perform multiple difficult steps to start the downloads using that application.

Does anyone know the solution to this problem?

# Answer
> 0 votes
There doesn't seem to be an answer to this question. I've tried many combinations of settings, but in the end, nothing fixed the error. I'm afraid this is a bug in Android, and since Samsung won't be rolling out any other updates for the N9005, we're stuck with it. There are, however, some things you can do to avoid the problem.

You can install a download manager from the Play Store. Those keep your downloads up and running, but they can cause other problems such as battery drainage or damaged files.

Another option that is will work is prohibiting your screen from turning off. There is a setting under developer settings that will keep your screen on when charging. You can also install an app from the Play Store if you want to keep your screen on when you're off the grid.

Lastly, you could install a custom ROM with an higher Android version. For the Note 3, the DarkLord ROM is an option. It comes with Android 5.1.1.

\[ROM\] \[6.0.1\] \[WIP\] DarkLord S7 Edge Full Port (Fastest, Smoothest)

For me, it worked like a charm, but you'll have to decide for yourself wether you want to flash a custom rom or not.

---
Tags: 5.0-lollipop, chrome-for-android, downloading, samsung-galaxy-note-3
---


title: Insufficient storage error message

text:
# Question
Title: Insufficient storage error message
I have bought new Samsung Galaxy S7. And it has available space of 27 GB, though whenever I try to download app it shows insufficient storage error. Please help me to solve this issue.

# Answer
try to reboot, check your storage settings or try using google:

http://recomhub.com/blog/galaxy-s7-how-to-fix-insufficient-storage-available-message/
> 0 votes

# Answer
Check your internal storage, It must be minimum free in order to install apps. Can you send your storage details.
> 0 votes

---
Tags: storage, samsung-galaxy-s7
---


# Question
Title: Where is color information stored in android apps ?
This might not be the correct place to post this, so please tell me if it isn't. As the title says, I'm trying to find the color palette for android apps while they're installed. I can't decompile the apps, but I can access the apk file. Is there a universal standard file or at least a string of text in a file that I can search for ?

# Answer
Under values \> color.xml

Your themes file ( values \> styles.xml ) can link specific colors from this file like follows..

Style Script ..

```
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/primary</item>
    <item name="colorPrimaryDark">@color/primary_dark</item>
    <item name="colorAccent">@color/accent</item>
</style>

```

color script ....

```
 <resources>
 <color name="primary_dark">#F28000</color>
 <color name="primary">#FF8700</color>
 <color name="accent">#FF8700</color>

```

Notice that color can link to itself

```
<color name="accent_text">@color/accent</color>

```
> 1 votes

---
Tags: applications, root-access, customization, color, development
---


title: Boot huawei's recovery on nexus 5

text:
# Question
Title: Boot huawei's recovery on nexus 5
I have to recover some data from my phone.I know that huawei's recovery has a function to do a backup of data of android.So I had an idea:can I boot from fastboot through the command "boot" a huawei's recovery in a nexus 5 to recover my data?Is that possible?

# Answer
> 1 votes
You can't just boot an image from another device.

What exactly is the function you're looking for? Nothing "stock" should be more powerful than a custom recovery (e.g. TWRP), and backup is a must-have function in them. If by "recovering data" you mean backing them up in recovery and restoring them at a later time then this is the way to go; otherwise please further clarify what you intend to do.

EDIT: I see you double-posting yet again, -1 for that. @acejavelin has given you the definitive answer there - no, nothing can be done if your bootloader is locked. Unlocking is the first thing you should do when getting hands on a Nexus.

# Answer
> -1 votes
If i recall correctly, You just need the HTC backup apk installed on another device, you then select the messages, contacts..etc and restore them with the actual apk file... only works from huawei to huawei ...

Maybe you could try a device copy app... they're supposed to be able to clone device data like contacts etc.. using Bluetooth or WiFi

---
Tags: adb, nexus-5, stock-android, fastboot
---


# Question
Title: Marshmallow: Changing and connecting to an APN
Okay, before anyone can downvote this or anything silly, I need to clarify a few things:

1. This is for Android 6.0 (Marshmallow)
2. I'm using a FlashFire-Rooted Cherry Mobile One (technically called Android One Sprout8)
3. Prior to upgrading into Marshmallow, I am able to do these steps.
4. This is not a duplicate of this particular ticket or this one, please.

**Scenario**
I want to use a certain APN (for a certain cellular network) which does not connect to the internet without a corresponding VPN. To do that, in the previous versions of Android, I simply create an APN with the corresponding configurations, switch to it by tapping the radio button, then the Android system connects to that APN, even if it can't connect to the common internet.

In Marshmallow, (or at least the stock ROM I flashed?) this doesn't work, and the it connects to the default network APN. It's similar to how my other phone, ZenFone 2, works, but with LTE (always defaulting to the nearest working APN; otherwise HSPA+ works.)

Is there some way to force the APN into this system? But I wouldn't want to downright delete my old APNs, as I still would want to connect to them when needed.

# Answer
Thanks for the insight of user157947 though, I found something that helped:

I set all the Bearers in all my other APNs to something jibberish (not applicable in my country, like IS95A). I haven't seen this feature in Lolipop though (it was only LTE iirc)

To set it back to the original APN, set the Bearer to Unspecified then set your custom APN to IS95A.

I think I can also use this feature as well to force a custom APN on LTE on Marshmallow.
> 0 votes

---
Tags: 6.0-marshmallow, vpn, cellular-radio, apn, android-one
---


title: No root zip works on galaxy ace s5830

text:
# Question
Title: No root zip works on galaxy ace s5830
Yes, my phones old but it does me fine. The only prob really is the phones internal storage. I would like to delete loads of bloatware and be able to move stuff completely to the SD card. I am no idiot. I have tried numerous root zip files, followed the methods but never works.

My phone is running android 2.3.6 gingerbread BVKT4. I read somewhere that the latest update to BVKT4 blocks rooting. Is there anyway to get around this. Much thanks in advance to anyone that can help.

# Answer
Look around XDA-Developers for relevant resource. For a phone of this age and (past) popularity, not only root is readily available, you can also get custom ROMs up to KitKat (not necessarily stable).

One of the possible ways: flash a stock-ROM-compatible custom recovery, then flash SuperUser/SuperSU zip in there. If that's all you need then this thread seems to be an alright starting point.

As always told, make a backup in the recovery for safety.
> 0 votes

---
Tags: rooting, samsung
---


title: Nougat on Nexus 4

text:
# Question
Title: Nougat on Nexus 4
**How to get android 7.0 on nexus 4** Can anyone tell me how can i get android 7.0 on my nexus 4 which is officially not included for android 7.0

# Answer
There is no official (means approved by Google) Android 7.0 Nougat version for Nexus 4.

But there are unofficial attempts, for example THIS.

Always check the feature/bug list to a Custom ROM. In the linked ROM the Camera can't able to make videos in 1080p only 720p, it is a known bug so helpfully there will be an update to fix it soon.

Credits: @Narayanan
> 1 votes

---
Tags: 7.0-nougat
---


# Question
Title: Is there a way to make the text on a site reflow in Firefox Mobile?
It used to be the case that when you zoomed a page in or out, the text would reflow to fit the page. I recall reading a bug report somewhere where reflow-on-resize was removed for performance reasons (can't find it now).

I've found browing on mobile to be nearly unusable for the past few years, because I'm forced to choose between some mobile /responsive site with no zooming or a desktop version that doesn't reflow. Is there any way to manually trigger a page render / text reflow to fit the current zoom level?

# Answer
> 0 votes
The text reflow extension is a partial solution. It requires a click for each offending paragraph.

---
Tags: browser, firefox-for-android
---


title: Creating a Script for an Android Tablet

text:
# Question
Title: Creating a Script for an Android Tablet
I want to create a script that would close an app, then restart it twice each 24 hours and then automatically click on a few buttons to configure the app to the way it was previously.

Background: I use a tablet to monitor the live video from my security cameras with an app. The problem is that once or twice a day, the live video feeds lock up and do not update. Restarting the app fixes this.

Is there a way to do this? **Please note that I don't know anything about scripting or coding**. I was hoping that there might be a simple app that would allow me to create a series of instructions that would activate x times per day -- or to know where to find someone who could create this for me.

# Answer
Call Super User ( root access )

```
  su

```

change 1 second sleeper to 24hours

```
 sleep 86400

  sleep 1
  sh /directory to this script/autoscript.sh
  exit

```

Close this script after opening another instance of it.
So all in one script it's

```
  su
  sleep 1
  sh /directory to this script/autoscript.sh
  exit

```

In this example,

you would need to make this as a text document and save it as autoscript.sh

Instead of autoscript.txt

Now open Terminal Emulator and type

```
sh storage/sdcard1/autoscript.sh

```

Terminal will auto start the script !
> 1 votes

---
Tags: applications, automation
---


# Question
Title: I need to turn over my new Galaxy Note 7 for recall and cannot find a way to remove or log off my gmail accounts
I have the new Note 7. I have a few g-mail accounts, and have linked them all with my Note 7. Now, I've learned that I need to turn over my phone for the massive Note 7 recall, but have yet find a way to log out my g-mails without deleting these account, which I want to keep. I have changed my passwords to each account, gone into each account and scrolled down to details to remove the accounts from all other web activities, but the phone has not yet been "hardware swapped" back to my old Sprint phone, and I can still see all of my g-mail account and each email within each account. I can click on any email to do whatever I desire, and I can also still send emails - all without ever having to log in with the new password. All I want to do is remove the g-mails from that (my Note 7) so I can hand it over for the recall. I am simply confused as to the g-mails that will remain on the phone. Can anyone offer up some advise to this old gal, who hasn't yet begun to understand how this works? Thank you!

# Answer
Please go to Settings\>Accounts\>Google. You can find all your Gmail accounts here.

If you want to remove it, tap on the email\>Menu(Three dots on top right or more)\>Then remove account.
> 1 votes

---
Tags: gmail
---


# Question
Title: Google Play website says I have certain apps installed that I do not. How to re-sync?
Here is an example. I do not have the Facebook for Android application install on my current device or any other device. Why does it continue to say I have it installed? Is there a way to re-sync Google Play?

* Nexus 6
* Android 7.0

# Answer
> 2 votes
Any app that you have installed ( including the ones you subsequently uninstalled ) will *always* show up when you sign in with the account you used to install

Deleting android apps using my google play account on my commputer explains further

> When you uninstall an app, it still STAYS on your app list. That's done so you can find it again or install it on another device easily. This can be very helpful to keep a list of apps you like but don't want on your phone all the time (like tools you only use a couple of times a year)

So re- sync will not help. Only way to not see that app is to sign in with a different account and use that account on your phone to install only those apps which you wish to see. Obvious disadvantage of doing this is you cannot access apps which you have previously paid for using a different account - see How to transfer my purchased apps to another account

---
Tags: google-play-store, google
---