text:
Protector for camera lens window on HTC Desire Z? (protect from scratches)
Given that this phone provides no protection against scratches on the window for the camera lens, unlike for example, the Nokia N82 (great cameraphone which I also own), are there any adhesive transparent protectors that can be placed over this window but which would not affect image quality?
I've bought the screen and body protector from zagg.com by recommendation and am pleased with that but this offers no protector for the camera itself. (see: https://android.stackexchange.com/questions/2935/best-screen-protector-htc-desire-z )
I would think that protecting the camera lens window on this phone (and many others) would be more of a priority as this is actually functionality of the phone that needs to be protected - i.e. clear photos and video, rather than cosmetic - which most screen protectors do a good job of but fall short on the camera protection, it seems.

Surprised no-one is interested in protecting their mobile phone cameras. Really surprised. Anyone?...

@Rob: given that most people does not use their phone camera to take high quality images, I'm not that surprised.

I replace my phone every year, surely it will last me that long?

@Ivo Flipse you're fortunate. Do you buy sim-free or does your operator contract offer you good deals in this?

They discount me for about half the price of the phone, so I still pay a considerable amount, but in exchange I get to have new phones each year :-)

@Lie Ryan: Disgree: This 'phone is many megapixels and takes 720p video. Sure, it's not an SLR but it is capable of taking good pictures, not pixelated dull pictures when phone cameras first came out. Nokia managed a protector with the  N82 and N95, why couldn't HTC?

I can understand your concern, but I've also never seen a film that specifically covers the camera lens window. I haven't used a Zagg, but other screen films I've purchased in the past included the excess film on the card - if the Zagg included this you could possibly cut your own square or circle to cover the lens window. Otherwise I'd suggest checking your retailer of choice for another inexpensive film that you can use to cut your own window from.
In the past I've purchased screen protectors on clearance from places like Staples, Walmart, etc for obsolete devices so I could cut them to protect camera screens, etc.

+1 and accepted: Cutting out a trimmed cornered rectangle from excess film is exactly what I did, in the end. It took me a few tries to get it just about right to fit though :) The final version was OK and by then I was tired of trying so am happy with that. Video and film looks OK through it though I'm reluctant to peel it off to compare without this protector, as the cutout I made may reduce its adhesiveness effectiveness doing so when I re-apply it to the lens window. :)


text:
Could not see "persist.service.adb.enable" value from default.prop of Android device?
I read some guide to get the persist.service.adb.enable value, and it said that it belongs to default.prop file on device. Its content should be:
#
# ADDITIONAL_DEFAULT_PROPERTIES
#
ro.secure=1
ro.debuggable=0
persist.service.adb.enable=0

But when i connect device to PC (Linux), try to pull out this file from device (both emulator and Samsung Galaxy Nexus), the content of default.prop file is only:
#
# ADDITIONAL_DEFAULT_PROPERTIES
#
ro.secure=1
ro.debuggable=0
persist.sys.usb.config=mass_storage

So I could not see persist.service.adb.enable. Could anyone tell me why, and how can i got it?

According to the official android documentation, another way to get this value is to use the getprop command. (Link takes you to search results for getprop.)
I have not tested this.
I'm assuming you want to also set this value, not just get it? You can use the command line on the phone to do so.  (Disclaimer: I've only tried this in Donut, Froyo, and Gingerbread.)
setprop persist.service.adb.enable 1
This is the USB debugging setting; you can also just turn on USB debugging.

In ICS, persist.service.adb.enable=0 has been replaced by persist.sys.usb.config=mass_storage, so you if you want to eanble ADB, you can setprop persist.sys.usb.config=mass_storage,adb

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/

sort: votes


text:
HTC Desire stuck on HTC Logo on start up!!! Only able to open recovery
I was trying to root my HTC Desire 820 device and followed all steps as recommended by the XDA Thread.
Now my issue is that it is stuck at HTC logo screen and not moving forward at all.
Below are the steps I followed to recover:

Tried recovery, Factory Reset, Wipe Dalvic Cache, wipe all. ----> No difference
Tried recovery, reflash recovery---> No difference
Volume Up + Down + Power Button ---> performs reset,..again stuck on logo
Tried battery full charge ---> no effect

Can anyone help please?

if u are gonna down vote, then at least mention why..??

How long are you waiting? First boot can take 10, 15, even 20 minutes or more after a factory reset.

waited about 1 hr...:(

How did you get in this condition, I am guessing due to your tags you were attempting to root? Can you describe what you did prior to it getting in this condition (be specific, what TWRP version, SuperSU version, methods used, etc. just saying "recommended by XDA thread" tells us nothing)? Can you access the bootloader, fastboot, recovery, etc? Is your bootloader locked or unlocked, and are you S-ON or S-OFF?

I ended up wiping my complete phone, even the OS...
had to go to the service center to get it fixed...
Now fixed...No resolution given from service center..

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
Can't get past android initial setup Wizard, after factory reset (Even after waiting over 24 hours)
Currently looking for help because I am truly stumped. Device is a Galaxy J3 Emerge, it was reset to factory default settings. It seems that the password for the Google account was also reset before the factory reset. After researching online, I found out that the if the account password is reset before the factory reset is applied. You will have to wait 24 hours before attempting to sign in again.
So I sat the phone down after reading the message about waiting 24 hours. I left it there for 4 days. Got the error on Sunday, went to work for the entire week and tried again on Thursday. The same message is displayed! Reboot and tried again, still the same message.

dont know if you found an answer yet or not, but i had the same problem with a galaxy player 5.0. Not sure if your solution would be much different, but I downloaded Odin, and flashed the software, and it works perfectly now.


text:
Network issues with Jio sim on Sim slot 1 and Airtel on Sim slot 2
I have Jio sim on Sim slot 1 and Airtel on Sim slot 2.Both the slots are 4G enabled and have VolLte. Whenever I turn on Airtel data , Jio goes out of coverage and unavailable. What would be the problem ? Is it a network issue?

It is simply compatibility issues.
A quick Google search shows that AirTel use FDD-LTE as their standard, while Jio use TD-LTE.
Due to current technology restrictions, TD-LTE can't stay on when FDD-LTE cellular data connection is established. So it's absolutely normal that your Jio card runs out of service when you turn on mobile data for AirTel.


text:
How can I make a symlink (or equivalent) inside /storage/emulated/0?
So, I have rooted my phone (GT-i9505 with android 5.0.1) and I would like to move my WhatsApp folder to my external SD card to save 3GB on internal storage. This is what I tried so far.
EDIT: solution found
So, after all the option #2 seemed to be the right one, but it needed some tweaks to make it work. As suggested by Irfan Latif , the problem was that the mount point has to be created in a global mount namespace, otherwise other apps will not see it, so the commands to use are:
su -mm
mount -o bind /data/sdext2/AppData/WhatsAppMedia /sdcard/WhatsApp/Media

But that may not be enough! It still didn't work until I made sure that the namespace of root was global. To do that I don't know any universal way, but what worked for me was going in the SuperSU app settings and uncheck the option mount namespace separation.
That really depends on the SU app that you have installed.
Option 1: symlink
The first thing that I thought was to make a symlink, so that was the command that I used:
ln -s "/data/sdext2/AppData/WhatsAppMedia" "/sdcard/WhatsApp/Media"

I had already created a second partition on my external SD card (ext4) that is mounted in /data/sdext2
However that returns operation not permitted when using the terminal emulator (yes I did su) and an error with any root file manager app that I tried.
After some research I figured out that for some reason, although /storage/emulator/0 is in an ext partition, it is treated in a differente way so that it doesn't support symlink inside (correct me if I'm wrong).
So, onto the next thing
Option 2: mount
According to this question, the following command should mount the folder on external SD card in another folder in the internal SD card, without the need for a symlink
mount -o bind "/data/sdext2/AppData/WhatsAppMedia" "/sdcard/WhatsApp/Media"

However, while running the command doesn't return any error the folder in /sdcard/WhatsApp/Media is still empty, so I don't really know how to handle this.
Option 3: symlink in /data/media/
I followed the instructions on this post and made the symlink in /data/media/0 instead of storage, so using this command:
ln -s "/data/sdext2/AppData/WhatsAppMedia" "/data/media/0/WhatsApp/Media"

This time the link is created! However ...
Although an ls in /data/media/0/WhatsApp/Media revealed that the link was successful, cd /sdcard/WhatsApp/Media returns a very irritating no such file or directory and that is confirmed by the file explorer that shows an empty folder with a blank file icon.
My thoughts
First of all, I now discovered that I really hate android. Now, stated this, here's what I think might help doing:

moving my sdcard files somewhere else: if the rest of the root filesystem supports symlink (which it seems like it does), I might even move the folder /storage/emulated/0 somewhere else and make a new link to it, but I don't know if that would solve the problem

That's it for now, I will update with more options when I think about them...

ANDROID STORAGE:
On Android 5:
/sdcard >S> /storage/emulated/legacy >S> /mnt/shell/emulated/0
/mnt/shell/emulated >E> /data/media

On Android 6+:
# USER-ID of current user in case of multiple users, normally "0"

# for apps
# VIEW is one of "read" or "write" and /storage to VIEW bind mount is inside a separate mount namespace for every app
/sdcard >S> /storage/self/primary
/storage/self >B> /mnt/user/USER-ID
/mnt/user/USER-ID/primary >S> /storage/emulated/USER-ID
/storage/emulated >B> /mnt/runtime/VIEW/emulated
/mnt/runtime/VIEW/emulated >E> /data/media

# for services/daemons/processes in root namespace
/sdcard >S> /storage/self/primary
/storage >B> /mnt/runtime/default
/mnt/runtime/default/self/primary >S> mnt/user/0/primary
/mnt/user/0/primary >S> /storage/emulated/0
/storage/emulated >B> /mnt/runtime/default/emulated
/mnt/runtime/default/emulated >E> /data/media

