# Question
Title: Dialer & Contacts app display duplicate (WhatsApp)
**Issue**: When searching in dialer or contacts apps (From Google Play store, latest version) many contacts show up twice. Only contacts with WhatsApp (or more times if more phone numbers stored under the contact have WhatsApp enable)

https://contacts.google.com online show only one Contact. So no "real" duplicates.

**Manual Fix, (one by one):** When I edit & save the contact the contacts are now "merged" like it used to be.

This is a new phone and WhatsApp data was restored from Cloud backup.

Same issue:

**Attempts to fix**

* Customize the view in contacts app is not a solutions.
* Cleared the Contacts Storage data

Any suggestion how to fix it without manual touching all contacts?

# Answer
> 1 votes
I solved this issue by editing all my Google contacts to make sure they contain full country code and no dashes or spaces between the numbers. In the Google Contacts landing page (web) they will all look OK but once you click edit you might find some with the incorrect format. Doing this will enable the Dialer app to link the mobile and Whats App contacts correctly. I know this is still a tedious manual fix but it is the only one I found to work.

# Answer
> 1 votes
Expected the same behaviour like in the question above. Duplicate entries (for each messenger/linked data contact) while searching, distinct entries in the normal list view.

I failed on so many tries and tried to solve it and therefore would like to share a very messy but still pretty failsafe variant for this (at least I think it is).

1. Open https://contacts.google.com/
2. Export the data for fail-safety (had chosen Google CSV)
3. Add all data to a new label (or might be called group) with a name like "old ones"
4. Import this downloaded data afterwards. There should be a new label (or group) with the imported data

**Variant A (more unsafe, worked for me):**

5. Then I merged all duplicate contacts
6. All contacts showed the linked data directly and searching showed distinct results

**Variant B (not tried, but should be working well and safe):**

5. Check out that your synchronized contacts that work will show up with the newly imported label. I do not know if this will work because I do not know if more than one contact can be associated with a whatsapp profile...
6. Either merge or delete the old contacts
7. Result untested like said

**System**

* Android 9 (Android One)
* Phone: Mi A2 Lite
* Setup about one week before

Hope this helps since like youre approach by saving every contact all over.

Greetings

**EDIT1** One important note. Every user that was imported in the variant A has now an addition field containing the image url of this user (the images were still present, might be some merge conflict so deleting the old ones could be better)

**EDIT2** In my case, exporting and importing without merging will loose all contact images although they are listed in the exported file... (thanks!). With Variant A you will still have theses images but an additional "Photo" field in the contact that stores the image url (can be managed in the contacts list on your computers browser)

# Answer
> 0 votes
I solved by giving all the permissions to the contacts/dialer app. Probably one of those solved the issue.

---
Tags: contacts, whatsapp-messenger, phone-app, google-contacts
---


# Question
Title: Tasker to programmatically uninstall apps
I would like to setup a tasker profile to check every predetermined time for any apps not on my approved list (BaselineApps.txt) and uninstall them. I am a noob to shell scripting and tasker. This is what I got so far, it might not be the most efficient way to do it.

* I run the following command via Termux Task plugin.

```
pm list packages >/storage/emulated/0/Apps.txt
diff --unchanged-line-format= --old-line-format= --new-line-format='%L' /storage/emulated/0/BaselineApps.txt /storage/emulated/0/Apps.txt | sed 's/^[^:]*://' >/storage/emulated/0/NewApps.txt

```
* Read file NewApps.txt to variable %Apps
* ArraySet %Apps value %Apps
* For each %eachapp in %Apps()
* Run Shell pm uninstall %eachapp
* End for

For the most part it works, except it errors out sometimes. Can someone help me?

# Answer
> 1 votes
So I figured out my issue. I had upgraded to Android Nougat. Pm list packages is obsolete. The proper command is pm cmd package list packages.

Here is my setup:

```
    Diff
    A1: Run Shell [ Command:cmd package list packages Timeout (Seconds):0 Use Root:On Store Output In:%tempapps Store Errors In: Store Result In: ]
    A2: Write File [ File:Apps.txt Text:%tempapps Append:Off Add Newline:Off ]
    A3: Termux [ Configuration:Execute ~/.termux/tasker/DiffApps.txt  Timeout (Seconds):0 ]
    A4: Wait [ MS:250 Seconds:0 Minutes:0 Hours:0 Days:0 ]
    A5: Read File [ File:NewApps.txt To Var:%Apps ]
    A6: Array Set [ Variable Array:%Apps Values:%Apps Splitter: ]
    A7: For [ Variable:%eachapp Items:%Apps() ]
    A8: Flash [ Text:%eachapp Long:On ]
    A9: Run Shell [ Command:pm uninstall %eachapp Timeout (Seconds):0 Use Root:On Store Output In: Store Errors In: Store Result In: ]
    A10: End For
    A11: Variable Clear [ Name:apps* Pattern Matching:On Local Variables Only:Off ]

```

---
Tags: applications, tasker, shell, termux
---


title: Flashing andriod roms and kernals

text:
# Question
Title: Flashing andriod roms and kernals
If you have rooted an android phone and flashed a different kernel can you just flash over another rom or will it brick your phone.

Is it necessary to go back to a google factory rom before you flash another rom?

# Answer
If you have a ROM you are simply updating with a newer version of that ROM, you will need to re-install the custom kernel though. It's usually not recommended to flash one ROM over another different one without wiping. I have not had any experience with my phones being bricked; however, it can cause your ROM & the apps/settings within your new ROM to crash or not act as intended. Dirty flashing is usually only done with updates from the same custom ROM.

best practice is usually to do a clean install, which would mean wiping data, cache, and system data. This would mean losing all of your personal data, and may also include internal memory depending on device. I would go to your devices' dedicated forum for more details on properly wiping and installing these things, though.

To answer your other question, you do not need to install a Stock ROM each time before flashing a new custom ROM.
> 0 votes

---
Tags: kernel
---


# Question
Title: What the differences between cSIPSimple and Android's SIP stack?
What are the differences between Android's SIP stack and CSIPSimple's? One thing that I know of is that Android lacks STUN support.

I've used both but the call quality is far, far better on cSIPSimple and I'm curious as to why?

# Answer
I understand I am commenting on the last post. But for future references :-

What I believe is, that CSIPSimple uses, audio codes, which are better than one provided in normal SIP Stack.
> 0 votes

---
Tags: sip
---


title: Fully Remove Google Voice Search

text:
# Question
Title: Fully Remove Google Voice Search
I am running Lollipop on the LG G3 and due to a loose connection on the audio jack google voice search gets activated everytime a slight movement of ANY attached cable.

Now, I would like to deactivate google voice search completely. My phone is rooted and i am willing to raze any part of the file system to stop this annoying hellfire.

It is annoying because I can be on a free-hands call and google voice search asks me over the speakers "In order to do a google voice search please unlock your phone".

Additionally, the same physical problem results on the default music player starting to play music. Is there a wat to deactivate the wire control for the music player ?

# Answer
* Open your Google app (not chrome).
* Press "more"
* On the new screen press "settings"
* You should see "google assistant" and "voice", press "voice"
* Press "voice match" under the"ok Google" section.
* You have finally reached the screen you need. Here turn of the setting "access with voice match"
> 1 votes

# Answer
It should be pretty simple to just remove the app, I've done this on many devices without issue.

I recommend using Titanium Backup. Just find voice search in its app list, tap it, and choose uninstall.
> 0 votes

---
Tags: 5.0-lollipop, google, lg-g3, google-voice-actions
---


# Question
Title: Family Link not available on OnePlus One?
My son is using an old OnePlus One, and I wanted to install Google's family link on it. The browser finds it but the play store doesn't, and when I click it in the browser (and go into the play store) I get a message "Item not found".

Because the OnePlus One's software has not been upgraded for ages I tried to solve it by installing Lineage OS together with the play store (via OpenGapps nano) but for family link I still get the same message.

Is this a software issue that can be resolved? Or is family link not supported for all handsets (including the OnePlus One)?

# Answer
As per https://families.google.com/familylink/device-compatibility/ the child version of Google Family link requires mostly Android Version 7.0 and newer, with a few exceptions.
> 1 votes

---
Tags: google-play-store, lineageos, oneplus-one, google-play-family, google-family-link
---


# Question
Title: Transfer Android app with offline data to NEW PHONE without ROOT
I've purchased a new phone and have transferred most of the data from the old device to the new one using various means.

There is one app, however, that does not have account login, so I cannot save cached data in the cloud. Meaning that I have no choice but to move/restore the app to the new device with the offline (cached) data.

This app is quite important to me, and I need the offline data.

I know of the following techniques to do this:

* Backup and restore app + cached data using Helium: copy & replace the 'sdcard/carbon' folder from the old phone to the new phone. After doing this, *restore* the app with data on the new phone.
* Root the device and use Titanium backup to do the same.
* Backup apps using the 'Backup' feature in Google Drive.

Helium just did not work (with a brand new phone with Android 8.0!).

I cannot use Titanium as I cannot root my old phone at this point (before backup is complete). And **restoring** the app this way will in all likelihood require that I root my *new* phone as well, which is a deal-breaker.

Does Google Drive Backup work with all third party apps? I did not see the app I want to save in the list of apps whose data was being saved by Google Drive.

What should I do? Can anyone advise?

**EDIT**:

All of the techniques given on various sites for both partial and full backups (including nandroid backups) are *device specific*, i.e. you can restore to the *same* device only, not from one device to another. This includes both **Droid Explorer** and **Simple ADB Backup** too, apparently.

Is there no general way of restoring an app with data to a new phone without root? Google Drive backup does this without root. If it can do that, why can't other apps?

Also, various people suggested using **MyBackup Pro** / **Android Assistant** / **DrFone+**. All these tools give up before even trying: they *all* seem to require root.

# Answer
You can use adb backup. You can specify the package name for backup a single app (for comprehensive details refer to Nikolay Elenkov)

```
adb backup [-f <file>] [-apk|-noapk] [-obb|-noobb] [-shared|-noshared] [-all] [-system|nosystem] [-keyvalue|-nokeyvalue] [<packages...>]
adb restore <file>

```

Note: some apps won't allow adb backup. even if adb backup is allowed, cache is not included.

Find a \[GUIDE\] How to enable adb backup for any app, decompile, recompile and sign the apk, where you have set the following flags:

```
android:allowBackup="true"
android:fullBackupOnly="false"

```

On the source phone, update the apk with your modified one. To do this without uninstalling, this may require to increment the `android:versionCode` in AndroidManifest.xml, and you must sign the apk using the same **original signature** that was used previously for the apk from the Play Store. This is the pitfall if you are not the author of the app it is **not possible**. However, if you manage this the install will succeed without data loss. Otherwise install will be rejected. ~~(You still have the option to set allowBackup directly on rooted phone, but this may be out of scope because with root you can backup app directly)~~ apparently there is no way to override AndroidManifest.xml during runtime

Once you have installed the modified apk you can make a backup of your app from source phone, and restore it to destination phone without root.

Install the latest Platform Tools and run from `cmd.exe` as Administrator:

```
adb.exe backup "-f C:\example.ab -apk -obb com.example.package"

```

---

**edit:**

* be aware you have compiled a different app that can't be updated via PlayStore anymore
* ~~starting with api level 30 modified apk is no longer required as the flag seems ignored~~
xda-developers.com
* starting with api level 31 the flag is different

```
android:debuggable="true"

```
> 4 votes

---
Tags: backup, titanium-backup, google-backup, app-data, helium
---