>S> for symlink, >E> for emulated and >B> for bind mount
In short, /sdcard points to /data/media/0 through FUSE or sdcardfs emulation. This is to restrict unauthorized access of apps/processes to private media on SD card. Read Android's Storage Journey.
SYMLINKS:
Now /sdcard is not a real but emulated storage which represents a FAT/vFAT/FAT32 filesystem (for backward compatibility and permission management) which doesn't support symlinks (and other things including *NIX permissions and ioctls like FS_IOC_FIEMAP). So the Option 1 and 3 of yours won't work whether you create symlink directly on emulated storage or try to emulate the symlink already created on ext4.
BIND MOUNT:
This is the commonly used alternate of symlink for FAT family of filesystems. What you have tried in Option 2 should work. This is what apps like Apps2SD do. But there is again a constraint: mount namespace. You need to bind mount in global/root mount namespace so that the mount is visible to all apps:
su -mm -c 'mount -o bind "/data/sdext2/AppData/WhatsApp Media" "/sdcard/WhatsApp/Media"'

On Android 6+ this needs to be bind mounted on each VIEW (default, read, write) separately for all apps to work.
You can make it permanent by setting Mount Namespace Mode to Global in Magisk or by disabling Mount Namespace Separation in SuperSU. For details see this answer.

RELATED:

What is "/storage/emulated/0"?
How to bind mount a folder inside /sdcard with correct permissions?

Install MiXplorer from this XDA thread here → browse to the path using MiXplorer → click on + at the bottom → choose "Create symbolic link".

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
ping <ip> fails, but ping -I eth5 <ip> works in Android shell
I am trying to enable Ethernet on my Android-7.1.2. Now, it can acquire ip address from DHCP server. ifconfig shows that the Ethernet port can receive lots of packets, but just sends a few out, as below:
  eth5      Link encap:Ethernet  HWaddr 00:04:9f:04:4d:51

  inet addr:10.193.20.83  Bcast:10.193.20.255  Mask:255.255.255.0

  inet6 addr: fe80::204:9fff:fe04:4d51/64 Scope: Link

  UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

  RX packets:10513 errors:0 dropped:0 overruns:0 frame:0

  TX packets:22 errors:0 dropped:0 overruns:0 carrier:0

  collisions:0 txqueuelen:1000

  RX bytes:926773 TX bytes:2204

  Memory:1aea000-1aeafff

And ping -I eth5 10.193.20.64 can work:
layerscape:/ # ping -I eth5 10.193.20.64

PING 10.193.20.64 (10.193.20.64) from 10.193.20.83 eth5: 56(84) bytes of data.

64 bytes from 10.193.20.64: icmp_seq=1 ttl=64 time=0.345 ms

64 bytes from 10.193.20.64: icmp_seq=2 ttl=64 time=0.354 ms

However, ping 10.193.20.64 fails with:
layerscape:/ # ping 10.193.20.64

connect: Network is unreachable

And here is my route:
layerscape:/ # route -n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

10.193.20.0     0.0.0.0         255.255.255.0   U     0      0        0 eth5

What am I losing?

Finally found the solution for this issue:
layerscape:/ # ip rule add from all lookup main pref 0


text:
LG P500 Rooting Isuue
I got a LG P500 Android device and I want to root it.
The device is on stock ROM, android 2.3.3 V20e.
Should I use SuperOneClick? And if so, how can I reboot my phone after the SuperOneClick procedure is finished? If I power off my device and then turn it back on, will it break it, or is this "reboot"?

Just few minutes before I again rooted my LgP500 running v2.3.3 stock v20d. I used SuperOneClick v2.3.3 and rooting was just a cake walk. I charged my phone fully and installed Lg's drivers and enabled USB debugging support. In the SuperOneClick's UI, I just clicked Root and waited for few tense minutes. Phone restarted automatically and after that the UI said rooting was successful.
It is not clear what you ask about booting, I just switched on normally and phone works normally.
Update: Found a link as asked...

Download root master (.apk) thent install it and start rooting, it creates an app 'super user' which gives root permission, and enjoy root
Link:- http://www.9apps.com/android-apps/Root-Master/


text:
SSH server when phone is sleeping: possible?
I an running the Dropbear SSH server on CyanogenMod 7.2.  Is there any way to setup my phone so that I can connect to it over wifi even when it is in sleep mode?  I don't mind if there is a small hit on the battery.
If not, is there a way to at least allow an rsync over ssh to proceed after the screen blanks out?  The strange thing here is that if I initiate an ssh shell connection, the command line is still usable after the phone goes to sleep, however it is very slow (changing the CPU governor didn't seem to make a difference).  Rsync seems to freeze when the phone sleeps.
I tried echo hello > /sys/power/wake_lock, to no effect.

Have you setup your WiFi standby policy to keep it permanently on? Many devices automatically turn it off when the screen goes off. Check in Settings->WiFi->Advanced (via menu button), and set it accordingly if it's not.

@Izzy: Yes.  I set Wi-Fi sleep policy to Never.

OK, then I don't know. Might be worth trying a different SSH server app, though.


text:
Is there any relation between processor clock speed and heating effects?
I'm planning to buy a new android smartphone, and I've heard that while high processor clock speeds are good, they are also accompanied by high heating effects.
Is there a way I can obtain the heat (in watt possibly) and the clock speed (in GHz) of the processor?
(I'm quite new here, and I'm not really a very informed person when it comes to anything digital technology).

I think this depends on the chip of the CPU, for example Snapdragon chips are known to produce very good performance and a considerable "trade off" with heat production, while Exynos are relatively good and relatively less heat. This may be because of the power (current) they need to keep the chips going. For detailedCPU information (eg clock speed, cpu frequency etc) you may use CPU-Z to get that kind of information. However nowadays the main focus is utlising the chip with much less power (aim of reducing overheating)  Also dont get trapped to think more GHz = better performance

@xavier_fakerat Thanks for the info, and of course, I've seen that clock speed doesnt always mean more GHz. In that case, on what factors does speed depend on?

I guess the technology employed in the chip, some use threading to better performance, multi-core sym, the type of activities e.g multitasking, gaming  (higher number-core processor is faster than a lower number-core processor only when it’s running an app that takes advantage of its abilities or when you’re multitasking) Other factors to consider GPU, RAM they work together to better execute the processes. If planning on serious multitasking etc go for a multi-core processor, more RAM better GPU (but power intensive processes mean more heating).  You may be able to make a compromise here :)

tl;dr There is a direct relationship between the amount of power used by a processor and its clock frequency. The higher the performance , the higher the power consumption and heat generated
 (meaning increased clock speeds attract more power consumption and subsequently increased heating)

In a nutshell the quicker all the transistors (gates) are switched in
  the chip the more power is used. How often the transistors are switched is controlled by the clock frequency.

For detailed CPU information (e.g clock speed, cpu frequency etc) you may use CPU-Z to get that kind of information.

Nowadays chip makers incorporate multiple functionality in a now called system on chip (SoC).
These chips which power smartphones now consist of CPU (central processing unit), GPU (graphics processing unit), memory controller and DSPs
(speciliased video or audio chips). So the overall "performance output" will depend on how manufacturers vary these components.

Currently there are four major android smartphones SoC makers;
  Qualcomm (Snapdragon), Samsung (Exynos), MediaTek (MT and
  Helio processors) and Huawei (Kirin chips)

All of these manufacturers make SoCs with segmentation in mind i.e cost performance etc
Nowadays the main focus is utilising the chip with much less power (aim of reducing overheating)
So how do manufacturers improve power-effeciency while improving performance?

Power efficiency and heat dissipation are everything when it comes to
  mobile CPUs and they are also factors that influence the performance
  of a mobile CPU

CPU designers employ a variety of ways to accomplish this:

throttling the CPU when it becomes too warm (reducing CPU clock frequency)
heterogeneous multi-processing (HMP)
thermal framework (e.g ARM’s
Intelligent Power Allocation , that can dynamically manage the thermal budget of a System-on-a-Chip – reallocating the thermal budget from the CPU to the GPU (and visa versa) when necessary)

Overally what this means is that that by lowering the clock frequency the power consumption is also lowered,
Although modern CPUs have various methods to minimise overheating, sometimes it depends on how the device is being used, gaming etc, so it partly depends on user's end

Credits: Android Authourity

Bonus info:
Cores versus Clock Speed

A core is a processing unit within a CPU. Each one can handle tasks
  independently, or can be combined to provide more power to
  particularly intensive tasks.

The clock speed measures, in gigahertz, the speed at which a CPU is able to process instructions. While it is tempting to think a more GHz equals better performance its certainly not the case.
A 3 GHz processor is faster than a 2GHz processor only when it’s running an app that takes advantage of its abilities or when you’re multitasking.
But generally, newer version of a processor is likely to be faster than an older one, even at slower speeds; a CPU based on a newer architecture is likely to be faster; and the number of cores also makes a difference.
There is some disparity when trying to compare these directly (e.g Exynos 7 Octa  is vastly different from the Snapdragon 805 in terms of architecture. Compared to the quad core architecture of the 805, the Exynos 7 Octa comes with two sets of quad ARM Cortex A53 and Cortex A57 cores on board, with CPU loads alternating between the two, or utilizing them completely depending on the computing power required)
Thus benchmark tests are often carried out.
Hope this helps
References

http://www.androidauthority.com/soc-showdown-2016-732870/
http://wccftech.com/galaxy-note-4-snapdragon-vs-exynos/
https://www.quora.com/How-do-phones-cool-its-processor
http://www.androidauthority.com/arm-cortex-a73-gary-explains-694455/
http://www.androidauthority.com/arm-vs-x86-key-differences-explained-568718/
http://www.makeuseof.com/tag/jargon-buster-the-guide-to-understanding-mobile-processors/
http://www.androidauthority.com/what-is-cpu-frequency-scaling-672253/

Thanks for your answer (sorry for the delayed response). Do phone sellers disclose their benchmark results anywhere, so I can compare them and decide whether I should buy it or not?

@PrittNot really, but you as the end user should research on the gadgets before you buy them. Good places to start: http://www.techradar.com/reviews/phones, http://m.gadgets.ndtv.com, http://www.gsmarena.com/reviews.php3 etc.


text:
Titanium backup and TWRP, custom ROM
I'm trying to install a new custom ROM on my smartphone and first I need to make a backup. I was wondering, if I use Titanium backup do I need to make TWRP?
I got a bit confused researching online and watching and reading all those tutorials.
I know that to use Titanium Backup I need to root my phone first (I know how to do it), then backup all the data and then do I just install the ROM?

Titanium Backup is a backup utility for Android that backs up your system and user applications along with their data on external storage of your choice. It is a leading Android application that uses root access to pull all your important applications and data from the system partition and stores them for future restoration. Whether your phone is corrupted or flashed with a custom ROM, Titanium Backup can save the hassle to get your phone loaded up just like it was before.
TWRP is an open source, community project. We also have a large support community with many people who are willing to answer questions and help people with their devices either through our IRC channel or on forums like xda-developers.
A custom recovery is used for installing custom software on your device. This custom software can include smaller modifications like rooting your device or even replacing the firmware of the device with a completely custom "ROM" like OmniROM.
A custom Android ROM refers to a phone’s firmware, based on Google’s Android platform. Android is open source and therefore any developer can edit the code, recompile it, and re-release for a wide variety of devices. Users can install ROMs to change a device’s appearance and behavior. ROMs are developed by the Android community, often times by a group of core developers who do this purely out of passion for modding. This means that most are completely free. Custom ROMs are available for phones, tablets, media players, smart watches and almost any type of device running Android.
Notes

You don't need to root for installing twrp and custom rom using twrp, but sometimes required to unlock bootloader to flash twrp. For a complete access and customisation, it requires root access on any ROM.
You can backup all your user app(apps installed from play store) data to any android version, and can restore using titanium backup app, which requires root access. For system apps, both should be in same android version is possible.
many custom roms are available on open source forums like xda. Search the one for your device. Look for some official builds like Lineage os, pixel experience etc. Developer will releases updates as nightlies, which resolves initial bugs, and makes more stable in future.
Gapps for any custom rom can be downloaded from open source platform like opengapps.org.
Rooting may voids your device's warranty. And you must be careful at each step. Because, any mistake can lead to make device brick. Device bricking means, it will continue in repeated on/off state
(Bootloop), won't turn on, boots to recovery only etc, repeated app crash while usage.
You can perform this ,
If you're going to use titanium backup app , then backup all your user app data using titanium backup to SD card or USB stick through OTG. Flash twrp and custom rom. On booting to custom rom, install titanium backup, and restore app data.

If you are using twrp method, you can backup your current rom using pressing backup part in twrp. After flashing custom rom, you can restore data backup which is done by twrp (nandroid) using titanium backup.

A backup of current rom using twrp is recommended, if anything happens in between, you can return to current os without losing any data. Back-up to SD card or USB, don't do it on internal storage, which may get erased.

Source:
Titanium
twrp
Custom ROM


text:
Revenant folders on my Nexus 7 (flo) - how to track down the culprit?
This may have been going on for a while, but I have only noticed a few weeks ago.
There are some folders inside the Downloads folder (i.e. subfolders and subsubfolders) which originally contained documents meant for a particular period and thus were named after year and month (e.g. 2014-05).
They contained documents which I have read in apps like Moon+ Reader.
I deleted those (sub)subfolders many times now, but they keep coming back.
My first hunch was: "oh, somehow Moon+ Reader must have registered them in its DB and keeps recreating them". So I decided to use the rudimentary file browser included in that app and removed the folders there. Yet, after every reboot they keep reappearing.
How can I track down the culprit? Is Moon+ Reader perhaps known to behave like that?

Default folders like Downloads, Music, Movies etc. are recreated every time Android checks for them (periodically or after every reboot) and thus are not meant to be deleted. Even you put an empty SD card in your phone, it would always get filled with empty, default folders, for easy file/document sorting.

@GiantTree: yeah, but my question isn't at all about those "system folders". It's about subfolders (actually subsubfolders) of them. And those should be mine to manage.

Well, that's weird. That shouldn't happen except a special app creates them.

@GiantTree: yep, that's my problem. How to track down that culprit :)

I have now been able to confirm without doubt that indeed Moon+ Reader is responsible for the folders reappearing after deletion.
The problem is that I've come up empty-handed when looking for a database or text file related to Moon+ Reader which contains the names of those folders.
Meanwhile I have moved my books into the Books folder instead of leaving it in a subfolder of Download, but now the whole folder hierarchy inside Download which was used by Moon+ Reader keeps reappearing.
Unfortunately even rating the app requires a Google+ account which I will not create and there is no support contact given. So no way to report this issue back. But I am thinking about extracting the app and trying to find the offending code to add more details here.

"The problem is that I've come up empty-handed when looking for a database or text file related to Moon+ Reader which contains the names of those folders." -- for confirmation only, have you looked into the data directory of this app (under /data/data)?

@Firelord: yes, correct. That's the place I looked at.


text:
Getting rid of stale notification icons in the notification _bar_?
How can I get rid of notification icons for Skype in particular, but any app in general when the app was killed using one of the many available task managers, but the notification icon still remains on the notification bar (that is the part that is persistent at the top of the screen in Jellybean)?
Device: Nexus 7 (2013), Android 4.3

What's wrong with just dismissing the notification in the usual way?

@DanHulme: hmm, perhaps my question is wrongly worded then. The problem is the tiny icon that sticks at the top even when the notification bar that can be pulled down further hasn't been pulled down. This kind of icon also shows with system updates. Only difference: you cannot dismiss this one, as there is no item in the pulled down notification bar to dismiss.

Why use task killers in the first place?  Any Android device running 2.2 and above should be able to manage its own memory properly.  Especially a modern device such as your 2013 Nexus 7.

To quit the latest version of Skype just tap the on-screen menu button (3 dots) from any Skype screen and choose the "Sign out" option.

@DanHulme it's not about notifications in the notification area, but those icons sticking in the notification bar (opposite to the connection indicators). To the OP: Why not simply use the Logout functionality of Skype? AFAIK that should not only remove the icon, but also "really quit" the app, so you wouldn't need to "kill" it. Please report back if that works: if so, I would make it an answer (currently it's just a guess, as I avoid NSA software as best as possible and thus cannot verify myself ;)

@Izzy: the actual problem turned out to be finding that option ;) ... see http://android.stackexchange.com/a/55077/9993 ... they keep changing where the Signout is. I'll leave the question, since I've had this with other programs in the past, so a solution is desirable regardless of the Skype issue being resolved now.

OK, so as this question is intended to be more general (concerning the "Service-is-Running" icons), it's about finding the similar option in all kind of apps? That would make it too broad to fit here. What kind of answer you're after, then? Solutions requiring root and working independent from the app in question accepted as well?

@Izzy: why is it too broad to answer if it's about notification icons in the notification bar. That's like saying a question about how to install an app from the Play Store is too broad. The notification icons are a common trait of apps and they can become stale, so what exactly makes the question how to get rid of stale icons "too broad"?

Because you "get rid of those icons" by closing the app correctly. So if we should describe that for every app that might place an icon there, it would be quite extensive. Of course the easy answer is: "close the apps correctly" (not shoot them down), because then they remove their icons themselves.

@Izzy: that's a silly remark. Obviously if I ask to get rid of stale icons I mean stale icons and that is a generic thing to do after the fact, i.e. when you have the stale icons. And I think it's warranted to ask for a solution other than a reboot. It is certainly technically possible there is something like an "icon swiper".


text:
Can I remove FRP with Heimdall/Odin?
I have a Samsung Galaxy S7 with FRP-locked, USB Debug is off and I am trying to disable FRP and enable USB Debug. Is there any way to do this with Odin or Heimdall?
I also have the stock ROMs for the phone, and no, the previous owner does not remember the gmail account she used for the phone. The Model number is G930P, and the carrier is Boost Mobile (Sprint, USA).

Welcome to Android Enthusiasts! Have you already checked with out factory-reset tag-wiki (watch out for FRP there)?

The answer to your question is no.
Without a Samsung Engineering firmware load that has adb and USB debugging enabled in the setup wizard this is not possible, and I have never seen one leaked out for any Snapdragon based S7, so the answer is simply no.
Remember, FRP is DESIGNED not to be able to be bypassed or defeated, every time a exploit comes out, it get's patched, and this device just got another security update this month.


text:
Samsung Galaxy Note 3 : Tried to install TWRP, can't boot into recovery mode now
I followed the instructions for the Odin install method here and and installed the twrp-3.2.3-0-ha3g.img.tar using Odin (Reboot in Odin was unticked).
Everything went fine, but when I had to launch recovery mode by holding down Volume Up + Home, and the Power button (which is the combination to boot to recovery mode) it just booted to Download mode (which is accessed by holding down the Volume Down key instead of the Volume Up)
The TWRP site says:

Note many devices will replace your custom recovery automatically during first boot. To prevent this, use Google to find the proper key combo to enter recovery.

But I haven't been able to find anything that would indicate the key combination to have changed.
Of note is the fact that the normal Download Mode boot has the Warning screen where you have to press Volume Up to continue and says:
ODIN MODE
PRODUCT NAME: SM-N9005
CURRENT BINARY: Custom
SYSTEM STATUS: Custom
REACTIVATION LOCK: OFF
KNOX WARRANTY VOID: 0x1 (4)
QUALCOMM SECUREBOOT: ENABLE (CSB)
RP SWREV: S2, T2, R2, A3, P3
SECURE DOWNLOAD : ENABLE
UDC START

and then just the "Downloading... Do not turn off target !!"
Though when I use the Recovery Mode Boot it skips the Warning screen and it adds this line on top of all the previous lines:
Could not do normal boot.

It can still boot to the normal Android
I'm using a Samsung Galaxy Note 3, Model Number: SM-N905, Android Version 5.0

can you boot to android?

@esQmo_ Yes booting to the normal Android still works

then,using adb, boot to recovery

https://link.medium.com/8jpdHDjezS read my article about easy way to boot into recovery if that helped you plz let me know

@TheColorman Did u manage to solve it?

I had the same problem like you before. But I figured out the solution. We both downloaded and flashed the wrong TWRP version for Note 3 N9005: ha3g.img.tar. The correct one is hlte.img.tar which you can download on this link: https://dl.twrp.me/hlte/
I hope it helps you :)

Thanks! Using hlte instead of ha3g helped me!