title: Add WhatsApp contacts in bulk

text:
# Question
Title: Add WhatsApp contacts in bulk
I want to save 1000's WhatsApp contacts that were not added to the contact list in bulk.

Which is the fastest way to do it?

# Answer
> 0 votes
Store all the numbers in csv file and than

On your computer, go to Google Contacts. On the left, click More and then Import. In the window that appears, choose how you'd like to import your contacts Check that you saved your contacts as a .csv or .vcf file. Then click CSV or vCard file and then Select file. Click Import. Than let the contact sync with your mobile

---
Tags: contacts, whatsapp-messenger
---


# Question
Title: Xiaomi Redmi Note 5 cannot connect to LG FH2 speaker since there's a Bluetooth profile incompatibility
I have found that my LG FH2 speaker uses the A2DP profile protocol: http://gscs-b2c.lge.com/downloadFile?fileId=gQHBfK7s0ZXFVKL7CatPeA

...whereas my Android phone is unable to get connected to it, since it has a different profile AVRCP: https://source.android.com/devices/bluetooth/services

Please note I am not trying to make my phone an audio sink, only audio gateway is totally fine for me.

*¿How can I install, push, hack, or sideload via ADB such an **A2DP** Bluetooth profile so I can connect my mobile to my speaker?*

Edit: it's a Redmi Note 5 global version (model M1803E7SH Latin America)

# Answer
> 0 votes
The Bluetooth profiles are an integral part of the Android system installed on your device (like a driver). Therefore usually you can't "install" or "update" the Bluetooth profiles.

Therefore you have only two possibilities:

1. Buy a different speaker that supports a Bluetooth profile your phone supports.
2. Search the Internet if there is a different ROM available for your phone that has A2DP support.

---
Tags: xiaomi, 8.1-oreo, miui, bluetooth-audio, miui-10
---


# Question
Title: Is it possible to install "iproute2" on Android?
I tried to use `git clone` in googlesource's page but it didn't do much. I want to use the `ss` command from the package but I don't know how to install it. My phone is ARM 32-bit.

# Answer
> 0 votes
You can't install a whole package on Android as you do on Linux distributions. Android does have `ip` command built-in from a modified iproute2 package. Many ROMs come pre-bundled with `ss` binary too. If not, you can build static binary for your device's architecture from source, or try this one.

---
Tags: samsung, networking, command-line, termux
---


# Question
Title: An app put made my Status Bar auto-hide and transparent. How to fix? (Nova, System UI)
What I've tried: uninstall the app (Black Pocket) and restart.

Also tried: Google. All search results tell me how to hide the status bar, which is not what I want.

Obviously like most users I want to see all the battery and connectivity icons when I press the power button, then the Home button.

Using Nova and System UI on Android 8.1.0 on a Nexus 6P - as if this would have anything to do with it, when I saw the status bar go transparent and auto-hide upon install of the app...

# Answer
> 1 votes
Try the following:

1. Open Nova Settings.
2. Click on Look & feel.
3. Enable Show notification bar.

---
Tags: 8.1-oreo, nexus
---


# Question
Title: How can I add a custom search engine to Chrome (beta, stable...)?
Call me dumb, but, I don't see an obvious way to do this.

I want to add duckduckgo.com as the main search engine in Google Chrome for Android (beta, stable...)

# Answer
> 4 votes
As of chrome v39, this still can't easily be done; however, you can hack it. From the XDA post SomeNickName referenced:

1. Install a Terminal emulator or use `adb shell` if you're familiar with it.
2. Change the "last\_known\_google\_url" and "last\_prompted\_google\_url" settings support having a `search&q=`added to the end. For example, duckduckgo would work with, `https://www.duckduckgo.com&` -- where the extra ampersand at the end is for converting the "search" text into an additional query sting param.

Here's a shell command for setting the duckduckgo url:

```
    p='/data/data/com.chrome.beta/app_chrome/Default/Preferences'
    awk '/last_known_google_url/ {sub(/google.com\//,"duckduckgo.com/\\&")}; {print}' ${p} > $p.bak
    awk '/last_prompted_google_url/ {sub(/google.com\//,"duckduckgo.com/\\&")}; {print}' ${p}.bak > ${p}

```

# Answer
> 2 votes
With newer versions, you need to open the search engine first, do a search, then Chrome will add it on its list.

If you then go to Settings -\> Search engine, the search engine you visited will be listed in the Recently visited section.

# Answer
> -2 votes
> You can configure the default search engine for the address bar by going to Chrome menu \> Settings \> (Basics) Search engine.

Search The Web

---
Tags: settings, chrome-for-android, search, browser-add-ons, chromium
---


# Question
Title: How do I upload a 3D Facebook photo from Android?
iOS users can use portrait mode to upload 3D Facebook photos. This uses a depth map + 2D photo to work.

PC users can do it by naming the files \*.jpg & \*_depth.jpg and uploading them as a a pair.