text:
Export picture from Android Virtual Machine
I used an Android Virtual Device (AVD) for some while and got some pictures on it, that I want to have outside of the AVD.
The problem is, that I don't know a way to get the picture out of it, since the folders on my laptop, that the AVM was running on, only contain compressed images of the whole system.
Does anyone know, if the picture might be stored as a .jpg file somewhere on my laptop (probably in $HOME/android-sdk-linux/) or if there is a way to export the picture?
I thought about just taking a screenshot of it, since they are saved as .jpg files on my laptop, but I don't know, if it might compromise the quality.
Thank you in advance!
More information, that could be helpful:
OS: Linux Mint, Kernel version 4.4.0-135-generic
AVD type and Android version: Nexus 5, Android 6.0
Emulated CPU: Intel Atom (x86_64)

adb comes pretty handy in this situation.

Simply navigate to the platform-tools dir in your SDK installation folder (or start terminal right away if its path is saved in system varibles) and start terminal.
Navigate to the folder where your pics are saved (or use ls command to view files).
Use adb command to "pull" the files to your desktop:
adb pull sdcard/<location_of_pics> /home/<user name>/Desktop

e.g   adb pull sdcard/DCIM/pic001.jpg /home/<user name>/Desktop
Alternatively do this via explorer using a method similar to this one only that there no need for hotspot or extra config since the virtual device is running on the same PC and network runs through virtual adapters :)

That did exactly what I wanted, thank you very much!

While I second Xaviers recommendation of adb (which comes in handy in many cases, helping you to solve issues – e.g. by accessing the logs, see logging), let me mention some easy alternatives:

you can install an FTP Server in your Android VM. That lets you access files easily via web browser (ftp://<ip-of-androidVM>/) or a dedicated FTP client.
some other File Servers are available to be installed into your AndroidVM, and offer a nice web interface themselves – again to be used by any web browser (http://<ip-of-androidVM>/) on your PC
also see my list Remotely manage media and files for additional alternatives.

Disclaimer: all above links go to my Android website.


text:
What does this crescent shaped icon mean and do?
This icon popped up on my screen today. I don't know how or what it does and how to remove it. I have a Redmi 4a.

Does anyone know to remove it?

Do you have night mode turned on or an app with night mode (screen overlay)?

@firelord don't know. How do I check that?

That's DND (Do Not Disturb)

DND is  a feature which after enabling you aren’t disturbed by
  notifications or other forms of incoming communication. Do Not
  Disturb(DND) can be set automatically or manually based on a few
  parameters that you control.

One way to disable DND is to  drag down your Notification Panel and select DND from the different toggles.
Alternatively navigate to Settings >> Do Not Disturb and disable it.
Acknowledgements
DND (Do Not Disturb) - A Nice Way To Block Unwanted Notifications!!


text:
Does Chrome run in separate processes/sandboxes?
On Windows/macOS Chrome runs in separate sandboxes to prevent the whole application from crashing mostly.
This does theoretically use more memory.
I have not been able to establish how this works on Android.  It seems to use one RAM slot from what I have gathered.
I was hopefully that it separated them into separate processes like on the PC so that Android can dispose of unused apps when aren't using them to save RAM usage.  It may just be my phone but it appears to get slower the more tabs I have open.

Yes. Chrome runs in separate processes on Android.
This is what I get from ps -aux | grep chrome in a root Termux session:
u0_a128  14180  5.5  2.2 1530600 175948 ?      Sl   13:04   3:55 com.android.chrome
u0_a128  14418  2.2  1.0 1412520 84168 ?       Sl   13:06   1:31 com.android.chrome:privileged_process0
u0_i9    21115  3.0  1.1 1428008 91124 ?       Sl   14:07   0:13 com.android.chrome:sandboxed_process6
u0_i14   22492 16.2  1.2 1548252 100956 ?      Sl   14:14   0:13 com.android.chrome:sandboxed_process11
root     22686  0.0  0.0   8748  1524 pts/2    S+   14:15   0:00 grep --color=auto chrome

So why does it get slower with the more tabs I have open?

@William More RAM consumption, CPU time occupation, etc.

So why does switching to another browser suddenly work fine?  I actually have multiple browsers installed on my phone and after opening 10+ tabs in 1 browser I open 10+ in another browser and so on.  Each browser is much faster simple because it is a different browser(my assumption).

@William That's some implementstion details that only the dev team of each browser know.


text:
How to put bluetooth prompt on notification bar when receiving files [incoming file no option to select yes or no]?
Okay, I'm not sure how to phrase this question but what I am trying to achieve is to have a bluetooth transfer prompt right on the notification shade instead of having to pull down, then tap on the transfer request.
I think images will work best to describe what I'm trying to achieve. Here is how it appears on my primary device (Redmi Note 4, MIUI 9):

I want it to appear on the notification bar like this:

Basically I want the accept or decline prompt right on the notification bar, rather than tapping the notification first. (Any methods welcome, I have Tasker if its needed) or even third-party apps are okay.

This was more of a ROM issue, couldn't bother to find a workaround but it was fixed in later versions of the MIUI ROM:


text:
How to prevent a folder being backed up in Photos but still seen in a gallery app?
I am on Pixel 3 XL. I found that Google Photos recognizes the Facebook photo folder (and some others, such as Screenshots) the same as the "Camera" folder because they are within the DCIM folder. Therefore, we cannot tell Google Photos not to backup these folder within Google Photos settings.
The only option I have come across is to put a .nomedia file in the Facebook folder. That does prevent Google Photos from backing it up, but it also prevent me from seeing that folder in any other app. As you know, the Pixel does not include a traditional photo gallery, as they want you to use the google photos app so I use a photo gallery app from the play store. Either way with the .nomedia file in that folder I cannot see the images in that folder anywhere.
Is there any other way to stop Google Photos from backing up this folder without making the images invisible on my device? Google photos should not be treating all folders within DCIM as "Camera" and instead it should be looking specifically for the camera roll folder.
Related post: Change Facebook (and others) photo saving folder

You're not restricted by Google to use only Photos app as a Gallery app, so why not try a third-party app? I remembered that I used to use Piktures and QuickPic app and both of them (paid feature in Piktures), as I tested now, provides an option to show hidden or .nomedia file containing folders inside their settings. I'm sure some other gallery apps might be having a similar feature.

Use my beginner friendly Tasker project which I made based on this answer. I made some significant improvements that allow it to be used for many other scenarios beyond just moving Facebook's images, and included multiple examples within the project to learn from:

While the original version could detect if the file being moved already existed in the destination directory, it could only handle one iteration of the conflict. For example, if example.jpg were being moved, but it already existed, it would rename the file being moved to example(1).jpg. However, if example.jpg were being moved and both example.jpg and example(1).jpg already existed, it would simply overwrite example(1).jpg.

My version will run an iterative check on names which increments the suffix variable until a non-existing name is found. For example, if example.jpg is taken, it will check example(2).jpg. If that is taken, it will check example(3).jpg, and so on until an available name is found. It also correctly appends the first duplicate with (2) rather than (1).

The original version assumed the first "." in a file name was also the last "." before the extension. While this is fine for images from Facebook, it's not an ideal assumption, and breaks down when adopting the task for other uses, such as moving APKs. With the original, if com.example.app.apk already existed in the destination directory, trying to move a second copy of it would result in com(1).example.app.apk.

In addition to fixing the suffix and making it iterative, I've also changed the logic for its placement, such that it will always go before the last ".". In the above example, the apk would now be renamed to com.example.app(2).apk. This doesn't always work perfectly (consider .tar.gz and other similar cases for instance), but it does a good enough job without having to hard-code in every possible extension.

This appears to vary from device to device, but on my devices, the original version would leave behind broken references to images in gallery apps and other programs that utilize the media provider (most messaging apps that have an image selection UI) due to not correctly refreshing this data. This was not an issue for moving images out of a directory containing a .nomedia file, but caused issues if you wanted to use it in a directory where you didn't want or couldn't have a .nomedia file (such as automatically moving downloaded images out of /sdcard/Download/).

Tasker's Scan Media action seems to act in wildly different ways depending on not only the Android version, but also the vendor variant you're using. I've fixed the issue on my devices (and hopefully many of yours) by running a Scan Media action on not only the file in it's destination directory, but also on the original file path (referencing the file that's no longer there).

I also updated variable names for clarity, and rather than using events that trigger when entering or exiting apps, I've set it to run on a File Modified event monitoring the source folder, with the event set to Closed Write. This works for most purposes, but breaks in some cases. You can fix most issues by either using a different event parameter (such as Create, Modify, or Move To) or by using stricter regex in Action 3 of the task.

 I've heard that devices with slower storage (or slow external SD cards) can have issues with this if files take too long to write. In that case, you may have to experiment with adding delays or using different methods to trigger the task.

I'm attaching not just the task here, but the entire project I've created, containing multiple copies of the task for various use cases, and their respective profiles to trigger them, so that beginners who are new to Tasker can easily get started using this task and have some examples to reference when adopting the task to their own needs.
The examples included in this project are:

When Facebook downloads an image to /sdcard/DCIM/Facebook, move it to /sdcard/Pictures/Facebook.
When Samsung Notes saves an image to /sdcard/DCIM/Samsung Notes/, move it to /sdcard/Pictures/Samsung Notes/. (This works, but Samsung Notes will claim it failed to save the image, due to it checking for the image after it has already been moved by Tasker.)
When you create a GIF using Smart Select, move it from /sdcard/DCIM/GIF/ to /sdcard/Pictures/Smart Select GIFs/.
When you export an APK from ReVanced Manager to /sdcard/Download/APKs/Original/, move it to /sdcard/Download/APKs/Modded/.
When a new file is detected in /sdcard/Download/ . . .

if it's a download from Craiyon, move it to /sdcard/Pictures/Craiyon/
if it's an APK, APKM, APKS, or XAPK file, move it to /sdcard/Download/APKs/Original, unless it is base.apk (I leave that file in Download since I use it for other things.)

Remember to first create the source and destination directories before testing the examples. I also encourage you to check Action 3 in each example task (some of them use simple matching and others use regex) for a better understanding of how they work.
Now that that's out of the way, here's the project. You can import it directly to Tasker from there, or download it as an XML. If you choose to download it, save it in /sdcard/Tasker/projects/. You can then long press on the home icon on the bottom left corner of Tasker to import the project.
Unfortunately the entire XML is too long to post here directly, but for the sake of keeping this answer as complete as possible, I'm including the XML for just the Facebook task below. I strongly recommend that beginners import the entire project using the link above however, so you can get an idea of how to customize the task for your own needs.
The Facebook task:
<TaskerData sr="" dvi="1" tv="6.0.10">
    <Task sr="task3">
        <cdate>1489093858387</cdate>
        <edate>1677367714628</edate>
        <id>3</id>
        <nme>Move Facebook Images</nme>
        <pri>6</pri>
        <Kid sr="Kid">
            <launchID>3</launchID>
            <pkg>me.regalstreak.movefb</pkg>
            <vTarg>21</vTarg>
            <vnme>1.0</vnme>
        </Kid>
        <Action sr="act0" ve="7">
            547
            <Str sr="arg0" ve="3">%sourcedir</Str>
            <Str sr="arg1" ve="3">/sdcard/DCIM/Facebook/</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="0"/>
            <Int sr="arg5" val="3"/>
            <Int sr="arg6" val="0"/>
        </Action>
        <Action sr="act1" ve="7">
            547
            <Str sr="arg0" ve="3">%destdir</Str>
            <Str sr="arg1" ve="3">/sdcard/Pictures/Facebook/</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="0"/>
            <Int sr="arg5" val="3"/>
            <Int sr="arg6" val="0"/>
        </Action>
        <Action sr="act10" ve="7">
            37
            <ConditionList sr="if">
                <Condition sr="c0" ve="3">
                    <lhs>%fileexists</lhs>
                    <op>12</op>
                    <rhs></rhs>
                </Condition>
            </ConditionList>
        </Action>
        <Action sr="act11" ve="7">
            547
            <Str sr="arg0" ve="3">%currentfilename</Str>
            <Str sr="arg1" ve="3">%currentfilepath(%pathlen)</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="0"/>
            <Int sr="arg5" val="3"/>
            <Int sr="arg6" val="0"/>
        </Action>
        <Action sr="act12" ve="7">
            888
            <Str sr="arg0" ve="3">%suffix</Str>
            <Int sr="arg1" val="1"/>
            <Int sr="arg2" val="0"/>
        </Action>
        <Action sr="act13" ve="7">
            590
            <Str sr="arg0" ve="3">%currentfilename</Str>
            <Str sr="arg1" ve="3">.</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
        </Action>
        <Action sr="act14" ve="7">
            547
            <Str sr="arg0" ve="3">%namelen</Str>
            <Str sr="arg1" ve="3">%currentfilename(#)</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="0"/>
            <Int sr="arg5" val="3"/>
            <Int sr="arg6" val="0"/>
        </Action>
        <Action sr="act15" ve="7">
            890
            <Str sr="arg0" ve="3">%namelen</Str>
            <Int sr="arg1" val="1"/>
            <Int sr="arg2" val="0"/>
        </Action>
        <Action sr="act16" ve="7">
            547
            <Str sr="arg0" ve="3">%currentfilename(%namelen)</Str>
            <Str sr="arg1" ve="3">%currentfilename(%namelen)%null()(%suffix)</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="0"/>
            <Int sr="arg5" val="3"/>
            <Int sr="arg6" val="0"/>
        </Action>
        <Action sr="act17" ve="7">
            592
            <Str sr="arg0" ve="3">%currentfilename</Str>
            <Str sr="arg1" ve="3">.</Str>
            <Int sr="arg2" val="0"/>
        </Action>
        <Action sr="act18" ve="7">
            135
            <Int sr="arg0" val="0"/>
            <Int sr="arg1" val="10"/>
            <Str sr="arg2" ve="3"/>
        </Action>
        <Action sr="act19" ve="7">
            38
        </Action>
        <Action sr="act2" ve="7">
            412
            <Str sr="arg0" ve="3">%sourcedir</Str>
            <Str sr="arg1" ve="3">*.jpg/*.png/*.jpeg/*.gif/*.3gp</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="0"/>
            <Str sr="arg5" ve="3">%filelist</Str>
            <Int sr="arg6" val="1"/>
        </Action>
        <Action sr="act20" ve="7">
            400
            <Str sr="arg0" ve="3">%currentfilepath</Str>
            <Str sr="arg1" ve="3">%destdir%currentfilename</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="1"/>
        </Action>
        <Action sr="act21" ve="7">
            459
            <Str sr="arg0" ve="3">%currentfilepath</Str>
        </Action>
        <Action sr="act22" ve="7">
            459
            <Str sr="arg0" ve="3">%destdir%currentfilename</Str>
        </Action>
        <Action sr="act23" ve="7">
            888
            <Str sr="arg0" ve="3">%counter</Str>
            <Int sr="arg1" val="1"/>
            <Int sr="arg2" val="0"/>
        </Action>
        <Action sr="act24" ve="7">
            40
        </Action>
        <Action sr="act25" ve="7">
            37
            <ConditionList sr="if">
                <Condition sr="c0" ve="3">
                    <lhs>%counter</lhs>
                    <op>0</op>
                    <rhs>0</rhs>
                </Condition>
            </ConditionList>
        </Action>
        <Action sr="act26" ve="7">
            548
            <Str sr="arg0" ve="3">No memes? Sad.</Str>
            <Int sr="arg1" val="0"/>
            <Str sr="arg10" ve="3"/>
            <Int sr="arg11" val="1"/>
            <Int sr="arg12" val="0"/>
            <Str sr="arg13" ve="3"/>
            <Int sr="arg14" val="0"/>
            <Int sr="arg2" val="0"/>
            <Str sr="arg3" ve="3"/>
            <Str sr="arg4" ve="3"/>
            <Str sr="arg5" ve="3"/>
            <Str sr="arg6" ve="3"/>
            <Str sr="arg7" ve="3"/>
            <Str sr="arg8" ve="3"/>
            <Int sr="arg9" val="1"/>
        </Action>
        <Action sr="act27" ve="7">
            43
            <ConditionList sr="if">
                <Condition sr="c0" ve="3">
                    <lhs>%counter</lhs>
                    <op>0</op>
                    <rhs>1</rhs>
                </Condition>
            </ConditionList>
        </Action>
        <Action sr="act28" ve="7">
            548
            <Str sr="arg0" ve="3">%counter meme moved!</Str>
            <Int sr="arg1" val="0"/>
            <Str sr="arg10" ve="3"/>
            <Int sr="arg11" val="1"/>
            <Int sr="arg12" val="0"/>
            <Str sr="arg13" ve="3"/>
            <Int sr="arg14" val="0"/>
            <Int sr="arg2" val="0"/>
            <Str sr="arg3" ve="3"/>
            <Str sr="arg4" ve="3"/>
            <Str sr="arg5" ve="3"/>
            <Str sr="arg6" ve="3"/>
            <Str sr="arg7" ve="3"/>
            <Str sr="arg8" ve="3"/>
            <Int sr="arg9" val="1"/>
        </Action>
        <Action sr="act29" ve="7">
            43
        </Action>
        <Action sr="act3" ve="7">
            547
            <Str sr="arg0" ve="3">%suffix</Str>
            <Str sr="arg1" ve="3">1</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="0"/>
            <Int sr="arg5" val="3"/>
            <Int sr="arg6" val="0"/>
        </Action>
        <Action sr="act30" ve="7">
            548
            <Str sr="arg0" ve="3">%counter memes moved!</Str>
            <Int sr="arg1" val="0"/>
            <Str sr="arg10" ve="3"/>
            <Int sr="arg11" val="1"/>
            <Int sr="arg12" val="0"/>
            <Str sr="arg13" ve="3"/>
            <Int sr="arg14" val="0"/>
            <Int sr="arg2" val="0"/>
            <Str sr="arg3" ve="3"/>
            <Str sr="arg4" ve="3"/>
            <Str sr="arg5" ve="3"/>
            <Str sr="arg6" ve="3"/>
            <Str sr="arg7" ve="3"/>
            <Str sr="arg8" ve="3"/>
            <Int sr="arg9" val="1"/>
        </Action>
        <Action sr="act4" ve="7">
            547
            <Str sr="arg0" ve="3">%counter</Str>
            <Str sr="arg1" ve="3">0</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="1"/>
            <Int sr="arg4" val="0"/>
            <Int sr="arg5"/>
            <Int sr="arg6" val="0"/>
        </Action>
        <Action sr="act5" ve="7">
            39
            <coll>false</coll>
            <Str sr="arg0" ve="3">%currentfilepath</Str>
            <Str sr="arg1" ve="3">%filelist()</Str>
            <Int sr="arg2" val="0"/>
        </Action>
        <Action sr="act6" ve="7">
            590
            <Str sr="arg0" ve="3">%currentfilepath</Str>
            <Str sr="arg1" ve="3">/</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
        </Action>
        <Action sr="act7" ve="7">
            547
            <Str sr="arg0" ve="3">%pathlen</Str>
            <Str sr="arg1" ve="3">%currentfilepath(#)</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="0"/>
            <Int sr="arg5" val="3"/>
            <Int sr="arg6" val="0"/>
        </Action>
        <Action sr="act8" ve="7">
            547
            <Str sr="arg0" ve="3">%currentfilename</Str>
            <Str sr="arg1" ve="3">%currentfilepath(%pathlen)</Str>
            <Int sr="arg2" val="0"/>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="0"/>
            <Int sr="arg5" val="3"/>
            <Int sr="arg6" val="0"/>
        </Action>
        <Action sr="act9" ve="7">
            342
            <se>false</se>
            <Int sr="arg0" val="4"/>
            <Str sr="arg1" ve="3">%destdir%currentfilename</Str>
            <Str sr="arg2" ve="3">%fileexists</Str>
            <Int sr="arg3" val="0"/>
            <Int sr="arg4" val="1"/>
        </Action>

            <cls>com.facebook.katana.LoginActivity</cls>
            <pkg>com.facebook.katana</pkg>

    </Task>
</TaskerData>


text:
How to know what is causing a weird lock screen with ads to show up?

I have a Samsung Galaxy J7 that just started displaying this as the lock screen. Sometimes, it displays my regular lock screen, but if I let my phone sit long enough, it will display this screen. It always pops up, not just when my phone is charging.
I don't know what it is, and the other questions I've found have suggested apps could be the culprit, but I don't have any of the problematic apps. I just want this thing gone, as it blocks my notifications.

You are welcome to self answer the question once you are sure. It may help someone else

Do you have es file like any application?

Could be a duplicate of this: https://android.stackexchange.com/q/143330/96277

Before downloading any third party app, do check if there is adds placed by devs.
Check if you installed any new app for lock your screen or for new wallpapers, these usually gives adds.

Most important: If you didn't find any of above case, then this is an internal app update which must be placed by company itself. Now you have to check every app by going to "Apps" section then "System apps" and look for any new app or apps related to wallpaper or lock screen and disable it.
Enjoy! It will surely work.

Going by that suggestion,  most of the apps in the list mentioned here cannot be unearthed. Furthermore, OP had a game installed which showed that lock screen. I suggest you reconsider your advice. :-)

Per Maddie Field who answered it in the question itself here:

It seems to have been caused by the game Cube Escape: The Lake. I deleted the app and so far so good.


text:
How to recover data from a device with broken touch screen and no OTG support?
A friend of mine owns a ZTE T84, also known as the Telstra Tough Max. Unfortunately, he dropped the phone and cracked the screen which resulted in a non-responding touchscreen. The screen itself does work.
In the meantime, he has bought a new phone, but still wants to restore all his contacts from the old phone. So I promised him to take a look at it.
At first I checked his Gmail account with him to verify if all his contacts were backed up in that account. Unfortunately, that wasn't the case.
I am able to connect the phone to a PC and it is connected in PTP mode, which gives the possibility to copy all the photos but not the rest of the data stored in the phone.
Then I tried to use an OTG cable with a mouse connected to the device. Unfortunately, this didn't work either, because the phone doesn't function as a USB host.
After that, I ended up trying things via the recovery mode menu. I tried to access the device via ADB, but it doesn't show up in there. It looks like USB debugging is not enabled. I noticed, when choosing "Apply update from ADB", it does connect and shows up in adb devices as sideload. But I can't use adb shell from there on, only the sideload things.
When I choose the option "Reboot to bootloader" it gives me a black screen, but I noticed it popped up in device manager and fastboot list it in the devices. However, commands such as fastboot oem device-info don't work.
I also tried to wipe the cache partition in the hope that the usb-connection mode would change, but no luck with that.
I did a lot of Googling on this subject but, so far, no luck in finding the solution. Does anyone have an another idea of what I can try to gain control over the phone or at least restore his contacts?


text:
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?

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 ]


text:
TWRP createTarFork() error 255 when backing up data
I have installed FreedomOS on my OnePlus 5. I'm not sure if this is related to FreedomOS, but when I try to make a backup in TWRP with data, system, and boot, it has an error with createTarFork() shortly after it gets to backing up data. It also says 'read only filesystem' when I try to open Terminal from Advanced and run 'cd /data/media/0/TWRP/BACKUPS/bad7d639 && rm -rf backup-name'. What can I do to fix this and why is this happening?

I think I found the solution!

In TWRP, go to "Wipe" and swipe to factory reset
Download:

OnePlus Recovery: oxygenos.oneplus.net.s3.amazonaws.com/OP5_recovery.img
OxygenOS: oxygenos.oneplus.net.s3.amazonaws.com/OnePlus5Oxygen_23_OTA_015_all_1708252353_e6d7756780064352.zip

Rename the recovery image as recovery.img, boot phone into fastboot, plug into the computer, run these commands on the computer:
fastboot devices
fastboot flash recovery recovery.img
fastboot boot recovery.img

Open recovery on the phone
Select "Forgot Password", this will wipe all leftover files in SD Card.
Boot back into recovery, select reload, select "Install over ADB" or "Install Over USB" or something similar and plug the phone into the computer.
Run adb sideload oxygen-os-filename on the computer.
Let it install OxygenOS, it may appear to be frozen at some points; it probably isn't, so don't shut it off or unplug USB.
Download Bluspark TWRP
Reboot into fastboot, plug into the computer and run these commands on the computer:
fastboot devices
fastboot flash recovery bluspark-twrp-filename-location.img
fastboot boot bluspark-twrp-filename-location.img

Success (hopefully)

This worked a few days ago, but now it shows up with the same error. Can anyone help me?

I think anything that starts with 'factory reset' can't be an answer to backup problem. With all respect.

so which one is the backup step? you just deleted and overrode a bunch of stuff

For me, the error was related to the I/O or file corruption issue.
To find what has happened, browse to the backup location (usually /external_sd/TWRP/BACKUPS/backupfolder) and find the recovery.log file. Open the file, and at the bottom lines, read what folder caused backup failed.
Delete the corrupted folders using TWRP File Manager, delete the old backup folder, and try to do a backup again. Consider that this may occur for different folders, so you need to read the log file every time.

This solved the problem for me too -- it was due to linux panicking when getting to the corrupted data. I found the most useful thing to do was to use another app, Migrate, and watching it like a hawk to see exactly what on the data partition caused the panic. The actual stack trace in the kernel log was utterly unhelpful. Deleting the offending file solved the problem.

Currently, TWRP doesn't support multiple user profiles or what OnePlus calls Parallel Apps.
This XDA post has a work-around.

On my OnePlus6, the issue was having multiple users configured.
To remove the additional user (and stay only with the default one),
I used Total Commander to see the files under /data/user. It had a folder named "10", which is the id of the additional user.
Then opened a terminal (using termux) and run:
su
pm remove-user 10

Had installed Shelter App, this a second User environment or Work Profile.
The Second user is encrypted with extra User Password, which my version of TWRP could not decrypt.
It is discussed in here GitHubForTwrp
A script is mentioned also which would remove folders.
I did uninstall Shelter App and deleted following folders "10" is ID for additional user.
/data/system_ce/10
/data/system_de/10
/data/misc/user/10
/data/misc_ce/10
/data/misc_de/10
/data/user/10
/data/user_de/10
/data/user_ce/10
/data/vendor_de/10
/data/vendor_ce/10

After removing these folders TWRP BU worked.

TWRP has some compatible problems with OnePlus 5. I have the same error using TWRP 3.1.1-1 with LineageOS 7.1 nightly build, but I finally work out with this:

Reboot into recovery, TWRP
Go to the terminal in "Advanced"
Type cd /system to change the path to the system folder
Type rm addon.d to remove the addon file
Type exit to quit from the terminal

Now back to TWRP home, try backup/restore again, it should works.
Further adjustment: do check the use rm -f to format disk settings of TWRP, to make sure TWRP won't mess up the filesystem.

What's addon.d?

don't know what exactly addon.d for, I got this info from some forum, tried and works.

no such file or directory addon.d


text:
Text multiple people on Nexus 5 - KitKat / Hangouts 2.3
I have been unable to figure this out. I have seen multiple instructions online but none of them describe what I see on my phone. I am running the latest KitKat and Hangouts and I want to create a new SMS and add multiple recipients from my address book.
I start by typing a name, for example "Bob", and then choose Bobs number from the list that pops up as I'm typing. It then jumps to the current SMS conversation I am having with Bob. There is literally no where for me add another person to send the text to. I don't seem to be able to start a fresh SMS conversation with multiple people.
So basically how can I send a text message to several people?
EDITED: Added some screen grabs below to show y'all what I'm seeing. Yellow marks are me tapping that area and the next image is what happens after the tap.

Same problem here! How can this not be intuitive?

I see that some of my friends have this option in their hangouts. It's not showing up for me, but the question is why?

What's available if you open the action menu (3 dots, top right) on your third screenshot? I think I've seen a menu item there at times that's named something like "Group MMS".

People & options - Archive - Delete - Un-Merge SMS(this isn't always here, depends on the contact) - Help & Feedback.... "People & Options" Just lets me set the ringtone, message tone, remove from circles etc... The others do what thier title suggests

I can't answer due to rep so I'll comment. So, this happens because of your SIM card. When you go to Settings -> about phone -> status, you'll see that your phone number is undefined or wrong. Because of this, the hangout app can't send group MMS/SMS (yeah, that's STUPID). You have to edit the phone number on your sim. To do this, you either have to root your Nexus 5 and use an app to edit the sim, or use another phone with the ability to edit the sim (like the iPhone 4S or older android phones). Once your phone number is good, the group MMS/SMS options will appear in hangout.

@Kethryweryn See the accepted answer below for the actual reason.

Once you got the options, two things : first, you have to enable the group messaging to be able to create a conversation with multiple people. Once it's done you can indeed add people in sms conversations... but it'll create MMS. But you can then uncheck the box, go back to the conversation, and then you'll have the option to select SMS instead of MMS.

Screenshot here

Granted, this is bad behavior and you should use another app... But you can do it.

@Kethryweryn - Thanks bud. I found these 2 links and installed it on my rooted s3. Number on sim changed and group sms works on my note 4 now. Here's the links: http://forum.xda-developers.com/galaxy-s3/themes-apps/app-sim-changer-change-registered-sim-t2106490 and http://forum.xda-developers.com/xposed/xposed-installer-versions-changelog-t2714053

It seems like google is now focusing in Google Messenger - it has support for group SMS https://play.google.com/store/apps/details?id=com.google.android.apps.messaging

According to Google, this functionality is no longer available unless you enable group MMS. Unfortunately, MMSs are much more expensive for me and aren't displayed correctly on some older feature phones.
Once again, Google doesn't care about non-Google communication protocols, possibly in an attempt to force people onto Google products or out of sheer ignorance. They did the same with the mail client in Kitkat which is unusable to me because of severe IMAP bugs, so I switched to K9. Seems like I have to find an alternative SMS app as well.
Edit: Google now offers an SMS app called Messenger (yeah, like the Facebook app) that supports group SMS. It looks similar to Textra which I used before, but now this is my default SMS app.
Edit: This feature has been reintroduced in Hangouts version 3.

Thanks for the link, just read the whole thread. This makes no sense, sending a single SMS to multiple numbers is like the 3rd most basic thing to do with a mobile phone, just behind calling people and sending individual SMS's. Plus the feature was there on the very last version of hangouts, why go to the trouble of removing it!?! Guess I'll start reading the reviews of 3rd party SMS apps...

I just looked at my version of Hangouts. It's not the exact same situation as you, as I'm running CM 11S on my OnePlus, but I am running hangouts 2.3 so it should be the same.

In the left tab, choose a text number. Alternatively, in the right tab, hit the plus button in the top right of the screen.
Choose one of the individuals you would like to text.
At the top of the screen, there should be a gray "Anyone Else?" box. Touch that.
The screen's title will no be "New group MMS". Add the next contact.
Repeat.

There have been situations where the option to add members to a group MMS has not shown up. I'd try adding an individual both ways I mentioned. Let me know how your device is behaving and I'll try to help further.

Thanks for this, unfortunately these are the same instructions I have seen elsewhere. I do not see a grey "Anyone Else?" box. When I choose an individual to text it simply goes straight to the current SMS conversation I am having with that individual. I'll take some screen grabs and add to my question.

@superphonic Do you have a Google Voice number set up on Hangouts, by chance?

@eldarerathis No.

Updated question with screen grabs...

The important thing is, the contact you start with has to be a Google+ profile.


text:
How to Uninstall HTC Applications/Widgets

Possible Duplicate:
How to remove pre-installed apps like Peep and Friend Stream from my HTC phone?
How can I uninstall applications that are locked by phone vendor?

I've just treated myself to an HTC Desire HD. I now want to get rid of quite a lot of the bloat that comes pre-installed. E.g. things like HTC's 'Stocks' widget which isn't visible on the Market and doesn't have an Uninstall option on the handsets Application Manager.
My googling around has lead me to the conclusion that to do this I'll need to root my phone and consequently invalidate my UK warranty. Is this correct or is there another way?
Thanks.

Yes, you will have to root and invalidate your warranty to remove these apps.  Most of the time however you can "un-root" and no one will be the wiser.

Thanks. Can you recommend a safe (or as safe as is possible) tool/methodology/process?

Unfortunately I am not familiar with the Desire HD, but the guides on XDA (such as this one) are generally reliable.  There isn't a true unroot, you apparently have to re-flash a stock ROM (they are here), but that's actually better as it will be exactly what the manufacturer/carrier wants.

You can also attempt to go directly to Settings>Applications>Manage Applications and see if you can uninstall from there. If not, those HTC things you mention are baked into the OS version they are using, so you won't be able to uninstall it without (possibly) rooting or even installing a community version such as CyanogenMod.

Thanks for your response - I have tried going thru Manage Applications with no success - the option to uninstall is not there. I can't even seem to disable the auto-start for these HTC apps. Very annoying as they consume a lot of resources and like to go online by themselves :-(
Do you think I'll lose much by switching from what is presumably a manufacturer/device-specific version of Android to a generic/vanilla one?

Yeah, it sucks that it works the way it does, but until Google cracks down on uninstallable crapware, that's the reality. I doubt you will lose anything by using a community OS such as CyanogenMod, although it can be a scary process to install even though the risk is usually quite low. I'd check them out and see what they have to offer if you really want a clean build of Android.

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/2.5/


text:
Will I lose my phone number and phone plan with factory reset?
Will I lose my phone number or phone plan if I reset my Android to factory settings? I know I will lose my pictures, contacts, and stuff but those I can get back.

No. Factory reset erases data stored on /data partition of your phone. It includes your preferences (what you set in Settings app), user apps and their settings/data, system apps' settings/data (including contacts and messages) and personal data stored on /sdcard including pictures, videos and some apps' data (like WhatsApp stores media and messages backup on /sdcard).
But phone number is just an id (MSISDN) mapped to International Mobile Subscriber Identity (IMSI) which is assigned by Mobile Network Operator (MNO) to your Universal Integrated Circuit Card (UICC; SIM/USIM) on GSM/UMTS/LTE networks or (CSIM/RUIM on) CDMA network, or to phone (identified by its ESN; Electronic Serial Number, compared to IMEI on GSM) on pre-3G CDMA network. This isn't something stored on your phone, it's your account's detail which is stored on your service provider's system.
eSIM is the UICC embedded inside phone (not considering iUICC or virtual/dummy SIM or pure software SIM) which is programmable so that you don't need to swap SIM cards. eSIM stores one or more profiles which hold essentially the same information as a physical SIM card - including ICCID, IMSI (MCC/MNC tuple + MSIN) etc. - which is linked to possibly multiple changeable MSISDNs (phone numbers we dial). And just like hardware SIM, eSIM is Secure Element, completely isolated from Android OS, even the processor. So it's not affected with any filesystem changes. If factory reset erases profiles intentionally, those can be re-programmed. All that's needed is the unique QR code which, if lost, can be obtained from MNO or even their apps can generate. So your phone number isn't affected.
Similarly your call/message/data plans are associated to your identity (phone number). You will be able to avail those services as long as you have a valid subscription and your SIM card is inserted in a compatible phone, identifiable and authentic-able by the MNO.

Note: This answer was written for a device that does not have or not use the eSIM functionality. When using an eSIM the factory reset can/may erase the phone number as well.

@Robert factory reset won't erase phone number, but just the eSIM profile. Which you can add/delete as many times as you want. All that's needed is the unique code from MNO. If the code is lost, it can be obtained from MNO or even their apps can generate.

The quick answer is "No, it doesn't effect your plan or phone number".
Note: Factory reset  is just a clean up process which includes permissions to clean and reset everything within device to it's factory made stage. Of course you have additional options to clean your SD card and sim contacts too, if you want.


text:
How to fix phone booting only into fastboot mode after flashing a custom ROM?
I have a Wileyfox Swift and I have tried to install lineageos 15.1 by following the tutorial that can be found on the lineageos website. I have successfully installed adb, twrp and used it to install the zip file that contains the lineageos files.
After installing the zip file, the phone only boots on what I think is the fastboot screen (shown below) which gives me the following options:

Start : this will boot on the fastboot menu
Restart bootloader : this will boot on the fastboot menu
Recovery mode : this will start twrp
Power off : this will power off the phone

Before installing the zip file, I have always checked the md5 file to make sure that there had not been a problem in the downloading process.
I have tried to install crdroid but with the same result. I have also tried to install numerous version of lineagos but it does not work either. I have read online that this issue could be resolved by pressing for a long time on the volume down/power button but it didn’t work.
I have run out of idea and am wondering if anyone has any idea on how to resolve this issue?

Can you still boot into TWRP? Have you tried flashing your stock ROM from fastboot or from TWRP?

What version of TWRP? Did you flash GAPPS and if so which one? The Bootloader version is on your device? Your devices bootloader screen it might state the version. Things to try: from the bootloader try these commands: fastboot reboot and then fastboot continue After that then the the best course of action is to flash the latest updated factory firmware image and start your custom Rom adventure again. Make sure that you flash the latest versions of things. Looking up your devices bootloader screen types. I found this gem. https://forum.xda-developers.com/showpost.php?p=66158015&postcount=2

Yes I can still use twrp and the version is 3.2.3. I flashed with GAPPS 8.1 pico. I tried the commands but fastboot can't see any devices. I have added a screenshot of the boot screen just in case it helps. Do you know how I can get the latest updated factory firmware image for the WileyFox Swift ? I did find old cyanogen mod rom (https://cyanogenupdatetracker.com/downloads/) but I am not sure whether the link is genuine or not.

They cite the official Wileyfox facebook: https://m.facebook.com/officialwileyfox/photos/a.1484448178533169.1073741828.1481273535517300/1794536560857661/ which also has a couple recovery zip downloads if you feel OEM is safer. I also found: https://forum.xda-developers.com/showpost.php?p=70510585&postcount=19 which has a fastboot signed .zip. Try flashing the OEM zip first from the facebook page. Flashing the zip from wileyfox facebook page is a simpler process. If that does not work then try the fastboot signed zip from the xda link. If you need help I can explain the process with an answer.

Bo Lawson thank you very much indeed. I downloaded the rom from the official Wileyfox facebook, flashed the phone with it and re-did the install as per lineageos' website and I am now running the lineage os on my phone. Thanks again for your help.

Old thread, but helped me fix my Wileyfox Swift as well.
I had the same issue - followed the TWRP route, erased and loaded the new image.
On restart, the bootloader refused to load the system, just went round and round. Speculation on my part, but this might have been because some of us had to "patch" the 'fox bootloader to get the Android 7 update to load in the first place.
The links on the facebook page posted by Bo Lawson (thank you) are still active at the time of this post. I selected the "last" cyanogen release (see the Swift links, used ZNH2KAS7EB).
TWRP was already on, so I booted to recovery, used adp to push the file SW27-WF-CRACKLING-CM-13.1.5-ZNH2KAS7EB-RECOVERY.zip to /sdcard, then used TWRP to install it.
This also replaced the "new" bootloader. The old Cyanogen image booted without issues, so just turned on USB debugging, then rebooted to bootloader.
Fastboot flash'd recovery with TWRP(3.2.3.0) again. Rebooted to recovery, then installed the replacement image (not Lineage, but e.Foundation's beta).
Works!
...and there was much rejoicing.


text:
How to fix USB Mass Storage not recognized by PC?
I have tried many things but can't make my Samsung Galaxy mini 2 S6500 USB Mass Storage to be simply recognized by my PC. Why is such a simple thing so hard?
Does anyone know the solution to this problem?
Thank you.

Do you have Samsung USB drivers installed? Also some models don't support mass storage but MTP instead.

Duplicate of How to mount Internal Storage as USB Mass Storage for recovering data?


text:
How to regain access to phone when unable to use password and fingerprint?
I use a  Samsung S5 (Globe LTE) which has a fingerprint security system, but I forgot the password, and I can't use the fingerprint anymore. What should I use? Should I do factory reset or hard reset? Also, my phone is lagging.

"Factory reset" and "hard reset" are just different names for the same thing. Just make sure you know the password for your Google account, as you'll need it after you factory reset.

You may try PUK code ( located on SIM card ) to unlock if tried too many attempt of pin. But I'm not sure it works or not in your phone model.


text:
Why WhatsApp is suddenly unable to open any APK shared by users?
As of 13-11-18, I was sharing APK files on WhatsApp, for testing apps within a circle of people, with no problem whatsoever. But as of today, if I try to open an apk, I get an error toast saying:

You may not have the proper app to view this content.

Did they change their policies and decided not to let people share APK files on their platform?
I don't use third party websites for sharing APKs, where mostly Chrome spooks most people saying that "This type of file may harm your device".

Open .apk file from file explorer (/sdcard/WhatsApp/Media/WhatsApp Documents/) instead of WhatsApp. Or zip your apk file before sending over WhatsApp.

my friends are not so big on going so deep in their devices... how did it stop working...did the latest update come with a bug?

I don't think so any changes have been made related to this. Usually there is problem handling the proper content according to file type. Are you sure file is being sent with .apk extension? What version of Android your friends are using?

I am getting the same error since I tried for the first time... Install the apk through the file manager.

@IrfanLatif lollipop and above.. well it was working properly till now

Well as per my understanding this is how files are opened from WhatsApp making use of file extensions:

File type is determined from extension (getMimeTypeFromExtension) and intent.action.VIEW is launched provided with file path dat= and file type typ=.
If the file extension is not known, file is treated as octet-stream mime type.
List of preferred apps (/data/system/users/0/package-restrictions.xml which is built from user selected defaults and files at /system/etc/preferred-apps/*.xml) is checked for activities that can handle this file type.
If there is only one app that can handle this mime type, that app (activity) is launched. You can see which app handles what mime type by:
dumpsys package preferred-xml

Use adb shell or one of permission.DUMP or root is required.
If there are multiple apps (more than one matching activity for the given intent) available and no preferred app is already set, ResolverActivity (from Android framework resources) is launched (not intent.action.CHOOSER) showing a dialog to select app (for Once or Always).
If the file type is apk (typ=application/vnd.android.package-archive) and PackageInstaller is set to handle this file, action.INSTALL_PACKAGE is invoked.
Now if Android version is Oreo or above and WhatsApp is updated, it would need permission.REQUEST_INSTALL_PACKAGES to install unknown package. Once granted, app will be installed.

You can use logcat to view how this whole process goes on. Use adb shell or one of permission.READ_LOGS or root is required. You can share results here to help me and others understand where the chain breaks.
Workaround:
Make sure that files are sent and received with correct extension i.e. .apk. If WhatsApp is unable to handle downloaded apk file for any reason, use a File Manager. Explore to /sdcard/WhatsApp/Media/WhatsApp Documents and install apk file.
RELATED: Alternative “File Open” (not stack “DocumentsUi”) for WhatsApp?

Hi, when I click the apk the error toast pops up with the following warning
I/ActivityManager: START u0 {act=android.intent.action.VIEW dat=content://com.whatsapp.provider.media/item/50743 typ=application/vnd.android.package-archive flg=0x1} from uid 10072 on display 0

typ= application means whatapp can see the type of the file right?


text:
Why different pictures are loading on boot, and images disappearing, then reappearing on its own?
I am using a non-rooted LG V20, Android Oreo I believe.
I am having a problem in which the phone randomly loads different "sets" of pictures - sometimes current photos disappear and older pictures reappear, etc. It's almost as if there are 2 root drives/internal storage that the phone randomly load.
If you see the attached screenshot below, there are 2 pictures folders of the same name under root/sdcard (Pictures and PICTURES -- I don't understand how there can be 2 folders with the same name so this is already strange).

When I open either of these folders, it leads to the exact same folder (see the screenshots below). Note the folder names are both "pictures" technically. I think this may somehow be related to the problem.

Some days when I boot, it will just load an "older" pictures folder w/ different picture count - pictures that I've stored in the past. When that happens, my current/recent pictures will all disappear and the older set is the only thing visible.
For example: right now it shows 14 files in Instagram, 3 files in Kakaotalk, 0 files in others as you can see in the screenshot.
When my older set loads, it will a whole different set of pictures, with no pictures overlapping from the above. (see below)

I can't seem to find the trigger that reliably reproduces loading of either set - although, once I remember the phone was suddenly not reading any pictures from the instagram's gallery function so I manually ran the media scanner, when the phone loaded the older set instead.
Anyone have any ideas?

I don't understand how there can be 2 folders with the same name

Android is based on Linux and Linux is a case sensitive OS (in fact the filesystem it uses) unlike Windows. So Pictures and PICTURES are different directories and they can coexist without any problem.
Some directories are created by Android itself on (first) boot and any app with permission android.permission.WRITE_EXTERNAL_STORAGE can create a folder in internal SD card.

When I open either of these folders, it leads to the exact same folder

One can be a symbolic link or bind mount to other. See here for details. However I can't be sure unless I investigate that particular case myself.

it will just load an "older" pictures folder w/ different picture count

Why their contents keep on changing, you have pointed out the root cause yourself:

so I manually ran the media scanner...

It seems to be a problem related to Media Storage database. Some file explorers and gallery apps depend on a files database (MediaStore) built by Media Storage app (/data/data/com.android.providers.media/databases/external.db) as the process android.process.media is invoked by some app. If this database isn't updated as the files change, file explorer will show outdated / incomplete contents.
In order to force its updation, delete this file and run some media scanner app from Play Store (restarting phone may not update whole database though MediaScannerReceiver broadcast receiver is launched on boot). Non-root users can delete this file by clearing data of Media Storage app. But be cautious. It'll also clear internal.db which will make ringtones etc. unavailable.
Please note that the internal SD card we see is emulated from /data/media/ using sdcardfs (or FUSE in older versions of Android). Actual contents of internal memory can be seen directly from /data/media/ (root required).

+1 for a detailed answer

awesome, thanks for the detailed information - really helped me to understand some of the concepts. I'll try that and see what happens!

I tried clearing data of the media storage app and running media scanner again. This brought back the old set but still with the new set gone. I think the problem may be that there's an app installed on my phone which is affecting the hiding and switching of the old set (or some sort of conflict). It'd be helpful to find which app is creating the shortcut folder to the original folder, but I don't know how. I think I may have to just factory reset at one point. Thanks for the help!

I can further help you but troubleshooting/debugging without root seems quite impossible. A starting point would be to execute "mount" command or "cat /proc/mounts".


text:
Galaxy Note 9 stutters on QHD resolution
I notice that when I have my Note 9's camera resolution set to QHD, 60 fps (the highest), when the camera app comes up and I see the video on the screen, ready to record, there's about a 3 second pause (the entire screen freezes as if it's too much to handle), then the video resumes, and this happens every 6 seconds or so.  Every 6 seconds, the video would just pause for a few seconds like it's trying to catch up.  When I record using QHD, I notice the same behavior when playing the video back.  The video stammers, but the audio continues seamlessly.  When I switch to a lesser resolution, the problem mostly is resolved.  What can I do to fix this?

Please refer to this link: https://www.google.co.in/amp/s/forum.xda-developers.com/galaxy-note-9/help/note-9-camera-lag-freezing-t3834632/amp/
It seems that clearing G camera cache can help temporarily. It seems to be phone issue and I would suggest that you should raise this issue in Samsung forum or seek help from Samsung service center.
Quoted from the link above

Dear trebills and others in this thread, This is Cole from Samsung Electronics’ North American offices. We would like to further discuss this issue with you. Would you be willing to provide your contact information in a private message so that one of our technical support agents can get more detailed information about your difficulty?

Thus best way would be to contact Samsung support. It seems they are also trying to debug the issue.

If you can add more information from the link you provided, it can be better.


text:
Nexus emulator does not work in eclipse - I get a black screen with emulator nav keys
when I choose Run As->Android Application In eclipse, I get the following message:
[2013-12-12 12:54:30 - Emulator] extension WGL_ARB_make_current_read was not found
[2013-12-12 12:54:30 - Emulator] could not load func glBindBuffer
[2013-12-12 12:54:30 - Emulator] could not load func glBlendEquationSeparate
[2013-12-12 12:54:30 - Emulator] could not load func glBufferData
[2013-12-12 12:54:30 - Emulator] could not load func glBufferSubData
[2013-12-12 12:54:30 - Emulator] could not load func glDeleteBuffers
...

When I decrease memory for my virtual device and then run the app, I can see the emulator, but a black screen instead of showing the output. Is there any workaround for it?
NB: I use nexus 7 emulator.

Did you find the solution ?

Have you tried any of the work-arounds mentioned here

Disable OpenGLES emulation support by renaming \tools\lib\libOpenglRender.dll to libOpenglRender.dll.disabled. Or,
Reduce the amount of memory used by the emulator. Try 900MB, if that doesn't work, try 800MB, if that doesn't work, try 700MB, you get the idea.
Manually set the resolution of your AVD instead of choosing a template like WX800 or WX720

I renamed it to libOpenglRender.dll.disabled and set the ram to 128 MB but no success. And how to set the resolution?

The error you've included indicates that the graphics driver on your desktop machine doesn't support the GL extensions that the emulator needs. Turn off Use host GPU in the AVD settings.
Without using the host GPU, the emulator will run very slowly, especially if the app you're using is graphics-heavy. The emulator will take several minutes to start Android. You may wish to consider upgrading the graphics card in your computer, to allow it to take advantage of this feature.

Use host GPU has been disabled by default.


text:
How do I disable "Link Preview" in Chrome?
This feature magnifies links when it seems unsure of which you touched. This article talks about an "Enable Link Preview" setting as if you can turn it off.
Beyond its annoyance, as I have to click everything twice, this bubble seems to break several dropdowns, as the menus will not expand in the zoomed view because the zoomed view is just a glorified image.

I agree. Extremely annoying. In addition, if I zoom out and click once anywhere, it zooms back in, and there is more... The whole browsing experience on my tablet is distorted, while its all awesome in the Chrome Desktop version.

In your case, if you are the developer, I would recommend you re-designing your layout to use larger "clickables" to avoid this specific issue though.

This is called the "Link Disambiguation Popup" and is a chrome flag on all builds EXCEPT the Android one where it is explicitly left out. Go figure.
Here's the code of interest. Next on my todo list is write an Xposed module for this.

There is nothing in the settings for this, not even in the Chrome beta app.
I don't see anything at all in chrome://flags/ either. If this ever was a setting you could control it's gone now.
It looks like your only viable option is to choose a new browser. Fortunately, there are plenty to choose from.