Google Pixel phones (and others with ports, see https://www.celsoazevedo.com/files/android/google-camera/ ) can autogenerate a depth map with the Lens Blur camera mode, which can be tested on http://depthy.me

HTC Evo 3D phones have stereo Side by Side pair, which can be converted to a depth map with Stereo Photo Maker on Windows

How can one upload a 3D photo to Facebook from Android?

# Answer
* Take Lens Blur photo in Google camera (ports work)
* Upload to depthy.me just to split depth map (optionally edit it)
* Use file manager to rename files to \*.jpg and \*_depth.jpg
* Use Firefox *Request Desktop Site* to load main Facebook new feed page
* Upload them *one at a time* (both together crashes)
* Post and view in main Facebook app

https://youtu.be/DOb-CiURqJo
> 0 votes

---
Tags: facebook
---


title: GS4 - Stuck in a bootloop on stock ROM

text:
# Question
Title: GS4 - Stuck in a bootloop on stock ROM
SGH-I337 I got recently is stuck in a bootloop. Itll post and then attempt booting and stay on the screen forever. As this phone is completely stock and never touched so usb debugging is not enabled. Factory resetting does nothing, the phone will not wipe the cache (it attempts then errors out and restarts itself). Ive tried flashing TWRP via odin but the bootloader is locked. Trying to use ADB logcat does not seem to work. What route should I take from here?

# Answer
Run `adb logcat` during boot, record the output and post it here / try to find the cause of the boot loop.
> -1 votes

---
Tags: adb, samsung, boot-loop, stock-rom
---


# Question
Title: Sensitive information in the About screen
Which of the following information from the About screen (Settings -\> System -\> About) is considered sensitive and shouldn't be shared publicly?

* IMEI
* IP address
* Wi-Fi MAC address
* Bluetooth address
* Build number

# Answer
I am no security expert, but here are what I have gathered. I urges you to read the source links and visit our sister site Information Security to get more detailed information.

I have listed them from the higest to lowest risk.

**IP**

From Can your IP address give away your identity to hackers, stalkers and cybercrooks?:

> Andrew Lee, CEO of London Trust Media, Inc./PrivateInternetAccess.com (a VPN service that protects users' privacy and identity), says linking users to their IP address is not simple, but it can be done. Many email providers, some IRC networks, extreme tracking sites, poorly configured forums and design flaws in applications such as Skype and AOL (among others) have disclosed users' identities along with their IP addresses.
>
> He adds that email providers have been known to leak IP addresses to advertisers, market researchers, and other such agencies and some emails (like those from mailing lists) are indexed by Google. "Thus, the IP becomes searchable," Lee says. "Programs such as skypegrab.info (now inactive), which reveals users' personal data are developed every day by programmers across the globe. Extreme tracking sites link IPs to Google searches and make them public. And business websites including, but not limited to, Facebook, Twitter, Google, etc. — in addition to ad targeting companies — already have your personal info linked to your IP address in their databases. Anyone with access to those databases, including those with legitimate or illegitimate access (such as hackers), can obtain any and all of that information."

**IMEI**

About the IMEI, this answer states that:

> Knowledge of the IMEI and/or IMSI of some user does not give extra ways to break into the communications of that user; they are not secret values.
>
> However...
>
> There may be a slight privacy concern about IMEI and IMSI, in that they allow to "track" user habits:
>
> * An application could generate a random unique identifier each time it is installed on a phone. However, by using the IMEI, the application can tell whether it is re-installed on a given phone; it can also be used to cross-reference the table of known installed application instances with cell phone locations obtained through passive radio listening from some base station.

**MAC Address**

From this answer:

> Disclosing the MAC address in itself shouldn't be a problem. MAC addresses are already quite predictable, easily sniffable, and any form of authentication dependent on them is inherently weak and shouldn't be relied upon.
>
> MAC addresses are almost always only used "internally" (between you and your immediate gateway). They really don't make it to the outside world and thus cannot be used to connect back to you, locate you, or otherwise cause you any direct harm.
>
> The disclosure can be linked to your real identity since it might be possible to track you using data collected from WiFi networks, or it can be used to falsify a device's MAC address to gain access to some service (mostly some networks) on which your MAC address is white-listed.
>
> Personally, I wouldn't really worry about it. However, when it's not inconvenient, I usually try to redact any irrelevant information when asking for help or sharing anything.

The Bluetooth address and build number are low on the list of risks.

Sources:

Can your IP address give away your identity to hackers, stalkers and cybercrooks?

What is the risk of leaking IMEI / IMSI numbers over a network

Is it dangerous to post my MAC address publicly?
> 1 votes

---
Tags: security, settings
---


# Question
Title: Has the setting to disable icon frames been removed on the Galaxy S10 lineup?
On previous versions of Samsung Galaxy phones I've owned, I had the option to enable/disable icon frames around the apps on my home screen. This setting could be found by navigating to **Settings \> Display \> Home Screen \> Icon Badges**.

After digging around the settings of my Galaxy S10+, I have not been able to find such a feature. Has this setting been removed with the launch of The S10 and One UI?

Below is a screenshot of the setting I'm referring to from my Galaxy Note 8:

# Answer
> 6 votes
This seems to be a setting that started in Oreo related to Adaptive Icons. You now need specific themes to remove the border.

Per the following link:

> If you don't want borders, go to settings\>wallpaper and themes\>icons\>download and find an icon pack with no borders.

https://androidforums.com/threads/why-is-there-no-option-to-remove-icon-frame-borders-on-the-new-android-pie-update.1295501/

# Answer
> 4 votes
I read from many posts that the option shown above has been removed. Only solution I found is to download an icons set that was made without frames feature. I am using one called Zero made by MINU after seeing its link in another post about the same issue on this website.

---
Tags: 9.0-pie, app-icons, samsung-galaxy-s-10
---


# Question
Title: Burn .IMG to another MicroSD Card without root
Long story, I have a Raspberry Pi 3 Model B and the only device I own that can write a Raspbian image to MicroSD is my Android phone. I have copied the image from my laptop to my MicroSD, but I am puzzled as to how I can write the IMG to the MicroSD, as rooting will void my warranty. MicroSD is necessary since the Raspberry Pi will not boot from USB.

# Answer
* Copy the IMG file to the internal storage
* Download EtchDroid \[NO ROOT\] - Write ISOs and DMGs to USB from Play Store
* Select raw image or ISO (do these steps after the SD card has been plugged in)
* Select the IMG file and the SD card
* Wait until it completes the progress (it is possible to check the progress in the taskbar/notification)
* Done
> -1 votes

---
Tags: sd-card, images
---


# Question
Title: How to make Line save pictures & videos to the SD card?
Line is the application taking up most place of my internal storage ; this is because it saves many profile pictures and chat videos, to the internal storage.
How can I tell it to save them to my SD card instead?

# Answer
> -1 votes
1. Head into the Settings menu.
2. Scroll down to find “Apps“. Tap on it.
3. Now, you will observe the list of applications installed on your device.
4. Tap on any of the apps that you want to store on SD Card. ...
5. Scroll down, and you will find “Move to SD Card” option.

---
Tags: settings, sd-card, files, line
---


# Question
Title: Will google assistant allow the same account in two different phones
I want to know will google assistant allow the same account in two different phones?

Will the messages or any other information will goes to secondary phone where the account is linked

# Answer
> 0 votes
Yes. You can use it on more smartphones at the same time. But you need to connect the other phone with your Google account. And then Google synchronizes everything. Your search history, contacts and more. Hope this helps you.

Sorry for my bad english.

---
Tags: applications, google-play-store, ios
---


# Question
Title: Can't flash custom TWRP recovery image on Motorola Moto G7 Power phone
I've got a brand new Motorola Moto G7 Power running Android 9. I also have Ubuntu 19.04 running on my desktop. I want to root the phone.

I've managed to unlock the bootloader using Motorola's online instructions and the adb and fastboot utilities that come with Linux. The next step is to flash a custom recovery application on the recovery partition.

I'm trying to flash `twrp-3.3.0-0-river.img`, a new image that I grabbed from here. When I tried to use fastboot to flash the image, I got this error:

```
steven@steven-OptiPlex-7020:-/Desktop$ fastboot flash recovery twrp-3.3.0-0-river.img
target reported max download size of 536870912 bytes
sending 'recovery' (27584 KB)...
OKAY [  0.741s]
writing 'recovery'..
(bootloader) Invalid partition name recovery
FAILED (remote failure)
finished. total time: 0.742s
steven@steven-OptiPlex-7020:~/Desktop$

```

Screenshot of the terminal output

After this failed attempt, I attempted to put my phone into recovery just to see what would happen. What I got was a screen displaying the Android mascot on its back with its chest plate opened and a black exclamation point inside a red triangle. The words "No Command" were displayed underneath the graphic. After waiting a few minutes, the phone, on its own, booted normally. My phone's OS seems to operate perfectly fine.

I can only surmise that whatever was originally on my recovery partition from the manufacturer has been wiped and there is now nothing on the recovery partition at all. So, I decided to see if I could boot into the TWRP image directly without flashing it. So, I ran this in the terminal window: `fastboot boot twrp-3.3.0-0-river.img`. I received this as a response:

```
steven@steven-OptiPlex-7020:-/Desktop$ fastboot boot twrp-3.3.0-0-river.img
downloading 'boot.img'...
OKAY [  0.728s]
booting...
OKAY [  0.893s]
finished. total time: 1.621s
steven@steven-OptiPlex-7020:~/Desktop$

```

Screenshot of the terminal output

There didn't seem to be any errors. The phone, however, switched from the bootloader screen to the Motorola splash screen, and then just shut off with no further response.

So, what am I missing? How can I flash this image onto the recovery partition of my phone?

# Answer
G7 Power, being a new device, has the new A/B partition layout, requiring new installation procedures that differ from standard A-only devices. This is clearly outlined in the thread where you got your image from:

> This device has 2 "slots" for ROMs / firmware. TWRP will detect whichever slot is currently active and use that slot for backup AND restore. There are buttons on the reboot page and under backup -\> options to change slots. Changing the active slot will cause TWRP to switch which slot that TWRP is backing up or restoring. You can make a backup of slot A, switch to B, then restore the backup which will restore the backup of A to slot B. Changing the slot in TWRP also tells the bootloader to boot that slot.
>
> Decryption only works when TWRP is permanently installed.
>
> Installation
>
> To temporarily boot this recovery:
>
> `fastboot boot twrp-version-build-river.img`
>
> To permanently install it:
>
> * Temporarily boot TWRP
> * Put the TWRP image in your external SD Card or, in case you don't have one, push it to /data with adb this way: `adb push twrp-version-build-river.img /data/`
> * Tap Advanced -\> Install Recovery Ramdisk -\> Navigate to /data or /external\_sd and select TWRP -\> Swipe to Install
> * If you previously installed Magisk: Select Fix Recovery Bootloop from Advanced to fix/avoid recovery bootloops
> * Done! Optionally you can delete TWRP from /data or from your external SD Card now.

Read more carefully next time...
> 4 votes

# Answer
The twrp.img you trying to boot from is for Moto G7 (river). It is the wrong recovery, thats why it fails.

What you want is TWRP for your device Moto G7 Power (ocean).
https://twrp.me/motorola/motorolamotog7power.html

Note: You can root your phone with Magisk without the need of TWRP, as written here.

For devices without TWRP one can port TWRP from similar device, the steps are these:

* unpack your boot.img
* find recovery inside ramdisk
* unpack recovery
* unpack twrp recovery
* replace kernel, fstab and \*init.rc
* repack ported recovery
* try if it is fine from `fastboot boot recovery.img`
* replace recovery inside ramdisk
* repack boot.img
* try if it is fine from `fastboot boot boot.img`
* flash boot.img from fastboot (A/B)
> 3 votes

---
Tags: adb, rom-flashing, recovery-mode, fastboot, motorola-moto-g
---


# Question
Title: How do I apply an OS update manually without rooting my device?
I have an RCA Galileo Pro 11" running Android 6.0 Marshmallow. In the recovery menu, I have the option to install an update from the SD card or over ADB, either without rooting. I'd like to run a newer version of Android, if possible.

What would be the best way to apply the update, and what would be the best package to use? I am not willing to root my device.

# Answer
You can only install updates that are explicitly created to run on your device. Those update files are usually automatically downloaded by your device over Wifi and then automatically installed using the mechanism you already discovered.

Usually for cheap device like yours the manufacturer never releases any major updates (updates that upgrade the device to a new major version of Android). Therefore if no updates are available you can't install any updates.

The only option would be to root your device and install a custom ROM if available. However this step is risky as there is the chance to brick your device and you have to trust the author(s) of the custom ROM.
> 1 votes

---
Tags: updates, ota-update
---


title: How to detect locked screen in Tasker?

text:
# Question
Title: How to detect locked screen in Tasker?
I'd like to be able to detect a locked screen in Tasker without polling.

https://www.reddit.com/r/tasker/comments/3y3kpx/how\_to\_query\_tasker\_if\_the\_screen\_is\_locked\_or\_not/ has a solution that polls.

# Answer
> 6 votes
Create a profile `Screen Locked` triggered on the event `Display Off` and calling a task that sets a variable `%SCREEN_LOCKED` to `true` iff `%SCREEN` is `off`.

Create another profile `Screen Unlocked` triggered on the event `Display Unlocked` and calling a task that sets `%SCREEN_LOCKED` to `false`.

If you'd like for a profile to be triggered (or not) if the screen is locked: Create a third profile `Display Locked` triggered on `%SCREEN_LOCKED` being `true` and calling some NoOp task (which does pretty much nothing) then use the `Profile Active` trigger on the profile conditional on screen lock state.

---
Tags: tasker
---


# Question
Title: Decryption Unsuccessful after data wipe and format
P9 Lite, everything was fine until this evening when I updated from Magisk 18 to 19.1

Got Decryption unsuccessful error, flashed magisk uninstaller, wiped data + cache + dalvik and tried data format from TWRP. Nothing worked.

I'm going on a trip tomorrow so I need to be able to use the phone asap.

# Answer
> 1 votes
I had the exact same issue when I did an internal upgrade from 18 to 19.1 last night on my Huawei Mediapad M3. I wiped the data as was recommended but it keep rebooting into the unable to decrypt storage.

The easy fix is to boot into fastboot and flash your original, non-magisk boot image. I wish I had tried that before actually going through with the data wipe, as I'm fairly sure that was unnecessary.

If you still have your lower version magisk modified boot image, that will work too, although mine was so old I had to use an older version of magisk manager.

---
Tags: recovery-mode, magisk
---


# Question
Title: Is there a way to turn my phone to landscape mode in the lock screen?
I have had a Motorola Moto e4 for almost 2 years with relatively no problems. A few days ago, my phone's touch screen stops working in certain frequently pressed places on the screen. This proves to be mildly annoying, but manageable as I would just flip the phone to landscape to get past this (especially when typing). Unfortunately, my phone has finally died and after I charged it, it now asks for my password so I can log in. The thing is, I can't press one of the onscreen keyboard keys to enter my password completely, and thus cannot unlock my phone. I cannot use my fingerprint because every time my phone reboots it asks for the password. I know if I can get my landscape mode I can enter in the correct password but all my attempts (notification bar, lock screen camera) have all failed. Any help? :)

# Answer
Your device seems to support USB OTG functionality. Given that, you can buy an OTG cable and use a mouse (any mouse would work) to control the device, just like you control a computer using a mouse.

Once you unlock the device, attempt to root it, then install Xposed Framework for Nougat, followed by installation of GravityBox \[N\] Xposed module.

In GravityBox module, there is a setting named *Enable lockscreen rotation* under *Lockscreen tweaks*. Enable it and restart the device. The rotation control should work on lockscreen now.

**Note**: If the device is encrypted, and you reboot the device, the rotation tweak would not work because the apps are not loaded by that time. You would have to use your fingers or the mouse in portrait mode to unlock the device.
> 3 votes

# Answer
If you find a flash tool which allows partial flashing without data loss, you can add these lines in build.prop and flash modified system partition

```
log.tag.launcher_force_rotate=VERBOSE
lockscreen.rot_override=true

```
> 1 votes

---
Tags: lock-screens, broken-screen, motorola-moto-e4
---


title: Armv8 image stuck on booting process

text:
# Question
Title: Armv8 image stuck on booting process
I can't make it to boot an armv8 image (API24, Nougat, Android 7.0) to boot successfully in Android emulator. The Emulator software was updated today to the latest version.

The first problem I can see in `adb logcat` is this:

```
01-01 00:01:28.730   857   857 I Zygote  : Preloading resources...
01-01 00:01:30.386  1040  1040 D ICU     : No timezone override file found: /data/misc/zoneinfo/current/icu/icu_tzdata.dat
01-01 00:01:30.572  1040  1040 F libc    : Fatal signal 11 (SIGSEGV), code 1, fault addr 0xffff87ef99b001 in tid 1040 (main)
01-01 00:01:30.574   817   817 W         : debuggerd: handling request: pid=1040 uid=0 gid=0 tid=1040
01-01 00:01:30.610   857   857 W Resources: Preloaded drawable resource #0x1080298 (android:drawable/editbox_dropdown_background_dark) that varies with configuration!!
01-01 00:01:31.065  1102  1102 E         : debuggerd: Unable to connect to activity manager (connect failed: No such file or directory)
01-01 00:01:31.082  1102  1102 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
01-01 00:01:31.084  1102  1102 F DEBUG   : Build fingerprint: 'Android/sdk_phone_arm64/generic_arm64:7.0/NYC/3245079:userdebug/test-keys'
01-01 00:01:31.084  1102  1102 F DEBUG   : Revision: '0'
01-01 00:01:31.084  1102  1102 F DEBUG   : ABI: 'arm64'
01-01 00:01:31.085  1102  1102 F DEBUG   : pid: 1040, tid: 1040, name: main  >>> zygote64 <<<
01-01 00:01:31.086  1102  1102 F DEBUG   : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xffff87ef99b001
01-01 00:01:31.087  1102  1102 F DEBUG   :     x0   0000000071df8494  x1   0000000000000013  x2   0000000000000008  x3   0000000000000001
01-01 00:01:31.087  1102  1102 F DEBUG   :     x4   0000000000000004  x5   0000000071b05744  x6   0000000071b05748  x7   0000000000000000
01-01 00:01:31.087  1102  1102 F DEBUG   :     x8   0000000000000000  x9   0000000000000000  x10  00000000000ffffe  x11  00000000ffffffff
01-01 00:01:31.087  1102  1102 F DEBUG   :     x12  0000000000000001  x13  0000000000002a3c  x14  00000078a22b2c04  x15  0000000000000000
01-01 00:01:31.088  1102  1102 F DEBUG   :     x16  0000007fe6bc6f30  x17  0000000000000000  x18  00000000ffffffff  x19  0000000071df8494
01-01 00:01:31.088  1102  1102 F DEBUG   :     x20  0000000000000000  x21  0000000070605088  x22  0000000000000000  x23  0000000000000000
01-01 00:01:31.088  1102  1102 F DEBUG   :     x24  ffffff87ef99b001  x25  00000078a27f7ed8  x26  0000000070605088  x27  00000078a283d180
01-01 00:01:31.089  1102  1102 F DEBUG   :     x28  0000028800000000  x29  0000007fe6bc6f20  x30  00000078a2728c40
01-01 00:01:31.089  1102  1102 F DEBUG   :     sp   0000007fe6bc6d10  pc   00000078a272803c  pstate 0000000060000000
01-01 00:01:31.353  1102  1102 F DEBUG   :
01-01 00:01:31.353  1102  1102 F DEBUG   : backtrace:
01-01 00:01:31.355  1102  1102 F DEBUG   :     #00 pc 000000000054703c  /system/lib64/libart.so (artQuickResolutionTrampoline+2572)
01-01 00:01:31.355  1102  1102 F DEBUG   :     #01 pc 00000000000dae1c  /system/lib64/libart.so (art_quick_resolution_trampoline+92)
01-01 00:01:31.355  1102  1102 F DEBUG   :     #02 pc 00000000000d1c68  /system/lib64/libart.so (art_quick_invoke_static_stub+600)
01-01 00:01:31.356  1102  1102 F DEBUG   :     #03 pc 00000000000de6b0  /system/lib64/libart.so (_ZN3art9ArtMethod6InvokeEPNS_6ThreadEPjjPNS_6JValueEPKc+252)
01-01 00:01:31.356  1102  1102 F DEBUG   :     #04 pc 000000000028c2e4  /system/lib64/libart.so (_ZN3art11interpreter34ArtInterpreterToCompiledCodeBridgeEPNS_6ThreadEPNS_9ArtMethodE$
01-01 00:01:31.356  1102  1102 F DEBUG   :     #05 pc 00000000002852c0  /system/lib64/libart.so (_ZN3art11interpreter6DoCallILb0ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameE$
01-01 00:01:31.357  1102  1102 F DEBUG   :     #06 pc 0000000000551bf0  /system/lib64/libart.so (MterpInvokeStatic+356)
01-01 00:01:31.357  1102  1102 F DEBUG   :     #07 pc 00000000000c4514  /system/lib64/libart.so (ExecuteMterpImpl+14612)

```

After that I am starting to see these problems:

```
01-01 00:01:36.467   857   857 I Zygote  : ...preloaded 114 resources in 7735ms.
01-01 00:01:36.747   857   857 I Zygote  : ...preloaded 41 resources in 280ms.
01-01 00:01:36.749   857   857 D libEGL  : Emulator has host GPU support, qemu.gles is set to 1.
01-01 00:01:36.773   857   857 E libEGL  : load_driver(/system/lib/egl/libGLES_emulation.so): dlopen failed: library "/system/lib/egl/libGLES_emulation.so" not found
01-01 00:01:36.869   857   857 D libEGL  : loaded /system/lib/egl/libEGL_emulation.so
01-01 00:01:36.928   857   857 D libEGL  : loaded /system/lib/egl/libGLESv1_CM_emulation.so
01-01 00:01:37.516   857   857 D libEGL  : loaded /system/lib/egl/libGLESv2_emulation.so
01-01 00:01:38.151   857   857 I Zygote  : Preloading shared libraries...
01-01 00:01:38.325   857   857 E Hyphenator: error loading hyphenation /system/usr/hyphen-data/hyph-as.hyb
01-01 00:01:38.325   857   857 E Hyphenator: java.io.FileNotFoundException: /system/usr/hyphen-data/hyph-as.hyb: open failed: ENOENT (No such file or directory)
01-01 00:01:38.325   857   857 E Hyphenator:    at libcore.io.IoBridge.open(IoBridge.java:455)
01-01 00:01:38.325   857   857 E Hyphenator:    at java.io.RandomAccessFile.<init>(RandomAccessFile.java:247)
01-01 00:01:38.325   857   857 E Hyphenator:    at android.text.Hyphenator.loadHyphenator(Hyphenator.java:118)
01-01 00:01:38.325   857   857 E Hyphenator:    at android.text.Hyphenator.init(Hyphenator.java:224)
01-01 00:01:38.325   857   857 E Hyphenator:    at com.android.internal.os.ZygoteInit.preloadTextResources(ZygoteInit.java:252)
01-01 00:01:38.325   857   857 E Hyphenator:    at com.android.internal.os.ZygoteInit.preload(ZygoteInit.java:206)
01-01 00:01:38.325   857   857 E Hyphenator:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:722)
01-01 00:01:38.325   857   857 E Hyphenator: Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory)
01-01 00:01:38.325   857   857 E Hyphenator:    at libcore.io.Posix.open(Native Method)
01-01 00:01:38.325   857   857 E Hyphenator:    at libcore.io.BlockGuardOs.open(BlockGuardOs.java:187)
01-01 00:01:38.325   857   857 E Hyphenator:    at libcore.io.IoBridge.open(IoBridge.java:441)
01-01 00:01:38.325   857   857 E Hyphenator:    ... 6 more
01-01 00:01:38.353   857   857 E Hyphenator: error loading hyphenation /system/usr/hyphen-data/hyph-bn.hyb
01-01 00:01:38.353   857   857 E Hyphenator: java.io.FileNotFoundException: /system/usr/hyphen-data/hyph-bn.hyb: open failed: ENOENT (No such file or directory)
01-01 00:01:38.353   857   857 E Hyphenator:    at libcore.io.IoBridge.open(IoBridge.java:455)
01-01 00:01:38.353   857   857 E Hyphenator:    at java.io.RandomAccessFile.<init>(RandomAccessFile.java:247)
01-01 00:01:38.353   857   857 E Hyphenator:    at android.text.Hyphenator.loadHyphenator(Hyphenator.java:118)
01-01 00:01:38.353   857   857 E Hyphenator:    at android.text.Hyphenator.init(Hyphenator.java:224)
01-01 00:01:38.353   857   857 E Hyphenator:    at com.android.internal.os.ZygoteInit.preloadTextResources(ZygoteInit.java:252)
01-01 00:01:38.353   857   857 E Hyphenator:    at com.android.internal.os.ZygoteInit.preload(ZygoteInit.java:206)
01-01 00:01:38.353   857   857 E Hyphenator:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:722)
01-01 00:01:38.353   857   857 E Hyphenator: Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory)
01-01 00:01:38.353   857   857 E Hyphenator:    at libcore.io.Posix.open(Native Method)
01-01 00:01:38.353   857   857 E Hyphenator:    at libcore.io.BlockGuardOs.open(BlockGuardOs.java:187)
01-01 00:01:38.353   857   857 E Hyphenator:    at libcore.io.IoBridge.open(IoBridge.java:441)
01-01 00:01:38.353   857   857 E Hyphenator:    ... 6 more

```

a bit later:

```
01-01 00:02:33.431  1137  1137 I Zygote  : System server process 1305 has been created
01-01 00:02:33.497  1137  1137 I Zygote  : Accepting command socket connections
01-01 00:02:34.153  1305  1305 I Zygote  : Process: zygote socket opened, supported ABIS: armeabi-v7a,armeabi
01-01 00:02:34.204  1305  1305 I InstallerConnection: connecting...
01-01 00:02:34.217   861   861 I         : new connection
01-01 00:02:34.461  1305  1305 I InstallerConnection: disconnecting...
01-01 00:02:34.462   861   861 E         : eof
01-01 00:02:34.462   861   861 E         : failed to read size
01-01 00:02:34.462   861   861 I         : closing connection
01-01 00:02:35.107  1305  1305 W SystemServer: System clock is before 1970; setting to 1970.
01-01 00:02:35.153  1305  1305 I SystemServer: Entered the Android system server!
01-01 00:02:35.184  1305  1305 F libc    : Fatal signal 11 (SIGSEGV), code 1, fault addr 0xffff80f5b1a001 in tid 1305 (system_server)
01-01 00:02:35.213   817   817 W         : debuggerd: handling request: pid=1305 uid=1000 gid=1000 tid=1305
01-01 00:02:35.231   817   817 E         : debuggerd: waitpid returned unexpected pid (0), committing murder-suicide
01-01 00:02:35.231   817   817 W         : debuggerd: pid 0 received signal 9
01-01 00:02:35.280   817   817 E         : debuggerd: killing target 1305

```

After 7 minutes of trying I get this:

```
01-01 00:07:23.083  2429  2429 I InstallerConnection: connecting...
01-01 00:07:23.085   861   861 I         : new connection
01-01 00:07:23.112  2429  2429 I SystemServiceManager: Starting com.android.server.am.ActivityManagerService$Lifecycle
01-01 00:07:23.255  2429  2429 I ActivityManager: Memory class: 48
01-01 00:07:23.271  2429  2449 I ServiceThread: Enabled StrictMode logging for ActivityManager looper.
01-01 00:07:23.291  2429  2450 I ServiceThread: Enabled StrictMode logging for android.ui looper.
01-01 00:07:24.241   861   861 E         : eof
01-01 00:07:24.242   861   861 E         : failed to read size
01-01 00:07:24.242   861   861 I         : closing connection
01-01 00:07:24.302  2281  2281 I Zygote  : Process 2429 exited due to signal (11)
01-01 00:07:24.302  2281  2281 E Zygote  : Exit zygote because system server (2429) has terminated

```

Then everything repeats again for hours and I never get to the launcher.

Basically, what happens is that, SystemServer crashes due to a SIGSEGV, so what can I do about it ? I have tried many armv8 images and none of them work, I tried on 2 different computers, with opengl in hardware and opengl in software.

What else can I try? I need to make it work to test an arm-64bit APK before I upload it to Google store.

Maybe the issue is in the hardware I am picking for the emulator? I am using Nexus 5 device.

# Answer
Y solved it!!! (after 2 days of work) It is not an ideal solution, but it works. Apparently Google screw it with the emulators and the current version (1 May 2019) doesn't work with ARM8 images, so the solution is to downgrade the emulator software.

Here is the question that pointed me into the right direction: https://stackoverflow.com/questions/49120854/how-to-downgrade-android-emulator/49284378#49284378

And the emulator I used was this: http://dl.google.com/android/repository/emulator-linux-4266726.zip

No more SEGFAULTS with arm64 bit images.
> 3 votes

---
Tags: boot, android-emulator
---


# Question
Title: The emulator process for AVD Nexus_5X_API_22 was killed
I installed Android Studio with Android SDK from the offical web-site, created a new sample project, didn't change or delete even a line, but the project doesn't work anyway.

```
D:\AndSDK\tools\emulator.exe -netdelay none -netspeed full -avd Nexus_5X_API_22
Hax is enabled
init: Could not find wglGetExtensionsStringARB!
getGLES2ExtensionString: Could not find GLES 2.x config!
Hax ram_size 0x60000000
Failed to obtain GLES 2.x extensions string!
HAX is working and emulator runs in fast virt mode.
Could not initialize emulated framebuffer
audio: Failed to create voice `goldfish_audio_in'
qemu-system-i386.exe: warning: opening audio input failed
emulator: Listening for console connections on port: 5554
emulator: Serial number of this emulator (for ADB): emulator-5554
emulator: ERROR: Could not initialize OpenglES emulation, use '-gpu off' to disable it.

02/11 16:19:14: Launching app
Error while waiting for device: The emulator process for AVD Nexus_5X_API_22 was killed.

```

What can be wrong and how to fix it?

# Answer
> 4 votes
1. Go to: Tools \> Android \> AVD Manager
2. Press the "edit" (pencil) icon next to your AVD
3. Change "Graphics" to "Software".

# Answer
> 1 votes
> emulator: ERROR: Could not initialize OpenglES emulation, use '-gpu off' to disable it.

The emulator wasn't able to use OpenGL ES emulation on your PC. As the message says, you can disable it using the command-line, or by turning off the "Use Host GPU" option in the emulator's settings dialog, but then the emulator will be very slow. It would be better to run your app on a real phone.

# Answer
> 1 votes
The same happened to me, in other places I read that is a problem with the library shipped with the SDK.

The following line worked for me

```
$ android-sdk/tools/emulator -avd Nexus_5_API_27 -use-system-libs

```

Now you can see the device from Android Studio and connect to it. Probably exists an option inside the AVD configuration to fix this.

# Answer
> 0 votes
This is what worked for me: Go to Tools\> AVD Manager \> Click on downward arrow beside your emulator \> Wipe data It will confirm if you want to wipe data, say yes in that case.

# Answer
> -2 votes
The-emulator-process-for-avd-nexus-5x-api-22-was-killed???? simple change "Nexus5XApi22" to "Nexus" problem solved.

# Answer
> -2 votes
Since the log also mentioned

> ```
> audio: Failed to create voice 'goldfish_audio_in'
>
> ```

Check your Windows 10's **Privacy settings \> Microphone**. If it is disabled, enable it.

---
Tags: android-emulator, emulators
---


# Question
Title: How do I identify on when was an application installed previously. Currently I don’t have the app on my android device
I did explore all the articles and video. But that did not help either. Ideally I want to identify the last time an app was installed on my android device .which is currently not available .

In other words , is there a way to identify installed date of an app in android.

# Answer
> 1 votes
Your best bet is Google Takeout. I'm unsure whether it lists sideloaded and system apps as well. Download the Google Play Store data only. Extract the data from the archive and look for your app in the files *Install.json* and *Library.json* under Google Play Store directory. Those two files can be opened in a text editor, such as Notepad++, Sublime Text Editor, etc.

Related:

---
Tags: android-device-manager
---


# Question
Title: Web messages interface - How do I control if messages are sent as SMS or MMS?
I've been using messages.android.com for a few weeks now and it's amazing, even if sluggish when "new conversation" is clicked.

The only issue I have is that if I'm texting more than one person it switches to sending as MMS and I can't seem to control it. I tried this but that setting doesn't seem to be listed. I'm using the default Messaging app on a dual sim moto g5. My phone recently upgraded itself to Android 8 but it hasn't solved the issue. It seems to happen, even with very short messages, and even if it's just text without any subject or media. The message converts to MMS as soon as I add a second recipient. Any suggestions? I will add a Windows steps recorder when I have a bit more time. If I add two recipients to a text message on the phone itself it works as normal and remains an SMS.

It would be useful if someone could see if they get the same behaviour.

Another edit: the problem persists with the new interface, whether opened directly or through a redirection from the old one.

# Answer
> 0 votes
When you add a media item such as a photo to your message it automatically turns the message into a MMS

---
Tags: sms, mms
---


# Question
Title: Identifying icon with phone on speaker mode or titled Wi-Fi under a rectangle
It just appeared today. No idea what it is. When I pull down my notification screen there's nothing new.

I use an LG G6, running Android 8.0.

# Answer
While I am not fully convinced, user chuckdawg1999 of Android Central and Community Manager vzw\_customer\_support replied that the icon is for Wi-Fi Calling or Wi-Fi/HD calling through Verizon.
> 0 votes

---
Tags: notification-icons, lg-g6
---


# Question
Title: I am trying to recover a failed posting, just disappeared on Andriod
On my Galaxy Edge 6, I shared a post from Twitter to LinkedIn. The post stopped at 98% and when I checked the phone again it wasn't posted and it had just vanished. How do I recover the post?

# Answer
If you go chrome at the top push the red dot and go to Hester.And you can clear up to a weeks worth of data .Just hit clear data and its gone.Form the history of the phone
> 0 votes

---
Tags: applications
---


# Question
Title: Is there a way to use PC browser bookmarklets with the Android Browser or Dolphin HD?
Can I make these work on Android or is there a google place to create or convert bookmarklets to make them Android Compatible?

# Answer
Finally got it to work and it wasn't complicated at all.

Simply create a bookmark and paste the javascript into the URL field. I've tried it on this bookmarklet that does a google definition search:

`javascript: s = (window.getSelection ? window.getSelection() : document.getSelection ? document.getSelection() : document.selection.createRange().text); if (s == '') { l = parent.frames.length; if (l != 1) { for (i = 0; i < l; i++) { s = parent.frames[i].document.getSelection ? parent.frames[i].document.getSelection() : parent.frames[i].document.selection.createRange().text; if (s) { break; } } } } if (s == '') { void( s = prompt('Google Define:
Enter a term or mark some text.','') ); } if (s) { s = String(s); s = s.replace(/^s*|s*$/g,''); s = escape(s);void( bmw = open('http://www.google.com/search?num=100&start=0&q=define:'+s+'','GoogleDefineBM'+String(Math.round(Math.random()*1000))) );}`

To get it saved as a bookmark I just saved the text in evernote then copied it on my phone an pasted it in the url field of "new bookmark." To make it even easier to access I created a custom dolphin gesture that opens it as "Go To URL". Now when I'm browsing and I want to lookup a word I hit the gesture button and draw a "d" and it brings up a popup that allows me to lookup the word.

I've only tried this on Dolphin Browser HD.
> 3 votes

# Answer
Works in Chrome mobile. Here's the recipe:

### PREPARE

Create a bookmarklet = add a script to your bookmarks:

* on Chrome PC¹, then sync (so your bookmarks show up in Chrome mobile on your phone)
* or directly in Chrome mobile on your phone²

### USE

Do not invoke/call the script (on phone) by looking it up in Chrome Bookmarks (menu \[  \] / Bookmarks) → that doesn't work. You have to tap the URL bar and start typing the bookmarklet's name. Select the bookmarklet from the list (it'll begin with *javascript:blahblahblah…*).

---

¹) on any webpage hit Chrome's button \[  \] on URL bar then \[**More**\] in the popup that appears, then enter the bookmarklet name, URL (=code beginning with *javascript:blahblahblah…*), optionally choose folder, then hit \[**Save**\]

²) on any webpage hit Chrome's button \[  \] then \[  \] then \[**Edit**\] on a bar that shows down the screen, then enter the bookmarklet name, URL (=code beginning with *javascript:blahblahblah…*), optionally choose folder, then hit \[\] to save and go back
> 3 votes

# Answer
It isn't so much being "Android compatible" as being compatible with the specific browser.

That being said... I haven't gotten URL-based javascript to execute in Dolphin, but that proves nothing.
> 0 votes

# Answer
"Simply create a bookmark and paste the javascript into the URL field."

Bookmark a page that you have not bookmarked, then modify the bookmark, Name, Address, Folder (to something like "Bookmarklets"), and Assign a Gesture, then Add.

Suggest you create a gesture to create a bookmark and draw a five pointed star as that gesture. (or use the "+" at the left end of the address bar.)

For more information see http://dmcritchie.mvps.org/dolphin/dolphin\_mygestures.htm
> 0 votes

# Answer
Chrome to Phone and also...

Phone to Chrome,

Once the the linkys gets synchronized, then its merely a matter of bookmarking it.

The only onus, is that Chrome is installed on the PC Desktop, in that way, linkys can be shared.
> 0 votes

---
Tags: browser, browser-add-ons, bookmarklets, javascript
---


# Question
Title: I rooted my phone and its memory got deleted. Is that normal? Any way to recover=
I rooted my phone, a HTC, and its memory got deleted. This was the fourth telephone I rooted and I can not recall it has happened before so I was a little sloppy when I read the warnings displayed during the process (besides, it was necessary since backing up of this phone had stopped working and I needed a backup of the wifi-passwords).

Is it "normal" that the memory is intentionally deleted when rooting?

Any ways to recover? I have put the phone aside and not used it since this happened but the memory was encrypted.

# Answer
Yes this is the warning you must not have read...

I imagine from my own experience with HTC and unlocking the bootloader that you followed the official process on the HTC Dev site... ( HTC Developer Website ) ... Official page..

Unlock bootloader page - Unlock Bootloader..

It will notify you prior to pressing Up to Accept the process that it will erase the Internal Memory.. .

Recovery is not possible without specialized software for data analysis, ... I mean a Full ROM Restore...

You can restore Photos and Documents using applications like DiskDigger, as long as you have not Overwritten them.. Try not to put anything on the Data partition like new Apps or even on the Internal storage...

The internal storage is usually Emulated and is actually a folder in the Data partition...

Writing to Either Data or Internal Storage will erase the previous data....

Data usually is not Erased, but Marked as Reusable...

Deletion is a long process for the computer so it just marks the file for replacement..

Even a " Quick Format " Does the same thing !
> 1 votes

---
Tags: rooting, data-recovery, htc
---


title: Find my samsung notification

text:
# Question
Title: Find my samsung notification
When logging into the "Find My Mobile" website, why do notifications appear on the phone that I am trying to locate? I don't really want someone to know if they steal my phone that I am tracking it. I have tried turning off notifications for "Find my mobile", but they still appear on the phone. I have a galaxy s8 and s10. Is there any way around this?

# Answer
> 1 votes
I assume that the notification is shown for legal reasons. In a lot of countries it is illegal to track user positions without their knowledge/approval.

Just an theoretical example: Let us assume there are two Samsung devices on your account, your own device and the device of your partner. Now you are getting jealous and start tracking the movements of your parter's device using the Samsung find my device system. Such usage is illegal in a lot of countries.

In your case you just don't want the notification to be visible on the lock screen. Therefore it should be sufficient to configure the notifications of the Samsung Find my Device service to be not shown on the lock screen.

---
Tags: notifications
---


title: Customising a custom ROM

text:
# Question
Title: Customising a custom ROM
I want to know is it possible to edit a custom ROM from zip and then zipping it again (flashable) to a device. Will it brick the device?
Thanx

# Answer
> 0 votes
Depends on how the ROM is packaged and what you change in it before repacking. You should be able to unpack and make edits using suitable tools for unpacking the ROM.

A better option is to first flash it, then root and make your changes in the files as needed :-)

And yeah it can brick the device if you flash bad code

# Answer
> 0 votes
Well, the best would be to first flash the rom, test all of its functions and bugs and then, after testing, you can unzip the rom zip, make your own changes and then just rezip the files.But be careful for all the changes you make, a few changes can be like changing and removing if you want any system apps, change the default wallpapers and ringtones, but you shouldn't never touch any other files.

# Answer
> 0 votes
Yes it is certainly possible. You need a Linux system however

First determine the format that has been used

If the zip has a system directory it's the old KitKat format Otherwise check system.transfer.list for the version

Anyway if it's just a system directory you can just extract the zip, add files, modify the updater-script and pack it back

The more complicated stuff:

Case 1: assume system.new.dat This is actually a sparse (iirc, not really sure) system image that you can extract with sdat2img You'll get a system.img Mount this as an ext4 loop device Perform your modifications Unmount the system image Use img2simg to convert system.img to a sparse image then flash it with fastboot like this

fastboot flash system system.img

Case 2: system.new.dat.br This is just a system.new.dat compressed with brotli. Do not directly run sdat2img on this First install brotli and decompress it to system.new.dat Follow everything as said in case 1

There is no easy way to convert it back to system.new.dat. You could use the AOSP build system to do so but if you want to make a flashable zip use the edify command "package\_extract\_file()" to extract the system.img from a flashable zip onto the system partition.

Also be careful. Remember that any files you add this way will have incorrect selinux contexts. You will have to use chcon to set the correct selinux contexts. Use ls -Z to check what contexts other files have and apply a suitable context

---
Tags: custom-roms, android-sdk, superuser
---


# Question
Title: Are android system kernel panic logs available in TWRP recovery?
I am trying to debug a rom I built but can't seem to find the any kernel panic or system logs in TWRP recovery.

Is it possible to create logs for a failed boot to see whats going wrong?

I am still a total noob with this stuff so any help is appreciated!

# Answer
> 0 votes
Check /sys/fs/pstore immediately after a crash

In some cases there are no logs here as the device warm resets (it happens when a crash is serious enough to boot the device into edl). To avoid this try disabling kernel panics in your kernel.

---
Tags: custom-roms, kernel, logging
---


title: Error 7 when attempting to flash ROM

text:
# Question
Title: Error 7 when attempting to flash ROM
I'm trying to replace the stock ROM on my OnePlus 3 in an attempt to find out if another ROM has fixed a set of really annoying bugs present in stock. My phone is running the latest OTA from OnePlus (`ONEPLUS A3000_16_170610`).

I've followed the following steps:

1. Flash TWRP and SuperSU. Reboot several times.
2. Disable lockscreen security.
3. Boot to recovery and do a full backup.
4. Reboot and copy new ROM and Gapps to `/sdcard`.
5. Reboot to recovery.
6. Wipe dalvik, system, data, and cache.
7. Attempt to install the ROM. At this point, I get the following error:

```
Checking for MODEM build time-stamp 2017-06-27 21:43:31
assert failed: op3.verify_modem("2017-06-27 21:43:31") == "1"
Updater process ended with ERROR: 7
Error installing zip file '/sdcard/RR-N-v5.8.4-20170806-oneplus3-Official.zip'

```

This example is using the latest Resurrection Remix ROM, but I've also gotten the exact same error from the latest LineageOS.

What's wrong?

# Answer
This will likely be closed as off topic, but twrp is telling you exactly what's wrong. Your modem does not match the accepted one that you should use. Usually means you need to update firmware (bootloaders, modem, any vendor partitions etc).
> 1 votes

# Answer
TWRP error codes are useless The message about the error is what helps

This is what leads to the exact error

assert failed: op3.verify\_modem("2017-06-27 21:43:31") == "1"

I link you to the relevant XDA thread where you can flash the proper firmware and modem https://forum.xda-developers.com/oneplus-3/how-to/op3-flashable-firmware-modem-zips-t3816066

Be very careful! Upgrading the firmware on an op3 will make the TPM destroy the encrypted private key used for decryption if the bootloader is unlocked so if you're encrypted it is a good idea to backup all data before you attempt to upgrade the firmware

There is also a high chance that your older recovery will no longer boot after upgrading the firmware so you must upgrade your recovery before you attempt an upgrade
> 0 votes

# Answer
You have to flash kernel first given in the following xda tread !!! Without flashing the custom firmware you cannot flash the rom !! Resurrection remix uses its custom kernel
> -2 votes

---
Tags: rom-flashing, custom-roms, oneplus-3
---


# Question
Title: Copy full system and data partitions of Oneplus 3T to computer
I've accidentally deleted some photos on Oneplus 3T and would like to get the full disk image so to be able to perform recovery using `magicrescue`:

```
magicrescue -r jpeg-exif -d output-dir disk-image.img

```

https://stackoverflow.com/questions/29442630/disk-image-dd-from-android-to-my-computer seems to answer the question but devices (/dev/\***) naming on Oneplus 3T seems to differ and not standard and I'm not able to perform the copy.

# Answer
Devices of system and data partitions on Oneplus 3T are the following:

```
/dev/block/dm-0
/dev/block/dm-1

```

To copy them to computer run (smartphone must be rooted):

```
adb pull /dev/block/dm-0 dm-0.img
adb pull /dev/block/dm-0 dm-1.img

```
> 0 votes

# Answer
This is not possible. Oxygenos mounts the data partition with the discard mount argument

A trim command is sent to the storage controller as soon as you delete a file
> 0 votes

---
Tags: oneplus-3
---


# Question
Title: How does AOSP on a dual sim smartphone handle data?
How does AOSP on a dual sim smartphone handle data? Does it provide the option to choose the SIM when I do tethering or use the native hotspot?

# Answer
According to digitalcitizenlife, you have two screens you can change this under the `Default Mobile Data` option,

There is also a Huawei FAQ about this, *"Dual SIM settings "*
> 0 votes

---
Tags: mobile-data, wifi-hotspot, sim-card, tethering, aosp
---


# Question
Title: How to AutoRotate in LineageOS With ADB?
I am using LOS 14.1 unofficial (by dl12345 user from XDA) in my N910C. AutoRotate doesn't work and i found a solution which is working partly. What does mean partly?

I added these to my build.prob with adb.

```
log.tag.launcher_force_rotate=VERBOSE
lockscreen.rot_override=true

```

And I've set permission of build.prop like this.

```
chmod 644 build.prop

```

Then rebooted to System.

I tested AutoRotate and it is working good even if i am in main (lock) screen. 2-3 days later i realized it is not working anymore mysterious. In the meanwhile i rebooted the device 1-2 times within 2-3 days. I started to look for a new fix and found this command.

```
ro.sf.hwrotation=360

```

I deleted first two (2) commands and added this command to the build.prop with adb and set the permission like that.

Rebooted to System and tested. It is working good and today i realized it is not working again. I started to think what is the problem? It is working some and not working anymore.

I need your ideas and experiences.

P.S: I don't want to use an app always for this.

**EDIT:** I had edited and pushed build.prop 1 hour ago and had tested, it was working.

I can enable user\_rotation to 0, 1, 2 and 3. It is working good but as you know rotating in every app even if in Settings or Phone (Calling). But Auto Rotation is not working.

**EDIT2:** I enabled Auto Rotation with this command, didn't work.

```
root@kali:~/Downloads/platform-tools# adb shell settings put system accelerometer_rotation 1

```

I enabled user\_rotation with this command, it is working.

```
root@kali:~/Downloads/platform-tools# adb shell settings put system user_rotation 1

```

Results of rests:

```
Disabled Accelerometer, enabled user_rotation=working
Enabled Acceleremoter, configured user_rotation with 0=not working
Enabled Accelerometer, configured user_rotation with 1=not working

```

As a result when i enabled Auto Rotation, is not working

**EDIT3:** I installed this app and tested Accelerometer. I can rotate my phone 360 degree without enabling AutoRotate feature. I had thought my phone's accelerometer is broken, but not.

# Answer
> 1 votes
Android 4.2

Auto rotate on:

`adb shell content insert --uri content://settings/system --bind name:s:accelerometer_rotation --bind value:i:1`

Auto rotate off:

`adb shell content insert --uri content://settings/system --bind name:s:accelerometer_rotation --bind value:i:0`

Landscape:

`adb shell content insert --uri content://settings/system --bind name:s:user_rotation --bind value:i:1`

Portrait:

`adb shell content insert --uri content://settings/system --bind name:s:user_rotation --bind value:i:0`

Android 8

Auto rotate on:

`adb shell settings put secure show_rotation_suggestions 1`

Auto rotate off:

`adb shell settings put secure show_rotation_suggestions 0`

introduction mode can be reset by altering the associated Settings.Secure value. This accomplished easiest by running the following command from a privileged adb instance:

`adb shell settings put secure num_rotation_suggestions_accepted 0`

# Answer
> 0 votes
Im also running an unofficial LOS 14.1--7.1.2 (orig. 6.0), and I've learned that, while being debuggable &selinux-permissive, ANY little system change requires that /system/ be remounted -o rw. Once I ran the cmd via terminal prior to changes, I experienced NO more issues with substratum, exposed, etc. My Superuser's perms are 777, so I had assumed that also having a permissive kernel would grant god-like powers, but certain pid's & such keep me humble. Also maybe important (certainly is for my LG), build.prop changes persist only when done properly via my TWRP terminal, as that shows my default build.prop always, lurking to overwrite /revert my naive tweaks. Good lookin' out, TWRP.

---
Tags: adb, custom-roms, lineageos, auto-rotation
---


# Question
Title: How to get tomorrow's date and next week's number for use in Tasker
Based on this answer I am looking for a way how to get tommorow's date and next week number to use in Tasker app, **Run Shell Command**.

I have tried:

`date -d '+1 day' +"%Y%m%d"` and similar, but still I am getting `Error: 1`.

In shell emulator I get `bad date '+1 day'`

Cannot find any android shell commands reference or man.

Some guides recommend using %TIMES variable, but not sure how.

# Answer
I've figured it out, I had to learn to use Tasker a bit, the solution is a little awkward but it probably should be done this way in Tasker.

The most important variable for such datetime manipulations in Tasker is a global variable `%TIMES` which contains current time in seconds - so it is a big long integer number.

Adding e.g. 30 days to it means you need to *Set variable* (with Math on) like this:

```
%TIMES + (30 * 86400)

```

Tommorow is:

```
%TIMES + (1 * 86400)

```

The main problem is, that you have to convert the value to a formatted datetime string. As I understood it there is no built in command for that in Tasker.

You need to create JavaScriptlet task step for that and paste there the code from this page:

```
<TaskerData sr="" dvi="1" tv="4.1b1m">
    <Task sr="task54">
        <cdate>1340586441681</cdate>
        <edate>1369445351826</edate>
        <id>54</id>
        <nme>getFormattedDate</nme>
        <pri>10</pri>
        <rty>2</rty>
        <Action sr="act0" ve="3">
            <code>129</code>
            <Str sr="arg0" ve="3">var gsMonthNames = new Array(
'January',
'February',
'March',
'April',
'May',
'June',
'July',
'August',
'September',
'October',
'November',
'December'
);

var gsDayNames = new Array(
'Sunday',
'Monday',
'Tuesday',
'Wednesday',
'Thursday',
'Friday',
'Saturday'
);

var d = new Date(par[0] * 1000);
var f = par[1];

var formatteddate = f.replace(/(yyyy|yy|mmmm|mmm|mm|dddd|ddd|dd|hh|nn|ss|a\/p)/gi,
    function($1)
    {
        switch ($1)
        {
        case 'yyyy': return d.getFullYear();
        case 'yy':   return ('0' + d.getFullYear()).slice(-2);
        case 'mmmm': return gsMonthNames[d.getMonth()];
        case 'mmm':  return gsMonthNames[d.getMonth()].slice(0,3);
        case 'mm':   return ('0' + (d.getMonth() + 1)).slice(-2);
        case 'dddd': return gsDayNames[d.getDay()];
        case 'ddd':  return gsDayNames[d.getDay()].slice(0,3);
        case 'dd':   return ('0' + d.getDate()).slice(-2);
        case 'hh':   return ('0' + ((h = d.getHours() % 12) ? h : 12)).slice(-2);
        case 'HH':   return ('0' + d.getHours()).slice(-2);
        case 'nn':   return ('0' + d.getMinutes()).slice(-2);
        case 'ss':   return ('0' + d.getSeconds()).slice(-2);
        case 'a/p':  return d.getHours() < 12 ? 'a' : 'p';
        }
    }
);</Str>
            <Str sr="arg1" ve="3">45</Str>
            <Int sr="arg2" val="1"/>
            <Int sr="arg3" val="45"/>
        </Action>
        <Action sr="act1" ve="3">
            <code>126</code>
            <Str sr="arg0" ve="3">%formatteddate</Str>
            <Int sr="arg1" val="1"/>
        </Action>
    </Task>
</TaskerData>

```

before that Javascriptlet step you insert 2 steps where you set two input variables `%par1` (contains datetime in seconds form previous step) and `%par2` (contains `yyyymmdd` \- date format).

The formatted date string is available then in `%formatteddate` variable.

---

As for getting the next week:

* Run Shell `date -d +"%Y"` to `%year`
* Run Shell `date -d +"%V"` to `%week`
* Set variable `%week` to `%week + 1` (Do Maths On)
* Set variable `%year` to `%year + 1` (Do Maths On) (If `%week > 52`)
* Set variable `%week` to `1` (If `%week > 52`)
* The `yyyyww.htm` of the next week can then be written as `%year%week.htm`
> 1 votes

# Answer
Given a variable `%mytimestamp` set to an epoch timestamp you can use this in your shell action:

`date -d @%mytimestamp +%Y%m%d`

Note the `@` before `%mytimestamp`

---

```
$ adb shell
$ date --version
toybox 0.7.4-android
$ date --help
usage: date [-u] [-r FILE] [-d DATE] [+DISPLAY_FORMAT] [-D SET_FORMAT] [SET]

Set/get the current date/time. With no SET shows the current date.

Default SET format is "MMDDhhmm[[CC]YY][.ss]", that's (2 digits each)
month, day, hour (0-23), and minute. Optionally century, year, and second.
Also accepts "@UNIXTIME[.FRACTION]" as seconds since midnight Jan 1 1970.

-d      Show DATE instead of current time (convert date format)
-D      +FORMAT for SET or -d (instead of MMDDhhmm[[CC]YY][.ss])
-r      Use modification time of FILE instead of current date
-u      Use UTC instead of current timezone

+FORMAT specifies display format string using strftime(3) syntax:

%% literal %             %n newline              %t tab
%S seconds (00-60)       %M minute (00-59)       %m month (01-12)
%H hour (0-23)           %I hour (01-12)         %p AM/PM
%y short year (00-99)    %Y year                 %C century
%a short weekday name    %A weekday name         %u day of week (1-7, 1=mon)
%b short month name      %B month name           %Z timezone name
%j day of year (001-366) %d day of month (01-31) %e day of month ( 1-31)
%N nanosec (output only)

%U Week of year (0-53 start sunday)   %W Week of year (0-53 start monday)
%V Week of year (1-53 start monday, week < 4 days not part of this year)

%D = "%m/%d/%y"    %r = "%I : %M : %S %p"   %T = "%H:%M:%S"   %h = "%b"
%x locale date     %X locale time           %c locale date/time

```
> 1 votes

# Answer
try this:

tomorrow=$(( `date +%s` \+ 86400 ))

date -d @$tomorrow +%Y%m%d
> 0 votes

---
Tags: tasker, shell, command-line, date-and-time
---


# Question
Title: Managing Contacts without linking any accounts
A friend gave me her Samsung Galaxy S7 when she upgraded her phone. We ported my number onto her account, and now I (a long-time flip-phone user) am trying to figure out this new device.

Important context: I do not intend to sync up my gmail account to the phone. I am combating an internet addiction by refusing to have the internet in my pocket constantly. Plus, I find it creepy when devices "talk" to each other; it makes me feel powerless and confused if what I do in one setting has effects in another, unrelated setting. In other words, I want the improved reception and the threaded text messaging of the new phone, but otherwise want it to be as "dumb" as possible for my peace of mind.

I spent all last night manually adding contacts to the device. The whole time, my friend's gmail was still synced up, and her emails kept popping into my view. So this morning, she removed her linked accounts. As soon as she did, all the contacts I had manually entered the night before disappeared, the contacts I had edited the night before reverted back, and a bunch of them became "Read Only" contacts!

This presents several problems/questions:

* Did the contacts I manually entered go into HER gmail account? She doesn't need all my personal contacts!
* Do I have to manually re-enter them, and if so, how can I be sure that they are being saved to my SIM card? (In case I ever get a new device, it would be nice to simply move the SIM card and keep the contacts.)
* The "read only" contacts are a good mix of ones I want to delete and ones I need to edit (fix misspelled names, add new numbers). How do I manage them? If she un-linked her accounts, why are these "read-only things" still there?

Again, I am looking for solutions that involve only my phone and do not involve linking external accounts! It would be super weird if all my gmail contacts appeared in my phone. Phones are for phone stuff and email is for email stuff, and having them bleed into each other seems like poor management.

Incidentally, there is now a message on my phone telling me that my data is not backed up. This confuses me, because while I thought "data" meant "bits of information", all my friends corrected me that nowadays "data" means internet usage, and I should just be able to "turn data off" so my phone isn't constantly online. But obviously it means "bits of information" if it is something that can be backed up.

# Answer
The locations mentioned below where you can find settings may vary across Android versions.

> **Did the contacts I manually entered go into HER gmail account? She doesn't need all my personal contacts!**

Where do contacts go can be selected with *Contacts* -\> Three dots menu -\> *Manage contacts* -\> *Default storage location*.
Among other options, you have *Samsung account* (if set), *Phone*, *SIM card*, *Google* (if set), *Outlook* (if set). This is exactly what I see in my phone (I have actually three Google accounts).
I guess (did not try it) that if the default storage location is a Google account, and it is removed, the default changes automatically. So your current setting would be probably not indicative of what it was before. The best way to check that is entering her gmail account in a web browser, and see if the contacts you added are there.

> **Do I have to manually re-enter them,**

If they went to her Google account, you have several options to avoid manually re-entering them. Depending on the number of such contacts, the economics equation on what is most convenient may vary.
You can take advantage of *Contacts* -\> Three dots menu -\> *Manage contacts* -\> *Import/Export contacts*. I have used that to transfer `csv`-formatted contacts list from an iPhone to Samsung, avoiding any additional app.

> **and if so, how can I be sure that they are being saved to my SIM card? (In case I ever get a new device, it would be nice to simply move the SIM card and keep the contacts.)**

See above.
Plus #1: You can use *Contacts* -\> Three dots menu -\> *Settings* -\> *Contacts to show*. You can select any contacts source to be used when showing contacts. You can even select a Custom combined list. This is what have. Then, whenever you change the source, you would be showing/hiding contacts, and that can tell you the location of each one.
Plus #2: Whenever I *Edit* a contact, at the top of the screen I see the source of that Contact (Phone, Google, Skype, WhatsApp, etc.) You should have to tell first the appropriate contact display list as in *Plus #1*.

> **The "read only" contacts are a good mix of ones I want to delete and ones I need to edit (fix misspelled names, add new numbers). How do I manage them? If she un-linked her accounts, why are these "read-only things" still there?**

Not sure. Never faced this, but I found a variety of culprit sources of Read-only contacts out there, and correspondingly different solutions. E.g. https://www.quora.com/How-do-I-delete-read-only-contacts-from-my-Moto-G2
> 0 votes

---
Tags: contacts, samsung-galaxy-s7
---


# Question
Title: Is there a downside to keeping the HDR mode on my Moto G phone camera always on?
My moto G allows HDR (in the camera app ) in three settings:

* Always on
* Off
* Auto

I was wondering, what's the downside to keeping HDR always on? Is there such a thing as spoiling a shot with HDR when none was needed?

I sometimes feel the HDR in Auto does not always kick-in in situations where it ought to have!

# Answer
> 3 votes
**No downside to it (barring some scenarios)**

HDR increases the dynamic range between the darkest and brightest colours in your photo and there's no downside to it apart from lag (that may be fixed by using camera apps that respond faster -you would need to experiment)

But it's not a silver bullet to increase the quality. Some situations where it spoils rather than help :

* If the picture you wish to take isn't already brightly lit with a bright spots and dark ones (like shadows) , it's better to avoid HDR. In this case, HDR photos look artificial. As Izzy pointed out in comments, pictures that don't have much contrast between dark and bright (low dynamic range) don't come out well. HDR can only enhance range not create . Try taking a picture indoor with subdued lighting with HDR to see how poorly it comes out.
* If you or the object is moving, the lag may cause blurry photos (HDR takes 3 photos – normal exposure, under-exposure, over-exposure – and combines them. (In professional cameras it takes even 7 photos). If the object moves in this process , it becomes evident as blur. This is called ghosting (anti-ghosting algorithms may be able to compensate, but they have their limits). Same result if you move while taking the shot.
* Also if your picture has bright colours already like close up of a bunch of flowers in a garden, it adds artificiality.

For a technical understanding see this from our sister site What is HDR

You may feel that HDR is not kicking in when it is required, but then it is the software which decides when it should, so better leave the judgement to it ! (Setting on *Auto*)

# Answer
> 2 votes
I've experienced that HDR can spoil human skin color very badly (it becomes yellow, green orblue depending on neighbor color near the body-background border). So if you happen to photograph people on sunny days a lot, AutoHDR may sometimes deliver an unnatural outcome to you.

# Answer
> 0 votes
As a semi-pro photographer, I've used HDR mode near-exclusively across many phones over the last 10 years, and it's exceptionally rare that I won't have it always on. The quality benefits almost always outweigh the cons.

By far the #1 caveat of HDR mode is that it takes longer to take a photo:

* First, it takes 2-3 times as long just to take the photos it'll need to blend together, which makes it nearly impossible to use when anything is moving. In low light especially that can be ages, though Moto has manual ISO/shutter speed to alleviate that. It'll either be a blurry mess or won't be able to HDR anything, or worse, both in different parts of the image. All of the major camera apps (Google's, Apple's, and Samsung's) are much better at detecting that than they used to be, and just throw away the HDR.
* Second, it takes ages to process the HDR into the final image. That means you can only take 2-3 in quick succession, and then the camera will tell you to be patient while it does its thing. The faster the phone is, the faster it processes. Low-end phones usually don't even have HDR because they're just too slow and memory starved, but only the highest-end flagships will be fast enough that you won't notice. The Galaxy S8 was the only one I could only rarely get to pause. My Nexus 5X was infuriating because if I left the camera app or put the phone to sleep, it sometimes would kill the app for taking too long while it was HDRing, leaving a corrupted photo. Along the same lines, battery life suffers considerably vs taking straight photos, as well.

There are a few other negatives:

* If you happen to get a sunbeam in just one tiny corner, app will consider the whole shot overexposed and significantly reduce the saturation and contrast of the rest of the photo to compensate. I've yet to encounter a camera app that offered a region of interest for its HDR analysis. You do need to pay attention to framing; these are the only times I wish it'd give me a raw mode.
* If shots are slightly rotated, you can get some VERY strange artifacts.

The benefits are great, though:

* You get detail everywhere instead of blown highlights and lowlights, without having to mess with raw mode or manual HDR blending.
* You often get improved white balance.
* You almost always get a significantly less noisy and more detailed image, simply due to the nature of blending 3 separate shots. The noise pattern will always be slightly offset, since it's never held perfectly still. High-ISO shots benefit enormously, no more need for extra-long exposures with high likelihood of blurring.
* In contrast to the other answer, I've found that HDR mode also turns on a "magic fix" mode. Just like high contrast photos are compressed, low contrast is expanded somewhat. You can only do so much in an 8-bit format, but HDR definitely gives you either a better immediate shot or a much better base to start from than instant photos.

---
Tags: camera, motorola-moto-g
---


# Question
Title: Is there any Netcat like application available in Android OS by default, like most of the Linux systems?
In most Linux systems Netcat is installed by default. Is any Netcat-like application installed by default in Android OS?

# Answer
In recent Androids (e.g. Nougat and later), you don't need to install busybox for running netcat; it is enough to get a terminal and then type:

> `toybox nc [options]`

and you will have the usual netcat functionality.
> 8 votes

# Answer
Not natively. You first need to install a Terminal application like "Termux" https://play.google.com/store/apps/details?id=com.termux&hl=en then "Busybox" https://play.google.com/store/apps/details?id=stericson.busybox&hl=en. Here is some info on all of the tools included in the Busybox package https://www.busybox.net/downloads/BusyBox.html

There are also several other Netcat style applications available from the Google Play store - https://play.google.com/store/search?q=netcat&c=apps&hl=en
> 6 votes

# Answer
There is a simple GUI app anyone can use without prior knowledge in netcat.

\[https://play.google.com/store/apps/details?id=com.nikedlab.netcat&hl=en\]\[1\]

It also has port scanning facility with filtering ports and timeout.
> 0 votes

---
Tags: linux
---


# Question
Title: Change DNS for mobile data without using an app
(My phone is rooted and runs Android 5.1)

How can one change the DNS addresses of mobile data (and persistently, if possible) without the requirement of an app?

# Answer
> 18 votes
I did not find a way to reliably do it without an app.

I often use OpenDNS Family Shield, but sometimes it blocks me to visit some particular hacking site and then I need to quickly and easily change the DNS servers.

I used to use Set DNS but it stopped to work in Android 4.3 and further, so I created Override DNS, a new app which mimics Set DNS' behaviour, but it's updated to work even in Lollipop. It has some other nice feature like a PIN protection ad a Wi-Fi SSID filter, too.

The only way I can see to do it **without an app** is something like an `iptables` rule to redirect any traffic going to udp/53 to some other ip. A similar procedure is shown in a XDA thread.

I paste here the `iptables` rules for completeness (I did not tested them)

```
$IPTABLES -t nat -D OUTPUT -p tcp --dport 53 -j DNAT --to-destination 208.67.222.222:53 || true
$IPTABLES -t nat -D OUTPUT -p udp --dport 53 -j DNAT --to-destination 208.67.222.222:53 || true
$IPTABLES -t nat -I OUTPUT -p tcp --dport 53 -j DNAT --to-destination 208.67.222.222:53
$IPTABLES -t nat -I OUTPUT -p udp --dport 53 -j DNAT --to-destination 208.67.222.222:53

```

Everything directed from the Android device to any IP, port UDP and TCP 53 is redirected to `208.67.222.222` which is one of OpenDNS' DNS server.

These commands should be placed in a script which is run at every device boot. That functionality depends on your specific ROM. I don't know if something similar can be done in a stock ROM without using an app. Override DNS solves this problem, too.

# Answer
> 10 votes
Starting with Android 9 Pie it is possible to change DNS globally, provided they support TLS. Just go in

`Settings → Network & internet → Advanced → Private DNS`

# Answer
> 3 votes
This info is from 2014. But it might still work. I am not in the position to test it at the moment, but since you are rooted. You could try adding the dns settings to the build.prop file and see if it sticks. Adding the following to the build.prop file should add google as your DNS server.

> ```
> net.rmnet0.dns1=8.8.8.8
> net.rmnet0.dns2=8.8.4.4
> net.dns1=8.8.8.8
> net.dns2=8.8.4.4
>
> ```

Taken from this post on the Nexus 5 forums over on XDA. That post can be found here. Item number 21 is the DNS settings.

# Answer
> 1 votes
That's not possible without an app, it has to be with an app. Second, you need root access in able to change 1G/2G/3G/4G DNS.

---
Tags: mobile-data, 3g, dns
---


# Question
Title: How to move data between 2 Android phones?
I'm trying to move data from a Pixel3 to a Pixel1.

**Bluetooth**

I am able to pair the devices, but for some reason they are disconnected as soon as I switch to another app (to a Files app to copy data). I'm not seeing any errors.

**USB**

I am able to connect the devices via USB, but only one way! So I can move data from Pixel1 to Pixel3, but I'm not able to move data from Pixel3 to Pixel1. In settings there is a "USB controlled by..." switch, but when I press it, it tries to switch for 10 seconds and then times out. Again, no error message to tell me what went wrong.

Surely there must be a way to move data between 2 Android phones? I don't want to use a computer/cloud as an intermediary step.

# Answer
> 0 votes
For the first question, where you did connect between two devices? It's highly recommended you to build connection in Service as it can be run in background for long time. If you're connecting two devices simply in Activity then when it's being paused or destroyed, Your connection will be destroyed either.

---
Tags: data-transfer
---


# Question
Title: How can I remove the "Install Google Play Games" prompt in apps?
I uninstalled the Google Play Games app on my phone to get rid of the other annoying prompt, but now I'm left with this one. Is it possible to remove the prompt shown above?

# Answer
It's really frustrating to see that pop-up every time we play a game. There's a solution if You've a rooted phone with Xposed installed in it. It's a Xposed module which will stop that pop-up. Be careful if not rooted.

Link - No Play Games - Xposed Module
> 3 votes

# Answer
**No**, some games as well as some apps need the Google Play Games and Google Play Services' latest version. So it may ask you to update or use to authenticate.

The entire data of the game is stored in your mobile and Google server. The game maker's server didn't store any score or data. So it needs you to install Play Services not only for this but also to use some API calls to your account info.

You cannot remove it.
> 2 votes

# Answer
I went into Androud Notifucations menu and dusabled notifications from the Google Play Store and that did the trick for me.
> 1 votes

# Answer
Not all apps depend on Google Play installation, despite asking for it. If I press Cancel when the prompt pops up, the game still loads and I'm able to play. But I can't get rid of the pop-up. It disappeared after a long while of ignoring it on other apps, but this new game just keeps asking for it. It also loads and I'm able to play.
> 0 votes

# Answer
Tell the game developer to correct his sign in algorithm. If the game prompts for Play Games install, the developer set it to prompt for it. It is an extra command to give to let you see this prompt.
> -3 votes

---
Tags: google-play-games
---


# Question
Title: Google App always opens google.com on chrome
When I open the Google App, it promptly opens Chrome and switches to google.com. I cannot access anything on Google App since it immediately switches to Chrome.

# Answer
> 2 votes
Same happened on my sister's Samsung Tablet. Turned out it was caused by the Qustodio Parental Control app. It blocked safe search which was forcing the Google app to open google search in Chrome because google would not allow the parental control app to enforce safe search and monitor its app .

Don't know if its that but here is Qustodio help article telling that : https://www.qustodio.com/en/help/article/2832549/ (under heading "Safe searches on Android")

If you don't have Qustodio Parental Control app, maybe it could be some other app that high control on your device. Qustodio shows at this link what i mean by high control (ex. Apps with usage access, Accessibility, etc) - go to the step called "11. When prompted to Activate app supervision, choose Activate Now.".

# Answer
> 0 votes
Actually from the looks of things, Google has implemented Chrome custom tabs feature. The Google app now opens search results as Chrome Custom Tabs.

According to Google Search help:

> You can open web pages directly inside the Google app on your Android device. This lets you:
>
> * Open search result links faster
> * Stay in the Google app
> * Copy or share a link, re-open a link in your browser, and more

To be able to *open web pages in app* you need:

* **Google app version 5.12+**
* To go to Settings \> Accounts & privacy to toggle on the new ‘Open web pages in app’ option:

*Pic source Reddit*

If the above conditions are met try troubleshooting by

* *Clearing app defaults* in Settings

1. Open your device's Settings app Settings.
    2. Under "Device," tap Apps .
    3. Tap the app that you no longer want to be the default (i.e Chrome)
    4. Tap Open by default and then clear defaults.
* Clear Google app cache and(or) data (Settings \>\> Apps \>\> Google App \>\> Clear cache/data)

---
Tags: chrome-for-android, google, google-apps, samsung-galaxy-s-8
---


# Question
Title: What internet browsers are able to provide text wrapping (fitting the screen) when zooming (beside Opera)?
I am not sure I am using the proper terms, therefore I will exemplify them with screenshots. *Please help me improve my terminology if I am wrong.*

(I'm not sure Browser which always allows scale/zoom? is about the same topic, as I don't grasp the meaning of terms like " viewport metatag parameters user-scalable" and "meta viewport tag".)

---

Taking a Wikipedia page:

Simply **zooming** it - whether with forced zoom enabled or not - would give this (like in Chrome), where the font size appears larger but the text body is not seen in its entirety, as it **doesn't fit the screen**:

while what I would like to see would be this - what I call text fit or text wrap, where **the font is enlarged without losing the entirety of the text body**, which in this case **fits the screen**:

---

I know this is available in Opera. I would like to know what other browsers have this feature.

# Answer
I will also try to answer my question - and update the answer if possible.

---

Beside **Opera**, which seems to provide this by default, I have seen this working in the **Yandex** browser, but not by default. I has to be enabled under ***Settings - Text zoom and auto-fit***. (It also has a feature that I personally like, of sliding horizontally across the scren to switch tabs.)

---

**UC Browser** has this text-fitting feature by default. (Another interesting feature it has is that sliding horizontally across the screen would navigate within the same tab to previously visited pages: left-to-right=Go back one page; righ-to-left=Go forward one page.)

---

Samsung Internet Browser does it too, but the font size has to be set manually in settings (it won't re-fit the page by simply zooming).
> 1 votes

---
Tags: browser, zooming
---


# Question
Title: Increase internal memory of Samsung J2 prime
I bought Samsung J2 prime phone. Some details of that phone as follows.

Model - SM -G532G

Android version - 6.0.1

I heard that earlier it came with good feature that allow us to format external SD card as internal storage.

I tried to format my new SD card as internal storage. But it does not give that option in my phone.

Is there anyone who has similar experience to solve this problem?

Thanks

# Answer
Try formatting the sd card as ext2, default sd card storage type is fat32 i think?, the android may not recognize it as a usable sd card, now a notification may appear saying : (SD CARD NAME) is not recognizable, it need to format or something close to that, a option may appear: Format as INTERNAL STORAGE and Format as PORTABLE STORAGE, pick the "Format as INTERNAL STORAGE"

EDIT: I think your android was flashed because of bootloops, i dunno?, It remove the option to format as internal storage
> 0 votes

---
Tags: samsung, 6.0-marshmallow, internal-storage
---