text:
How to stream to my smartphone only what I see inside the bluestacks window
I've just installed Bluestacks on my PC because I wanted to run whatsapp inside it. I have two whatsapp account. The first one on my smarthphone and the second one inside the bluestacks emulator. I want to do this because till now I used whatsapp desktop on my PC instead of using it directly on my smartphone. But the problem was that often the connection was lost and above all whatsapp for the smartphone eats a lot of battery from the phone. So I had the idea to use it directly inside the android emulator. NOW,a problem arises : when I'm at home,I kill whatsapp on my phone and I use that installed on the android emulator. BUT when I'm out of my home,I would like to see what my friends are saying in one of the two accounts. So,I have installed the "screen stream mirroring" app inside bluestacks. It says that the mirroring address is "http://10.0.2.15:5000/screen". I tried to connect a web browser from the pc and from the smartphone to that address but it refuses the connection. I have also registered a new dyndns account and I have installed a dns manager inside bluestacks because I wanted to point the address "10.0.2.15" to a domain name,but it didn't work. It says : "wrong ip address". I know that I could install a screen stream application directly on the host OS (Windows 10 in my case),but this has a big dis advantage : I should keep the bluestacks window opened and it takes a lot of space from my screen. I have also tried to run teamviewer on the bluestacks side and on the smartphone side,but I don't like this solution,because everytime I should understand where the pointer is positioned and I should move it exactly where I would like it to be. I would like also say that for me it's not useful at all using two android remote applications which works only inside the same network,because when I go out of my home usually I use the mobile connection that I have on my phone and not the wi-fi connection that's inside my house. So,the question is : how can I stream to my smartphone (samsung note 3) only what I see inside the bluestacks window ?

There are a number of separate issues within your question. If you were trying address "10.0.2.15" did you find/read: https://developer.android.com/studio/run/emulator-networking or ADB Bluestacks - Connect 2 PC

excuse me,but I don't understand how make it works. I'm running the trivial port forwarding on windows 10 like this : > trivial_portforward.exe 9999 127.0.0.1 5555 but inside bluestacks the IP number is again : 10.0.2.15 and it says that the screen stream mirroring APP is listening at : http://10.0.2.15:5000/screen ; since the IP number of Windows 10 is : 192.168.1.2 but when I open the address http://192.168.1.2:5000/screen ; on Windows it says : connection rejected...

I believe you should testing with a different device on your home network. The point of port forwarding is to connect to your emulator from outside of the computer running it. Windows firewall/anti-virus may be blocking the port. You should easily find references on the subject online via your favorite search engine as it is not Android specific.

what I don't understand is which port should I use on the host OS...I'm using 5555,BUT the port used by the mirroring APP is 5000...does it matter if they are different ?


text:
Nexus 5 not recognized at all by device manager
I've been programming a game for android and been using my nexus 5 for debugging purposes for a while. Unfortunately, today it isnt being recognized anymore.
Things I've tried to fix it:

Enabled USB debugging
Tried another cable
Unplugged replugged
restarted android studio
restarted laptop
Switched to MTP
Switched to PTP
Factory reset device
killed adb server then started it again

Since it doesnt come up on the device manager at all - I was unable to reinstall drivers.
I've been trying to fix this for about 4 hours now and I'm starting to go crazy. Thanks in advance.

Do you get the notification that the phone is connected?

The only form of notification I get is that it's charging.

Use a different USB port or PC?

I tried my nexus 7 and that one works. I think there might be something wrong with my nexus 5.

source: Stack Exchange

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

sort: votes


text:
How to sync 2 folders using NFC between two Android devices running slightly different Android OS versions
I have a Sony Xperia Z3 running lollipop and another jiayu s3 running Android 4.4. Both of them have NFC. I want to  sync a folder in internal storage from one phone with another using Android NFC feature. NFC enabled in both devices. So when I use ES File Explorer in the source device I do not see any option that lets me invoke NFC sharing. I may be able to share using  Bluetooth or LAN. So how is NFC invoke can it be invoked Nativity or you need 3rd party applications.
It need not be nfc... I'm trying to figure out the most efficient way to sync two directories on Android devices without the need to be on a network. thank you

I don't think you really want to use NFC for the syncing itself (that's pretty slow even compared to Bluetooth). Maybe you rather want to use it to initiate the sync process? Usually, initiating an "NFC action" is done by holding two devices with NFC enabled back-to-back, then tap the screen of the "sender" to confirm the action (e.g. sharing a picture that's displayed on the screen at that moment). It's AFAIK the foreground app which has to decide on the action, though – so I'm not sure how e.g. ES would react.

Yes I could get picture sharing to work that way but when I touch the butts and use ES file explorer I hear a noise and there nothing happening on both phones then onwards. I wonder how we can synch 2 folders the fastest without having to connect to wi-fi . How about using one phone as OTA USB for another ?

I've never heard of syncing directories between Android devices initiated via NFC, sorry. While waiting for answers, maybe some results of this Google search have some clues?

It need not be nfc... I'm trying to figure out the most efficient way to sync two directories on Android devices without the need to be on a network. thank you

Without any network that won't work, as they cannot connect to each other. With Bluetooth that will be slow as hell. So your best option would be WiFi Direct or using one device as Hotspot. Then you could use an automation tool like tasker on the other device with a rule like "when you see this hotspot, connect and sync". FolderSync would support Tasker in this, but you'd need some kine of file server on the hotspot device for that. Just a raw idea.

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


text:
Analyzing boot loop Root cause from console-ramoops-0 ( & logcat)
Summary - Update 2:
I am not deleting the question content, to preserve history ( but an admin may if appropriate delete that content)  but things have change since. A day after I can into the below mentioned TWRP createTarFork() error 255 issue I could manage the data restore /data from TWRP Nandroid backup. The issue is for 2nd install of the same stock ROM  - I run into a bootloop. The TWRP backup itself was from an Encrypted partition  being restored to another partition ( Encrypted or otherwise regardless ). Trying to get to the RC of the bootloop & some way I an restore my /data I've attached logs of bad & normal boot below.

this is older history. May go directly to update 1 below , skipping  it :
Boot-looped and got stuck in powered by android logo. Logcat hasnt been much useful. Wanna know what's causing the stuck.
All I have is this from /sys/fs/pstore/console-ramoops-0
'android.frameworks.sensorservice@1.0::ISensorManager/default': No such file or directory

I am attaching Entire  /sys/fs/pstore/console-ramoops-0
what seems the issue ? I have TWRP backups of vendor system boot that i tinkered restores with. No Luck. This is stock MIUI ROM with TWRP as recovery base so after flashing dm-verify-no encrypt.zip ( cant recall the exact name ) + certification.zi & permssiver I  get past MIUI logo but now looping at powered by android logo
fsck outcomes
    olivelite:/ # e2fsck /dev/block/mmcblk0p60
e2fsck 1.43.3 (04-Sep-2016)
/dev/block/mmcblk0p60: clean, 4614/65536 files, 184349/262144 blocks
olivelite:/ # fsck /dev/block/mmcblk0p60
/sbin/sh: fsck: not found
127|olivelite:/ # e2fsck -v /dev/block/mmcblk0p60
e2fsck 1.43.3 (04-Sep-2016)
/dev/block/mmcblk0p60: clean, 4614/65536 files, 184349/262144 blocks
olivelite:/ # e2fsck -v /dev/block/mmcblk0p59
e2fsck 1.43.3 (04-Sep-2016)
/dev/block/mmcblk0p59: clean, 4547/262144 files, 680379/1048576 blocks
olivelite:/ # e2fsck -v /dev/block/mmcblk0p62
e2fsck 1.43.3 (04-Sep-2016)
data: clean, 62826/1389536 files, 3383723/5667584 blocks
olivelite:/ # e2fsck -v /dev/block/mmcblk0p57
e2fsck 1.43.3 (04-Sep-2016)
/dev/block/mmcblk0p57: clean, 33/98304 files, 22707/98304 blocksenter

fsck sounds clean for all partitions
Here is the **logcat** & here's **dmesg**
from logcat it could be a decryption issue. But that's only for boot
twrpasks for pattern and decrypts just fine. Why cant it happen during boot- that's my hunch on the prob. Not trying to lure  in that direction. Like Mikko said pretty much everything  screams so its difficult to nab the culprit  Gonna try  /data backup wipe and restore lets see....
Update
as I suspected it appears to be encryption related. the previous successful install had  a pattern lock  ( at the time that install was built, I flashed - permissiver.zip, certificate.zip & dm-verity-force-encryption w default ops to disable verity &  disable forced encryption  )  - butTWRP nandroid backup itself is never encrypted. When  tried to restore it - I always ended up with TWRP createTarFork() error 255 which is a very  generic error - with multiple RC's. In my case it happens immediately ( previous data was wiped & formatted all relevant partitions . Only way I could successfully restore was use flashtool ( that runs fastboot commands underneath ) to install stock ->  fastboot twrp & patched magisk boot  install and then restore /data ( after running magisk &  dm verity attempt twrp restore ) - in that case restore was successful. So with above steps I could successfully restore /data but that restored /data will get stuck in bootloop ( if twrp backups arent encrypted , why then does a simple wipe & format not allow TWRP restore ? only flashtool de-novo stock install will permit restore ? . I read a bug in twrp will not let backup from encrypted  partition be restored onto un-encrypted ..ok so I also encrypted de-novo stock install with same pattern & after successfully restoring /data got stuck in the same bootloop again  ) .  while I am using this de-novo stock install right now with 'bare minimal survival kit' apps.
I could pull up logs of what a successful boot looked like
to compare with boot loop after /data restored I uploaded earlier ( as suggested by  Mikko - need bad boot and normal boot logs to compare ) .  So the big Question  is how in the world can I get back /data to restore from my Nandroid backup without boot looping
Uploaded these :
Normal boot pmsg-ramoops , dmesg,  ramoops ( last 2 are pretty much the same - if you read ramoops- good enough ), logcat
Needless to say restore's being attempted on the same stock ROM

Universal Disable_Dm-Verity_ForceEncrypt.zip still has bug and will cause boot-loop on encrypted data (although not related to twrp bug restoring failure)

Issues  & solutions much as I could reach
Cant restore TWRP /data backup
Can't figure out why TWRP backup itself being un-encrypted ( albeit from an encrypted phone ) cant be restored to any phone with the same ROM. This is with TWRP 3.5.x. Work around was flash ROM de-novo ( wipe / format in TWRP did not work ) &  then attempt restore. But I ran into bootloop.  There is another  solution  that targets Luks Header , but did not bother going further down the rabbit hole. I really appreciate Mikko's dig into those logs , which is understandably is boring and frustrating .much as I'd have like to accept his answer - it's way off. This is abs nothing to do with SeLinux( permissive 1 as the log  shouts everywhere ) neither it was a corrupted fs ( e2fsck  issue)
 Bootloop  after /data restore
Something to do with my older install being encrypted but I cant figure out presicely. I took my  TWRP files and attempted manual restore :
$r --selinux --xattrs -vxpPf data.ext4.win003 /data/data/com.whatsapp

where r is /data/tmp/tar-arm as suggested here . My whatsapp data ( primary  target of recovery besides other apps  ) was straddled across 03 an 04 volumes and I ran into issues invalid tar format or some. The issue was not with backup but /data/tmp/tar-armwasn't capable . I pulled it into Linux and ran  regular tar similarly and restored. Lesson : if tar utils says  backup is bad - dont take it for-granted. It might be a bad tar

Note that it is not safe to use ROM that doesn't have SELinux enabled as your daily driver. It sounds that the ROM you're trying to use is just broken or if /data/tmp/tar-arm wasn't provided by the ROM, that's the problematic part of your adventure. If you have encrypted data partition, you have to use good enough TWRP version or you cannot actually have a working backup (it's easy to notice - if you have encrypted data partition, TWRP should prompt for password). Note that the backups made with TWRP are not encrypted; see https://android.stackexchange.com/q/188339/5738 for details.

Howdy Mikko SeLinux 1 is kept so state in many Custom ROMs . In my case for stock ROM I keep it at 1 momentarily to see where all did I violate & accordingly change context before toggling but that is at ease  . /data/tmp/tar-arm isnt expected as per what the link mentioned - you have to grab it from the smallest available gapp. Still dont follow why 1) that /data restore boot-looped 2) UnEncry'd backup from Encry Partcant be restored simply & causes Tar Fork found that as a bug report in an older TWRP version & this is few hoops ahead

thanks Alec ..actually busybox tar  as well as arm tar both were tried and they both threw up in the middle of  the road so as to say. If it was a problem of wrongly using it - they'd not extract partially . Entire f would be  rejected w something like 'not a tar archive' --this error was unexpected end of tar. AFA UUIDs are concerned.  Yes I did that by a program I wrote that grabbed individual UID & GID after the apks got installed and run chown but that wasnt part of Q I asked. I will nonetheless put in an udpdate line for completeness

Well bad might be a 'bad' name after all. It should at least be able to list out the contents vide tf option and that is just where it gives that  error as welll . And on Linux it worked just fine no issues. So I guess the bad was reference to its incompatibility with my tar. AFAIK when I made that tar using TWRP I never used the compress option.  I grabbed an ARM tar based on the link choosing the smallest package size...should have delved into it being available solo ...

so you say the malformed header is not caused by twrp-tar on creating, and the error output (which is filtered with 2> /dev/null in linked question) does only appear on arm but not on x86? that's strange because I always get it. what is your linux tar version, is it star maybe (because that's what twrp-tar is based on)?

here's my Linux Pup  tar `root# tar --version
tar (GNU tar) 1.30
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later https://gnu.org/licenses/gpl.html.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by John Gilmore and Jay Fenlason.
`

gnu tar  admittedly secontext isnt something that worried me cos my SeLinux is passive....not Good, yes I know. But keeping it like that till I find all the  raves and rants in logcat about violations ... that is for future :)... the way I hv things ..I still use a 2nd ext4 to store all my non split apks & all user app data ( save for his  TWRP backup sit'n). I wrote code that installs these apks & then finds out their userid gids & then links the data & does all necessary chowns the access rights were already there. Most apps work OOTB. Seldom complaints cos of diff. arch etc

so it's the same tar that behaves differently on arm

dunno could be? I will ..gimme s'time ... pastbin that entire comparison reproduce the error... if it'd help dig up the root

it took me ages to figure out why jellybean backup solution didn't work any longer. selinux was introduced with KitKat (permissive) and the only reason for me to compile gnu tar. if you copy app data with no secontext, restorecon will set (wrong) default values. but there is more, some xattrs are also important and will cause crashes even on permissive. if you follow instructions exactly it should work for you too (at least for WhatsApp)

btw there is app doing the same thing (restore app data and chown uids)

If you run stock firmware and it's bootlooping, there's really not much that you can do because you don't have source code to the firmware you're running.
Your boot log seems to have a couple of interesting parts. I think this might suggest some kind of permission problem. Have you touched SELinux stuff (e.g. changed ACLs)?
[    0.629174] ------------[ cut here ]------------
[    0.629189] WARNING: CPU: 0 PID: 1 at /home/work/olivelite-p-stable-build/kernel/msm-4.9/drivers/base/core.c:600 device_create_file+0x7c/0xac
[    0.629193] Attribute otg_status: write permission without 'store'
[    0.629197] Modules linked in:
[    0.629205] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.9.112-perf-gd9f74a7 #1
[    0.629209] Hardware name: Qualcomm Technologies, Inc. SDM439 (Flattened Device Tree)
[    0.629226] [<c0113194>] (unwind_backtrace) from [<c010dbc0>] (show_stack+0x20/0x24)
[    0.629235] [<c010dbc0>] (show_stack) from [<c04e791c>] (dump_stack+0x94/0xa8)
[    0.629245] [<c04e791c>] (dump_stack) from [<c012f760>] (__warn+0xf8/0x110)
[    0.629253] [<c012f760>] (__warn) from [<c012f7d0>] (warn_slowpath_fmt+0x58/0x74)
[    0.629260] [<c012f7d0>] (warn_slowpath_fmt) from [<c0761e24>] (device_create_file+0x7c/0xac)
[    0.629271] [<c0761e24>] (device_create_file) from [<c087ebc8>] (msm_otg_probe+0x1668/0x1c28)
[    0.629281] [<c087ebc8>] (msm_otg_probe) from [<c0769a10>] (platform_drv_probe+0x48/0xac)
[    0.629289] [<c0769a10>] (platform_drv_probe) from [<c0767860>] (driver_probe_device+0x244/0x2f0)
[    0.629297] [<c0767860>] (driver_probe_device) from [<c07679d4>] (__driver_attach+0xc8/0xcc)
[    0.629303] [<c07679d4>] (__driver_attach) from [<c07652dc>] (bus_for_each_dev+0x8c/0xd0)
[    0.629311] [<c07652dc>] (bus_for_each_dev) from [<c07670e0>] (driver_attach+0x2c/0x30)
[    0.629317] [<c07670e0>] (driver_attach) from [<c0766c70>] (bus_add_driver+0x1ac/0x224)
[    0.629324] [<c0766c70>] (bus_add_driver) from [<c0768768>] (driver_register+0x9c/0x120)
[    0.629331] [<c0768768>] (driver_register) from [<c0769974>] (__platform_driver_register+0x50/0x58)
[    0.629341] [<c0769974>] (__platform_driver_register) from [<c16473dc>] (msm_otg_driver_init+0x1c/0x20)
[    0.629350] [<c16473dc>] (msm_otg_driver_init) from [<c0101ccc>] (do_one_initcall+0x60/0x1a4)
[    0.629359] [<c0101ccc>] (do_one_initcall) from [<c1601070>] (kernel_init_freeable+0x1f4/0x2b0)
[    0.629369] [<c1601070>] (kernel_init_freeable) from [<c0f7fd4c>] (kernel_init+0x18/0x158)
[    0.629378] [<c0f7fd4c>] (kernel_init) from [<c0108a10>] (ret_from_fork+0x14/0x24)
[    0.629384] ---[ end trace 09e0ec112fb2ab2d ]---
...
[    3.606115] init: Couldn't load property file '/odm/default.prop': open() failed: Nk such file or directory: No such file or directory
[    3.606592] selinux: avc:  denied  { set } for  scontext=u:r:vendor_init:s0 tcontext=u:object_r:exported_secure_prop:s0 tclass=property_service permissive=1
...
[    5.976174] e2fsck: e2fsck 1.43.3 (04-Sep-2016)
[    5.976174]
[    5.976210] e2fsck: /dev/block/bootdevice/by-name/persist is mounted.
[    5.976210]
[    5.976222] e2fsck: e2fsck: Cannot continue, aborting.
...
[    7.388219] type=1400 audit(54437781.749:20): avc: denied { setattr } for pid=404 comm="init" name="shared" dev="mmcblk0p62" ino=1157358 scontext=u:r:vendor_init:s0 tcontext=u:object_r:system_data_file:s0 tclass=dir permissive=1
[    7.399091] type=1400 audit(54437781.749:20): avc: denied { setattr } for pid=404 comm="init" name="shared" dev="mmcblk0p62" ino=1157358 scontext=u:r:vendor_init:s0 tcontext=u:object_r:system_data_file:s0 tclass=dir permissive=1
[    7.399114] type=1400 audit(54437781.759:21): avc: denied { setattr } for pid=404 comm="init" name="tombstones" dev="mmcblk0p62" ino=514055 scontext=u:r:vendor_init:s0 tcontext=u:object_r:tombstone_data_file:s0 tclass=dir permissive=1
[    7.402174] type=1400 audit(54437781.759:21): avc: denied { setattr } for pid=404 comm="init" name="tombstones" dev="mmcblk0p62" ino=514055 scontext=u:r:vendor_init:s0 tcontext=u:object_r:tombstone_data_file8s0 tclass=dir permissive=1
[    7.402193] type=1400 audit(54437781.769:22): avc: denied { write } for pid=404 comm="init" name="misc" dev="mmcblk0p62" ino=385537 scontext=u:r:vendor_init:s0 tcontext=u:object_r:system_data_file:s0 tclass=dir permissive=1
[    7.402323] type=1400 audit(54437781.769:22): avc: denied { write } for pid=404 comm="init" name="misc" dev="mmcblk0p62" ino=385537 scontext=u:r:vendor_init:s0 tcontext=u:object_r:system_data_file:s0 tclass=dir permissive=1
[    7.402339] type=1400 audit(54437781.769:23): avc: denied { add_name } for pid=404 comm="init" name="dts" scontext=u:r:vendor_init:s0 tcontext=u:object_r:system_data_file:s0 tclass=dir permissive=1

Also note the e2fsck aborting in the middle of the process.
I would guess SELinux config being messed up or a filesystem corruption.
You'd really need a log from correctly booting phone with the identical firmware version to compare to know for sure. In many cases official vendor firmware is a piece of crap that may emit all the above errors on every boot so you really cannot know if you're looking at red herring.
Usually the only good way to debug issues like this is to take full boot log from known working phone and compare it to full boot log from a phone that doesn't boot. (Obviously you need a comparision tool that can ignore the timestamps at the start of the lines. I'd use meld with filters.)
Usually the problem is caused by the first error in the log. However, as I mentioned, vendor firmware often have lots of errors on every boot so you cannot know which are fatal if you don't have known good boot log to compare. The line you mentioned in the question (ISensorManager/default) is way after all the above mentioned errors. I would assume that the ISensorManager failure is just a result of the other stuff going wrong.

Your boot log also had some random bytes intermixed with the text. The first random byte appears in the middle of timestamp on line This means that this is a DEBUG kernel.

Yes it a debug kernel log it actually says so somewhere in the beginning. I am going to attach dmesg & logcat & Update the question. Thanks SO much for peeping in . BTW I ran permissiver  ( flashed )  script. So By the time it was boot and dandy -  Selinux was permissivve

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


text:
Micro sd card partition strategy for Android (context of wear leveling & data corruption)?
The primary issue relates to bad blocks / clusters and it happens to be android platform.
This is a Sandisk 128gb  (leave this link - it is not an ad). Some cards indicates other problems like memory channels, write speed etc. This card I am using on an Android Nougat device.
This is the 2nd time, that the card had corruption issues. The first one I bought got write locked. I've bought a replacement. This card has a lot of bad clusters. 2 things got me to sniff this:

whatsApp directory (which had a bind to whatsapp dir on internal): the image directory can no longer be written to.
The phone randomly reboots, and next time the exFat partition is not mounted any more (I used app2sd, and partitioned the card to ext4 10gb to link my apps. The rest if exfat).

I ran a chkdksk on windows 7, and it would autoterminate on initial run & persisting on running gave me repeated message "# cluster moved for file " ( cant recollect exact verbiage ). It could Never complete it but aborted with the message . "corruption found in card "
Question
Given this situation, is there any OS utility or 3rd party tool out there, that can complete the card run and mark the bad blocks so, that these bad blocks remain unavailable to write? Yes, I ran chkdsk with /r /x options, and that is when it puked with all these errors, and it didn't run untill end. I tried aparted for Android which runs fsck (exFat sub), and the report came normal in < 1 min which tell me it didnt invoke bad blocks routine.
From what I read due to 'wear leveling' the dynamics changes so bad sectors can't be marked permanently, and the only temporary solution would be to do a low level format. Question is - is that so , pl. confirm my understanding?
Question
If the above is correct, I wanted to think of ways I can reduce data corruption and have a handle on the above. What I am thinking is , after erasing the data - instead of exFat. I will create several Ext4 partitions.

An ext4 for app2sd hidden partition (as is the case presently)
another ext4  pat # 2 for mostly RO data
ext4  pat # 3 for mostly Moderate RW data (like camera photos)
ext4  pat # 4 for mostly high RW  ( like whatApp media)

Is this going to help make life better than before?
Question
How do I auto mount ext4 (default external storage for Android is exFat or Fat32)  and that too more than 1 partition ? QuestionWhat files equivalent to fstab files in android (this is nougat) do I add my custom mount command to?
Question
Any other solution that comes to mind?

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


text:
Should Dalvik Cache be wiped in Android OS that supports ART?
When switching custom ROMs (in ART), is it necessary to wipe the Dalvik Cache?
Wiping the Cache is necessary, but should wiping Dalvik (which doesn't exist in Android Lollipop and afterward) be necessary?
What impact will it cause if we wipe Dalvik (something not present)?
In ART, what does the Dalvik cache contains? (is it an empty folder?)

The Dalvik Cache is still in use under ART, it is the location where the .oat files (they contain the compiled application, compiled during installation ) are stored, they just didn't change the name. Source: 1
So Wiping may be necessary if ART related files were updated. Because it does no harm other than compiling all applications again, I suggest just doing it to be safe.

No, you don't need to wipe it. It is probably still in recoveries because you could need it at some point, or developers just didn't remove it yet.
For me, dalvik cache folder is empty.

Sounds correct to me (+1) – but who tells us that the corresponding menu doesn't figure that and cares for ART as well? Quote: So, for using the ART cache the custom recovery(like CWM ,TWPR ) will need to optimise it to clear the ART Cache also (if only ART is default Runtime) That article being from 11/2013, I could imagine new versions of CWM/TWRP might cover that.

PS: Like the Dalvik cache being in /data/dalvik-cache, ART Cache is stored in /data/art-cache. And according to this post (quoted instructions are in English), it's exactly as I assumed: WIPE Dalvik/ART Cache (wipe cache partition + wipe dalvik cache). Even seems like Philz recovery has renamed the item already to "WIPE DALVIK/ART CACHE".

It's probably best that you wipe it because it is still where the compiled oat files are stored and either way all it does is make the system recompile all the apps. You still have to wait a long time while it does the compiling (Android is Upgrading)


text:
Casting to Chromecast without Google Play Service
I am a long time CyanogenMod user without any Google Play Services installed.
It seems like Android Chromecast apps all require Google Play Services. There are some tools (UnifiedNlp, NOGAPPS) replacing parts of Google API, but it does not seem like they are providing necessary API for casting to Chromecast.
Is there any chance to cast to a Chromecast (2015) without installing Google software?

Some initial work has been done in the microG project from Ma-rv-in, but nothing usable so far.
I personally use MultiRom and boot on a ROM which has Play Services installed to use my Chromecast.


text:
Is it possible to force enable the battery saver mode in Android Lollipop?
It is possible to automatically enable battery saver mode in Android 5.0 when the battery hits 5 or 15%.
However sometimes it would be nice to enable this mode by hand. e.g. when the battery is still half full.
Is this possible?

You can actually make it automatic for any x% or as a shortcut for manual mode using automation apps. But I don't think you want it. The answers below should suffice.

This will be very helpful for those survival moments.

Yes it's possible. You can turn on the battery saver mode anytime.
Goto Settings -> Battery -> Battery Saver -> On

You can easily turn off anytime by opening the notification and selecting
TURN OFF BATTERY SAVER option.

I don't have this On/Off switch: http://i.imgur.com/9UCT0ZT.png http://i.imgur.com/mgKMDNx.png (Lollipop Cyanogenmod)

Mine only lets me choose between 5%, 15%, or turning battery saver completely off. LG G4, Android 6.0


text:
Car charging at below 500mA
I've plugged the AC charger for my Samsung Galaxy S4 into an inverter connected to my car's DC outlet.  The inverter is able to power my laptop AC adapter without issues.  The S4 charges, but not at full amperage.
The app Ampere shows that power input is at or below 500mA instead of the 1200mA shown when the adapter is connected to a wall socket.  Charging happens at a rate comparable to what is shown by Ampere, and similar to that seen when the phone is connected to a USB port on a computer.
Does Android or the Galaxy S4 refuse to allow charging at over 500mA if the quality of current is different from what would be provided by a wall socket?

I realised thanks to an answer from another question that the problem was actually with the cable. I had been using an old Samsung cable and when I replaced it with a new one the displayed milliamps went up to 1200.


text:
What is the content of data/misc/wifi/softap.conf?
I was going through a question about how to find a saved password in a rooted phone and while doing this I found a file in data/misc/wifi/softap.conf. What is the content of this file?

please consider posting a comment before downvoting....(I am not against downvoting but i should know the reason so that i will not repeat the mistake if any).

A .conf file is usually readable by any text file reader as long as permissions are correct.
The said file contains SSID and password of your portable Wi-Fi hotspot. E.g.:
Android.SE  #$#$ANDROID

where Android.SE is the SSID which other users would see when trying to locate Wi-Fi network and #$#$ANDROID is the password they need to enter to connect to your hotspot.
As for the name is concerned, I never researched for it because I know ap → Access point, and I've seen softap term in logcat's output when enabling hotspot.
There are other ways to see the content of this file. In my Android 4.2.1, I can do:
adb shell su -c 'service call wifi 30'

As for the Android 5.0 (CM12), it would be:
adb shell service call wifi 36

The output isn't very human-friendly but it's not unreadable, and you can easily see SSID and password of hotspot.
Edit: For those who might wonder what those adb shell .. commands actually does in bits and pieces, here is a missing piece:

adb shell: you get a remote shell (access to device)
su: to attain root privileges, use if only necessary; -c: is to pass the following command which would  be executed with root privileges
service: it allows you to read and manipulate services running in your system. Enter adb shell service list to see a list of running ones, and adb shell service to see the command's usage.
call connectivity: to call a particular service (connectivity here). Name of services can be found using service list.
36 is the number assigned to a function of the connectivity service amongst many of it, which we're calling here. You can also pass an integer or a string to the function like adb shell service call connectivity 36 i32 1, but it would take effect only if the function has provision to accept such value. Take a look here to see such functions.

Correct! it consists of SSID and password(I couldn't recognize it). Bieng a noob in android development i would like to know about "logcat" and the commandline thing "adb shell ....". By the way thankyou for your response.

@Jasser A quick note: This site is for end-users only, which means all development/programming questions would be off-topic. That said, "logcat" and "adb" is for end-users too, so try How can I get a LogCat?, and as for adb shell: it opens a remote shell on your PC where you can send commands to Android device. More Q/A only on a new question please. :) And do search since your question might be asked before.


text:
Moto X 2nd gen. randomly goes into Priority Mode
I own Moto X 2nd gen. and it goes into priority mode automatically. It is very annoying because the priority mode switches of my WiFi and reduces the phones ringtone volume.

About phone (click the image for its larger variant)

Are you sure that you're not activating it by accident? It is accessible via the volume buttons, so maybe you pressed the volume buttons by accident...

No, i have not activated it and not even from a volume buttons

Uninstall Battery Doctor
I figured out why this is happening. It's the Battery Doctor which turns off my Wifi and put my phone in priority mode.
I tested 3-4 times, when I enable (start) Battery Doctor, the issue was reproduced and when I forcefully stopped it, phone works properly.


text:
How to track total time using for any app?
To track time on Android, I use Time Meter, which supports Tasker. But in the configuration screen of Time Meter plugin in Tasker, I don't know how to put the foreground app name to it. Do you know how to do this?

There are many apps that can track time usage: ManicTime, RescueTime, SmarterTime

Variables can be used in those fields. The variable for the running app is %WIN. You can create a profile to check if the name has been assigned to the variable:
Profile > Event > Variable Set: %WIN

LINK TO TASK:
A1. Flash %WIN


text:
Why can't Windows detect phones, even when the USB driver is installed?
After reinstalling Windows, both two of my Samsung phones cannot be recognized by the OS. In Device Manager it shows this:

I tried to install:

Samsung USB Driver for Windows
Android Studio and SDK
Samsung Smart Switch

And activated USB Debugging mode, but none of this still work.
Despite of that Odin can still detect it:

Using adb devices -l yields this result:
List of devices attached
420039c4de446300       device product:j1x3gxx model:SM_J120H device:j1x3g

or
List of devices attached
504bc61e               device product:j2y18ltedx model:SM_J250F device:j2y18lte

Do you know why?

It seems that the reason for this is because you are using the N version of Windows. Microsoft explicitly states that some features are effected in this version. Users have reported that the wpdmtp.inf file is missing, and this is why the MTP protocol has error.
You can download Media Feature Pack to fix this.
And why does this need to happen?
From What Is an “N” or “KN” Edition of Windows?

These editions of Windows exist entirely for legal reasons. In 2004, the European Commission found Microsoft had violated European antitrust law, abusing its monopoly in the market to hurt competing video and audio applications. The EU fined Microsoft €500 million and required Microsoft to offer a version of Windows without Windows Media Player. Consumers and PC manufacturers can choose this version of Windows and install their preferred multimedia applications without Windows Media Player also being present. It’s not the only version of Windows offered in the European Union—it’s just an option that has to be available. This is why the “N” editions are only available in Europe.

Often you first have to install the driver and then connect the device. If you do it the other way around the driver will not be applied correctly. Delete the shown MTP entry and disconnect + reconnect your phone. Also run Windows update with enabled "updates for all Microsoft products".
Regarding adb your new PC is unknown to the device (because the stored adb RSA key has been lost because of the new installation) and therefore it denies adb access (device unauthorized).
You first have to unlock the device (enter pin/password/pattern) and then accept the dialog that asks you if your device is allowed to connect via adb.
And that Odin works at the same time is because Odin uses different drivers. From the perspective of your computer you have 3 USB devices, one for MTP, one for adb and one for Odin. Check it out by selecting the MTP device and then changing the device manager "View" -> "Devices by connection".
You will see al the USB device endpoints from your device.

Thanks. The ADB now can detect the phones. What do you mean by "delete the shown MTP entry"? Disable or uninstall the device? The OS is up-to-date

@Ooker Select the MTP entry and press "del" key on your keyboard. This seems to named "uninstall" in the context of the device manager.

I delete it and reconnect the phone but the new MTP entry still has error


text:
How to reinstall Calendar Storage?
I wanted to uninstall the default Calendar app to replace with Google Calendar. However, I accidentally uninstalled Calendar Storage before uninstalled the default Calendar app. The Google Calendar app won't work every time I try to create an event/plan. I assume this is because I uninstalled the Calendar Storage (app?).
How do I retrieve it? Is there a repo wherein I can just download it? I tried Googling, found nothing. My phone is a Huwawei Y320, Android OS version is 4.2.2

Is your phone rooted ?

Yes, phone's rooted.

@rjt.rockx you cannot uninstall calendar storage without root :) // OP: if you didn't make a backup beforehand, you're pretty much doomed: unless you can find someone with the same device and ROM (to obtain the deleted files from), you most likely will have to flash your ROM again. And no, almost no calendar app will work without the calendar storage – as that's an OS service most expect to be simply there.

Whew! My mom has the exact device. How do I "send" her Calendar Storage to my phone?

@Izzy, it can be done. I just installed the Kitkat version on my device, and when I tried to uninstall it, it got uninstalled directly, although it was a system app. Could be a glitch or something for specific phones. My present one wasn't rooted. To solve a problem, you have to experience it first. Precisely why I tried out my answer before posting it here. No need to worry, it worked out. Safety First :)

This should help http://rktool.blogspot.in/2014/08/lg-d802-422-stock-firmware-guide-how-to.html?m=1  It also talks of installing a part of ROM

Thanks so much the link http://android.stackexchange.com/questions/104979/uninstalled-calendar-storage-google-calendar-not-working worked ! ! !

You will have to download this app and install it as a system app, using Link2SD or any similar app. This is just another apk file from another Android Jelly Bean 4.2.2 phone.
Note : Please backup all your data before trying to do so. This way of installing apps is actually not recommended, but works out most of the times.

By the way, this does work, I have done it with my own device several times. Once, I even deleted SystemUI.apk, thinking it was unnecessary. When I realised my mistake, I installed it by creating a recovery script and flashing the app to the system/apps/ partition. It worked for stock AOSP, but custom ROMs are a doubt. Calendar Storage isn't linked in that way, so it is pretty much the same across almost all phones having the same Android version.

I downloaded this file: http://download.apks.org/?server=12&apkid=com.android.providers.calendar&ver=4.4.4-a1d45e8141
EDIT: This is for Android 4.4.4.  If you have another version of Android just do a Google search for the apk file.  Then, get it from a site you trust.  Also,  I have android 5.1, and it still worked,  so there's a possibility that it might work if you have a newer version of Android.
Next, I installed the apk file from the downloads folder.
Finally, I downloaded a /system/app mover from the Google play store (requires root), and made the calendar storage app a system app.
I rebooted, and now my calendar works perfectly!

Note that the provided link downloads the Calendar Provider for Android 4.4.4 (KitKat) while OP's version is Android 4.2.2 (JellyBean). Always install the same version as your Android, since different version may have different structure and incompatible with your device (source: self-experience on digging Android Calendar structure's source)

When debloating your phone, it's likely that you have to use an app for uninstalling root apps. Check if your app has a recycling bin. If you have, then restore it from there and restart your phone.
The app I use is System App Safe Remove.

Assuming your mum has es file explorer ( not necessarily if she has root) launch the app and on the default screen tap apps. All her users app should open .you should see a section at the left top where it says apps tap on it and select system. There you should find the app you are looking for . Long press on the app and tap the sharing icon .share Bluetooth or whatever. You may want to install before converting . Or you may just enable root explorer in es file explorer along the dashboard  copy the apk file. Go to the es file explorer dashboard , tap local , select device , go to system , app, and paste it there  then reboot  .`

"launch the app" - which app?

DO NOT use ES File Explorer. It has been involved in spam/malware incidents and displaying other suspicious behavior a handful of times in the last couple of years: https://forum.xda-developers.com/android/help/es-file-explorer-malware-dianxin-folder-t3348545

Here is what I did in a LG L90:
First, I went to Settings > About Phone > Common > Update Center > App Updates. Then I looked for the disabled app. There it was, Calendar Storage. I had to reinstall it, and then the problem was gone.

If you found this question via google because you deleted your Samsung Calendar Storage APK and your calendar app no longer works, then try this.  None of the above methods worked for me, so don't waste your time.
REQUIREMENTS

The original state of the ROM before you deleted the APK.  This can be in the form of a TWRP backup or you can flash the original, identical ROM you currently are using.
ES File Explorer
Root access - but you most likely already have this because you can't delete a system APK without root and you wouldn't be here in the first place.

PROCEDURE - PART 1

Do a TWRP backup of the current state of your phone.
Hopefully, you made a TWRP backup before you started debloating your phone, if so, restore that backup -OR- reflash your original ROM.
After you're done restoring or flashing, install ES File Explorer
Open ES File Explorer
Touch the "menu" button (3 horizontal lines)
Touch "Root Explorer"
Touch "Backup app and data"
Touch "User Apps" dropdown, select "System apps"
Touch & Hold "Calendar storage"
Touch "Backup" on the bottom bar

PROCEDURE - PART 2

Go into TWRP and restore your phone back to its current state, using the backup that you just created.
After you're done restoring, reboot phone
Install ES File Explorer if you don't already have it
Open ES File Explorer
Touch the "menu" button (3 horizontal lines)
Touch "Root Explorer"
Touch "Backup app and data"
Touch "User Apps" dropdown, select "Backed-up Apps"
Touch & Hold "Calendar storage"
Touch "3 Dots" button on the bottom bar
Touch "Install"

Done!

DO NOT use ES File Explorer. It has been involved in spam/malware incidents and displaying other suspicious behavior a handful of times in the last couple of years: https://forum.xda-developers.com/android/help/es-file-explorer-malware-dianxin-folder-t3348545

Here's an update for lollipop+. I did the same.
Downloaded this http://download.apks.org/?apkid=com.android.providers.calendar&ver=5.1.1-981c9024fa&server=darkkiller
Install-Moved to system-reboot. Job done :)

App cannot install


text:
How to prevent notification showing up when an event in my calendar is occurring?
When I have an event (mostly meeting) happening, I only touch my phone when I need to do something that serves that event like taking a photo or a note. If someone messages me in Facebook or email, I want to temporarily turn off those notifications until my job is done. I don't want to block the apps or turn off wifi because sometime I need open those apps to get the information I need. I am aware of a lot of blocking notification apps, but all of them are based on a fixed schedule, not automatically and flexibly turning notifications off based on my calendar.
So, in short:

Automatically turning notifications off when an event starts
Automatically turning notifications on when an event ends
Calendar is updated on a regular basis (I use Google Calendar)
Only direct call is allowed

My phone is S4 Mini, with CyanogenMod 4.

I don't know of any on-board configuration for that – but there are several apps available claiming to solve your issue. I've not tried any of them, but you might wish to take a look at my corresponding lists (check the "filter" and "settings" sections on the linked page).

Their is a notification program in android already if you are on Android 4.4+
4.4+ ... Hold on the notification and go to app info, Then deselect show notifications
5.0+... Hold on the notification and select hide notifications from this app or notifications like this !
Then manually turn the apps back on again !
The notification manager is in different sections of the settings for each device.. Some it is under display and others it's under privacy (sms reasons)

I know how this works. However, I don't want to hide them at all. I just want to automatically turn them off when I have an event in my calendar


text:
Why do widgets disappear after running out of battery?
After phone shutting down by running out of battery, when I start it again all the widgets disappear. At first I thought that this is a problem of my launcher (Apex), but even the native one (Trebuchet) lose all the widgets. They won't disappear if I shut down or reboot the phone as usual. Why is that?
Phone information:

OS: CyanogenMod 11
Model: Samsung GT-I9195
Launchers: Apex (free) and Trebuchet

Are you installing apps on your SD card? If so this is the main reason for this to happen. Apps having widget functionalities should be installed in phone storage . Some app even give you a small pop up saying
Widgets Functionalities might not work if you install this app in you external storage.
Hope This helped.

I forgot to add. No, I don't.

same here... I usually turn off the phone over night and when I power it back on the widgets are gone


text:
Why are filenames containing some emojis renamed to Chinese characers?
I have a setup to transfer my files from my Windows machine to my Android phone via Syncthing. I notice that some files whose names have emojis are renamed to  strange Chinese characters:

 C→ߌ⠃
 C→ߌ㠃
 T→ߌ䠔
 N→ߌ堎

As the result in my phone they are write-protected. I'm unable to delete them:

However files whose name contains this emoji ✔ are not affected.
Not sure if this is relevant to the problem, but for full information, when I try to remove this protection, diskpart doesn't detect my Android phone.
Next in line: Why are files with wrong character encoding name write-protected?

The cause is possibly due to wrong character encoding (similar case: Receiving Chinese blocks of texts in the Messaging app). Not sure how to fix it since I'm not familiar with Syncthing though.

Andrew nailed it in his comment. You can see a similar issue reported  between other Operating Systems and duplicate file names, here Unicode errors while syncing between Mac OS X and Linux
Maintainer of Syncthing says

... People moving files between systems have historically been stoically accepting of special characters getting mangled. Nobody in Sweden is that surprised when a file räksmörgås ends up being called r‰ksmˆrgÂs. That’s fine. But it doesn’t work when we need to sync changes bidirectionally between systems with different encodings...

(Emphasis supplied)
Background to the above discussion is the closure of this issue Sync between Linux and OS X causes massive unicode errors

do you know how to delete these files? diskpart doesn't detect my phone

Sorry, no idea about that


text:
Why can't my laptop detect my S3 phone?
I want to upload pictures from my S3 to laptop.
There is no problem with my cable and laptop because my phone was able to charge when I connect my phone with the laptop. However, my laptop didn't detect any device when I connect my phone in with the cable. Hence, I am unable to upload images / add songs to my Samsung Galaxy S3.

Possible answer here
http://android.stackexchange.com/questions/64751/note-3-cannot-connect-to-windows-7

For Windows OS, download and install Samsung USB Drivers for Mobile Devices from here, or here. Then, enable USB Debugging on your S3. Next, connect your S3 to Windows via the USB cable and you're good to go.

This post helps me. In short: just remove your SIM card and battery, wait for about 30 seconds and put it back.

@sameer the post has been deleted.

Samsung has very bad connections on that line of phones (S3, N2) I know this because I have a Galaxy Note 2 and about 6 months ago it was doing the same thing, then eventually it stopped charging all together. I also have a friend with S3 and the exact same thing had happened, except it wouldn't charge(luckily his was still in warranty).
You need to check if it is being detected in another PC, if not, the connection is broken.If you really really need to be able to plug it into a PC, you will have to buy a replacement charger dock port.
Or you can use airdroid to wirelessly transfer files to an from your PC over a wireless network.

Did you install the correct USB drivers for the Samsung Galaxy S3? If not, download and install Samsung Kies.
You also need to make sure USB tethering is disabled: Settings > Wireless & networks > More > Tethering & portable hotspot. Then, check USB settings: Settings > Device > Storage > Menu > USB computer connection.
Source.

So now it needs drivers for Windows even if you just want to access the storage? Didn't know that MTP was that bad. Besides, the page you link as source doesn't even mention the word "driver" -- it basically says "plug in the USB cable and enjoy": When you connect your phone to the USB port on your computer, its USB storage is mounted as a drive and appears on your computer screen. -> the word is "drive", not "driver" :)

@Izzy Windows users still have to install USB drivers for the phone, so that MTP / PTP will work correctly.

OMG. I see, MTP is a real improvement over UMS. With UMS, one can simply plug the device in any Linux/Mac/Windows computer, and it's detected like any USB stick. MTP doesn't seem to work out-of-the-box anywhere -- and I know quite a few people who'd rather kill me than letting me install "some driver" to their Windows computer, as I'm not the vendor and they're afraid for their warranty or whatever. Ooops  :) So why doesn't that Google help page mention this? To me it looks like "Plug and enjoy, no drivers needed". Strange.

@Izzy UMS can be dangerous, because it exposes every file/folder to the regular user. With MTP, the user sees only what is "safe" to touch. They can still make mistakes and delete stuff, but it shouldn't be dangerous enough to brick the phone.

Yeah yeah, sorry. I didn't want to start discussing their pros and cons here (there are both; if you like to, we can do that in chat -- but here's the wrong place, my fault :)

My problem was solved when I restarted my phone. After that, it automatically detected my phone from my laptop

Few Samsung phones have issues with their micro USB ports. Even my Galaxy Nexus has had this problem. The easiest way to fix it it use a pin(something shard) and push the micro USB port of the phone slowly and very carefully to the screen.
I suggest you to take it to a authorized service center though.

Maybe you have connected the device as PTP but not MTP. Follow these steps to connect through MTP-

First connect the USB cable to your laptop then scroll the notification bar down and you will have USB icon box ,Click on that and change your connection to MTP (Media Transfer Protocol) to transfer files in Windows.
Now that you have the proper settings you can connect to the Laptop. As soon as you connect your laptop the Windows Operating System will try to identify the hardware(Mobile device) connected and install its drivers which would be already present in the Operating system thus making it a plug n play Operating System.
Else if you still are unable to change the setting then visit this link
it has a complete description along with pictures

Else if not available then you need to update your drivers either through the windows update >USB Drivers for Samsung or manually download the drivers from the Samsung site.

We people have issues like that too. I am not so sure about Samsung S3, but I am sure about Android, I had an android phone, whose Drivers were perfect! I have checked for Drivers by the CD that came.
The issue is either not because of the cable, because if it charges well then it must connect to PC too, then where is the issue?
Here are the two major reasons:

Please check that your USB supports fast data transfer (USB 2.0), because Android would try to connect to a faster one.
Please note that there is alot of issues with Android itself too. Like many other apps running. When you connect to the USB, you get a popup that connecting usb storage would stop many other apps bla bla. So that is a reason too as android does not want to stop some personal apps from working. For this, you can restart the phone. This way this issue would be resolved, I have checked this one more than 5 times.

And USB tethering is just related to Internet, you won't get to use Internet on your connected PC, if you're having the tethering settings turned off. So that has nothing to do with the USB Storage!
Tip: When android gets the favourable conditions it would itself show the Connect dialog, otherwise you might need to change the port of USB you are connection too. Ory try the might Restart-the-phone trick. This way, you will get the images there! There is no other issue, I have been facing this issue for a long time. Then I caught the errors, the basic one is the USB port, then the Android apps; for that you can restart the phone.
USB drivers are installed by Default while you're connecting the device by general. In Windows OS (That's the only one I use) you would see the popup saying Installing Device Drivers, if that goes perfectly, then you can connect the device. Otherwise the only is this! Or there is a bug in the ROM (if you installed a custom ROM).


text:
How to use phone as camera and microphone for PC via ADB?
There are many previous questions asking about how to use the phone as camera and microphone for PC. For example:

Use my Android phone as the camera and microphone for PowerPoint slide recording
Using Droid as a computer microphone via USB?

However, all the answer involve installing an app in the phone. In my experience, DroidCam and IP Webcam are way too lagged. I cannot use them for online conversations, like using with Zoom. I think if there is a way to do that via ADB, then it will be much faster. We have such solutions for projecting phone's screen.
Is there a way to do so? If no, then why is that?
My Android version is 7.1 (SDK 25).

You can use the combination of scrcpy and sndcpy. both uses adb.
scrcpy github: https://github.com/Genymobile/scrcpy
sndcpy github: https://github.com/rom1v/sndcpy

Your answer is too short and mainly consists of two links. Please extend it and describe in details how the two tools can be used to use the phone as camera and microphone.

sndcpy only works for Android 10 and above


text:
No app found to open .apk file
I turned on unknown source installations, downloaded Confluence 1.71.13 apk via browser. When the download finished I tapped on the notification to sideload it. A message popped up saying:

No app found to open .apk file

Why did that happen? I can install it via App Manager, but I don't understand why this happens. Googling the error doesn't yield any useful info.
My Android version is 5.1.1.

How did you sideload it? Is it from a file manager app?

I downloaded it via browser, then tapped on the notification when the download finished

-->  If you tap the file from the Download list in your preferred browser, you'll get the error!
You have to go to the FILE MANAGER, then there into your DOWNLOAD HISTORY respectively the FOLDER where you saved the .apk file.
Then tap the .apk file to open it, then you might have to choose (depending on your basic settings for "Installation from Unknown Sources") to allow (option for "only this time" or similar) an installation from an "Unknown Source".
There you go! :)

This is the correct answer!


text:
Apps launch automatically after update in Google Play Store
I am using Samsung Galaxy S4 I9505 running on Android KitKat 4.4.4. If there are 5 apps to update, all the apps open automatically after the update. My Google Play Store's current version is 5.3.6.
Why does this happen and how to prevent it?

That shouldn't be happening to anyone (or else, I won't use Android if that's the case). There's a similar question that says "updating Google Play Service fixed my problem". Try that? Else, there's little info to research currently... do you have an app that scans other apps when updating?

Mr.Andrew I don't have any third party app that scans my apps while installing. Even now i cleared cache, data and uninstalled the updates of google play. Rebooted my phone and update my play store to 5.3.6 installed an app and it happens again.

I believe you have an app installed that monitors other apps.
For example, an app called Earn Talktime does the same. These apps launch other apps (on installing and updating) for monitoring whether that app was installed through their offer or not.
Simply uninstall any app like that and the issue would be gone.

As answered by devconsole in the comment.

If you want to find out which app is responsible run adb logcat, look for ActivityManager: START u0 {act=android.intent.action.MAIN ... from uid xyz on display 0. Note the uid number, then run adb shell "dumpsys package" to find out what app that uid belongs to.

My case was Mr Jump game.

It's a Play Store bug.
Uninstalling updates of the Play Store in settings should fix the issue. It is drastic but app opening every time you update it is annoying.
This fixed my issue when wiping cache partition did not.

Could you mention the source where you saw this bug reported?

I have also tried uninstalling the updates and clearing the cache of play store i didn't worked for me. You are telling me to just uninstall updates no to clear cache. Am i wright?

@Firelord I just experimented and uninstalling update seemed to work for me am using oneplus one with 5.0.2 lollipop

@BunnyJoel I did clear cache before uninstalling updates

@user2975796 even I did same thing. first cleared cache, second cleared data and third uninstalled updates of play store. When I open play store it automatically gets updated when ever I update apps same error occurs.

@BunnyJoel hi I just found the same issue in Sony z2 when I installed stock Android, and it was not going away with just clear cache so I factory reset it and the issue disappeared, I know it was not the best way to do it but that did the trick so I thought it would help

The solution for me was to delete the TVSMILES UK app. Once that app was deleted, updates didn't auto-open apps.

Do a cache partition wipe, as described here: https://support.google.com/nexus/answer/2668187?hl=en.

I will try that Mr.Peter Carlos. Is there any other solutions except resetting my phone. Could you please share the information with me. Thank You


text:
Boot loop after flashing Android 6.0 Marshmallow on Nexus 5
This question follows up on Boot loop after flashing Android 6.0 Marshmallow on my Nexus 5 (but there are many other posts about this topic on the web, see this Reddit post and this XDA Developers post).
I just want to approach this problem in a more structured way as opposed to just saying how something worked by coincidence.
Problem definition
Like everyone else, I simply followed the official instructions from Google developers. To expand a bit (because this could be the cause of the problem), following this part of the instruction from the above link:

To flash a device using one of the system images below (or one of your own), you need the fastboot tool. You can get the fastboot tool either:

From a compiled version of the Android Open Source Project.
Or, from the platform-tools/ directory in the Android SDK. Be sure that you have the latest version of the Android SDK Platform-tools from the SDK Manager.

So I simply downloaded the entire Android Studio application (I know that's a bit of overkill but I just wanted to make sure I got the latest and greatest).
From the below Android Studio screenshot, you can see that I have Android SDK Platform-Tools 23.0.1.

Question: I'm updating my phone from Android 5.0.x (not sure what the exact version is). Could it be that this Android version mismatches the Android platform-tools that I have?
I've ensured that my fastboot is added to my PATH environment:
$ which fastboot
/Users/abdullahbakhach/Library/Android/sdk/platform-tools/fastboot

I've downloaded the flash file (specifically the hammerhead for Android 6.0.0 (MRA58K)), then I started the device in fastboot mode by the key combination, and ran the flash-all script.
What happened was that the script ran with the following logs:
$ ./flash-all.sh
sending 'bootloader' (3120 KB)...
OKAY [  0.207s]
writing 'bootloader'...
OKAY [  0.524s]
finished. total time: 0.731s
rebooting into bootloader...
OKAY [  0.001s]
finished. total time: 0.001s
sending 'radio' (45425 KB)...
OKAY [  1.536s]
writing 'radio'...
OKAY [  3.145s]
finished. total time: 4.681s
rebooting into bootloader...
OKAY [  0.001s]
finished. total time: 0.001s
archive does not contain 'boot.sig'
archive does not contain 'recovery.sig'
archive does not contain 'system.sig'
--------------------------------------------
Bootloader Version...: HHZ12k
Baseband Version.....: M8974A-2.0.50.2.27
Serial Number........: 03a3d66d0a4e64bd
--------------------------------------------
checking product...
OKAY [  0.100s]
checking version-bootloader...
OKAY [  0.100s]
checking version-baseband...
OKAY [  0.100s]
sending 'boot' (9156 KB)...
OKAY [  0.500s]
writing 'boot'...
OKAY [  0.798s]
sending 'recovery' (10016 KB)...
OKAY [  0.562s]
writing 'recovery'...
OKAY [  0.850s]
sending 'system' (1019261 KB)...
OKAY [ 32.164s]
writing 'system'...
OKAY [ 70.421s]
erasing 'userdata'...
OKAY [ 15.854s]
erasing 'cache'...
OKAY [  0.630s]
rebooting...

finished. total time: 122.480s

Question: should I be concerned about this part?
archive does not contain 'boot.sig'
archive does not contain 'recovery.sig'
archive does not contain 'system.sig'

Anyways after all is done, the phone reboots and gets stuck on the boot screen (forever).
What I've tried
I've tried running these commands as suggested by this post
adb shell
e2fsck /dev/block/platform/msm_sdcc.1/by-name/persist

and
make_ext4fs /dev/block/platform/msm_sdcc.1/by-name/persist

but nothing changed.
I've also tried performing a wipe using TWRP as suggested by this post:

I downloaded the twrp-2.8.7.1-hammerhead.dmg file from the twrp site

and then ran
fastboot flash recovery twrp-2.8.7.1-hammerhead.dmg

then performed a wipe two different ways:

performing a normal wipe pretty much made things worse. The phone would show the Google logo then reboot, show the Google logo and so on.
simply deleting the cache also didn't make any difference at all.

I'm stuck. Any suggestions?

I too faced this issue and issuing the fastboot commands manually (instead of relying on flash-all) and it worked well.
These are the commands to use (just forget everything and make sure these commands are executed in this order with the appropriate .img file available):
fastboot flash recovery recovery.img
fastboot flash boot boot.img
fastboot flash cache cache.img
fastboot flash userdata userdata.img
fastboot flash system system.img
fastboot reboot

mmm.. i just tried that.. it seems to still be stuck on that load screen.. how long did it take before it finally booted properly for you?

it actually worked! it just took it a bit to reboot (tip: how do you know that this time it will work? i noticed that the screen wasn't as dimmed as those times it usually fails.. also i advise you not to wait for it.. put your phone somewhere else and go on with your business)

Yeah, sorry to leave you to find it yourself. It took me more than five minutes to cross the marshmallow boot animation.

Thanks guys. By the time I got this far reading the thread the startup finished successfully. :)

On Nexus 9 I've also got vendor.img, and I have no userdata.img. Do you know at which moment to flash the former and why there is no latter?

See this Link, where it is explained why Nexus9 differs. By the way how could we address you, when we can't type your name?

@Narayanan if you just type '@' into the empty comment box, it should offer to complete it for you. Other than that, copy & paste...

Thanks @derobert I am aware. I just want to keep that user informed that having a non-English name makes things difficult (just a suggestion to consider). I guess the site allows only one @. And I found it super difficult when I had copy and paste using a mobile keyboard.

authors: მამუკა ჯიბლაძე


text:
What is "systemless root"?
Chainfire (the developer of SuperSU), has come up with a new style of rooting devices on Android 6.0 Marshmallow and above. This is "systemless" root, and is all the rage right now. So, just in case anyone feels curious, I thought there should be some information about "systemless" root here for future reference.
The main question:
What is "systemless" root, exactly?
This question has 2 ancillary questions, which are:

Where is it more applicable over traditional "system-based" root, and how is it different from it?
Is it better than traditional root? If so, how?

A comprehensive answer to the main question along with the ancillary questions will be preferred.

Main Answer:
Systemless root is a rooting method/procedure developed by Chainfire (the developer of the popular root management app SuperSU) which involves a modified boot ramdisk image. The superuser su binary becomes a kernel inclusion instead of existing under /system/xbin/, like in normal system-based root.
Ancillary Answers:

Preference of systemless root over traditional root:
It was initially suggested by Chainfire to be useful for Nexus devices from Marshmallow onwards to prevent rooted users from having to reflash the entire stock system, boot and recovery partitions before undertaking even a minor OTA update, which has since become more important as Google has introduced the policy of pushing out monthly security updates through OTAs, and flashing the entire device every month is tedious at best.
Systemless root eliminates the heavyweight system partition from the flashing equation, allowing the devices with systemless root to be updated just after reflashing stock recovery and boot.
Pros of systemless root over traditional root:

Utility when OTA updating devices as mentioned above.
The modified boot image gets rid of the "Tampered" screen on Android bootup from Marshmallow onwards, if the device has a non-stock partition, most commonly recovery.
No exploits required. Systemless SuperSU can technically be flashed as a boot image through fastboot, although it is normally done by flashing a zip in a custom recovery, which automatically patches the on-device boot image to make the necessary modifications to support systemless root.
It works with an SELinux Enforcing security condition, while traditional root needs SELinux Permissive on Android 5.0 and up.
It unintentionally circumvents Android Pay and Android for Work root restrictions, which work with traditional root.

Cons of systemless root over traditional root:

Quite buggy and is still in BETA stage, although it is being actively developed and is definitely usable (from personal experience). Edit: No longer buggy and the default rooting method on Android 6.0.1 and up when using SuperSU.
Some custom kernels like LeanKernel refuse to work with systemless root as they need traditional root for functioning properly. Edit: Most custom kernels now recommend systemless root, a well-known such kernel being ElementalX.
Some root apps may not work with systemless root as they hard-code the path-to-su in their code, which is only applicable for traditional root.
Not sure if this is actually a con, but systemless root is the only recommended rooting method that will work on Android 6.0.1 and up.

Sources:

XDA-Developers
Nexus 6P Reddit thread (not sure if it's very reliable)

"Systemless" is a horrible term. They should've used "touchless", "modificationless" or anything else.

@Marc.2377, not really. If you read the answer, you'll realise that it is called "systemless" because it is systemless, i.e., the rooting procedure is not modification-free with respect to everything, only with respect to the /system partition. The /boot is modified, so definitely not modification-less. And what does "touchless" even mean in this context? Please explain why you said what you said, because I disagree with you.

I read your answer, and on second thought, my suggestions were also pretty bad. Sorry. About "touchless", I meant "untouched" (as when you download a bitwise-identical copy of something, like an operating system ISO image), but please disregard that also. I still stand, however, on the affirmation that "systemless" is a horrible name. It seems to imply that the rooting procedure contains no system at all. I'm just being picky, don't take me too seriously :)

Systemless root, developed mainly by Chainfire, is an alternate method to root your phone without altering files in your system. It makes changes in the boot image instead of the system files like init, etc, and hence makes rooting and unrooting theoretically easier. It is an experiment, so I don't think it works perfectly. It also could circumvent Android Pay root restrictions, but Chainfire did not expect that, and says that Android Pay would be patched to push out any such root users too.
For more information about it, check the xda article. The dev also has a forum here.

Adding relevant extracts from the XDA post would improve value of answer. Please consider


text:
What is this Phone/Eye Icon in my notification bar on LG Volt?
This icon appears seemingly at random, especially on my lock screen but not always. I can almost guarantee it pops up if I make a screenshot but I am not sure. I am on an LG Volt phone from Boost Mobile, and I was able to (finally) screenshot this icon after wondering about it for over a month.
A screenshot of the image is here:
Any guesses or preferably solid answers to what this could be are very much appreciated! It only appears for a brief moment (sometimes not even a second) before it disappears again.
I want to reiterate I see it most on my lock screen, but there could be other times it happens that I am not noticing.
Thank you in advance for your assistance in identifying what this is!

This icon seems to be some "user is active" icon that notifies you when the device captured you looking at the phone, but not actively using it.
There is a similar icon I know from my Samsung device that is meant to do this. It will prevent the display from becoming dark/locking the device so you can read your article, book etc. without tapping on the screen to keep it bright and unlocked.
If you like you may be able to disable that feature (active camera uses quite some battery) in the Display settings under Smart Screen.
Reference: How to Enable Smart Screen on LG G2

Yes, this feature is like the "Smart Stay" feature on Galaxy S devices. Where it keeps the screen on while you are looking at the device.


text:
Nexus 5 has no settings to change runtime
I'm using Nexus 5. It was running on KitKat and I updated to Android L.
I wanted to try and check out if it's running on Dalvik or ART, but the settings to change runtime in the Developer Option is not there.
Does my phone have to be rooted?

Screenshot (click image for larger variant)

From the official Android Lollipop website,

Android 5.0 provides a faster, smoother and more powerful computing experience.
Android now runs exclusively on the new ART runtime, built from the ground up to support a mix of ahead-of-time (AOT), just-in-time (JIT), and interpreted code. It’s supported on ARM, x86, and MIPS architectures and is fully 64-bit compatible.

(Emphasis mine)
So, starting from Android 5.0 Lollipop, it will run on Android Runtime (ART). AFAIK, there is no way to change back to Dalvik runtime.


text:
Is the app version I download always the latest?
I recently submitted an app to the Android Market to quickly realize that I had left in a bit of code that needed to be removed. I quickly re-submitted a new version, but was wondering if the Market makes you download version 1 and update it.
I could not see this being the case, but when I tried to re-download the new version after removing the old one from my phone - it was exactly the case. The faulty version 1 was downloaded and I needed to manually update it to v1.1.
Does anyone have any ideas?

The only way this would happen is if you downloaded the old version of your app before Google had "pushed out" the new version you uploaded.  If you download an app you won't get anything but the most recent version Google has available.  I assume you just didn't wait quite long enough after uploading before trying to download it.


text:
Why are files with wrong character encoding name write-protected?
I'm unable to delete the files with wrong character encoding in names on my phone. I plug it into my Windows PC and try to delete it in File Explorer. It says the files are write-protected:

This guide tells me to
su
restorecon -v -R /data/media

The output is
u0_a82@j1x3g:/ $ su
root@j1x3g:/ # restorecon -v -R /data/media
Function: selinux_compare_spd_ram , priority [2] , priority version is VE=SEPF_SM-J120H_5.1.1_0069
SELinux: Loaded file_contexts from /file_contexts
SELinux: Skipping restorecon_recursive(/data/media)
root@j1x3g:/ #

But the deletion still doesn't work. Nevertheless I can do this via adb.
Do you know why this happens?

From what OS is the first screen shot. Assuming you are trying to delete a file on an Android phone how is the PC connected to the Android phone and how do you try to access/delete he file (MTP protocol?).

Yes. I'm unable to delete it on my phone. I plug it into my Windows PC and try to delete it in Fine Explorer. Probably it is via MTP

What Windows version do you use? The dialog does not look like Windows 10 or 11. Older versions of Windows my contain bugged MTP implementations and thus fail to delete the file, or it is a general bug that affects all Windows MTP implementations. Unicode can be sometimes pretty complicated when it comes to characters that can be written as one or two characters.

It's Windows 11 though


text:
How to get the phone total uptime?
To describe the issue better I need to define the word "total uptime". We all know what the uptime is: a number of hours since the last reboot i.e. the amount of time when the phone was on. I want to know the same number but throughout the entire device lifetime, I want to know how many hours (days, weeks) the phone was powered on since the production date.
Is there any programmatic way to obtain this info via ADB or any other toolset? Can a battery health be an estimator? Does it have any measurable metrics of wear?
I am interested in all ways, both for rooted phones and not. My device is Samsung S21, but I'm interested for generic way which will work for all vendors.

I don't think that there is a way to detect the whole life uptime of a phone: the common uptime is easy to get/calculate because you only need RAM to calculate it or even better use the CPU counter (not sure if RAM CPUs contain such a counter). However for the total uptime you need persistent storage to save the states, otherwise the state would be lost after a power off or reboot. Most chips don't contain flash storage which reduces the chance that the total uptime is somewhere recorded. The best chance would be the flash storage system itself.

But in difference to SSDs in PCs which collect a lot of usage data you can get via S.M.A.R.T API the flash storage of phones is a bit more simpler so I don't know what data is collected and if there is a possibility at all to retrieve them if they are collected.

I kind of remember this question has been asked before (or perhaps I mistook it with "first-time boot/power on"), but somehow I can't find it, and AFAIR there was no satisfying answers (if any).

Ambiguous dupe of How to know how long my smartphone is running, though the accepted answer is about "uptime since boot".

@AndrewT. yes, the abovementioned question is about regular since-last-boot uptime, not the total lifecycle one.


text:
How to permanently disable or remove preinstalled apps?
I have an older Google Nexus 4 (by LG), running 5.1.1 Lollipop (latest supported version). I want this to be my daughters first smartphone, and want to lock it down as much as possible.
So besides my own user account on the device I created a second user account for her. I installed the apps she should be able to use, but want to restrict others.
So I went on and disabled all apps she should not be able to use.
However, all disabled apps keep re-appearing on her account after a day or so.
I went on and disabled automatic app updates on my own user and on her account, then went on and again disabled all apps on her account, but they keep re-appearing.
Question is: How can I permanently remove apps (especially the pre-installed apps like YouTube, Google, News, GMail, Hangouts, Play Books Play Music etc.) from her user account?
Rooting the device is not an option.

See if my answer helps. Check the non-root section. https://android.stackexchange.com/a/208271/96277

Try this way:

Connect device via ADB
Go to ADB shell
adb shell

Find your target app by listing all the apps
pm list packages

Remove app like this
pm uninstall -k --user 0 com.android.inputdevices


text:
How to check 5G NSA connection status on Samsung Galaxy?
I am aware about the different apps for checking 5G connection status on Android, the most useful of which I see CellMapper which says a lot of useful info about the current 5G connection. The one piece I am still missing is the deployment type of the 5G on the cell tower I am connected to. What I mean by deployment type is either SA (Standalone 5G) or NSA (non-standalone). Briefly speaking, it is the way 5G connection is established on the cellular infrastructure, either it uses the legacy 4G equipment (NSA) or new 5G equipment built from scratch (SA).
I wasn't able to find that info in CellMapper, nor in the ***#0011#** service menu

Is there any way to check this info? I am asking specifically for Samsung Galaxy but appreciate any Android-wide answer.
P.S. I have Samsung Galaxy A35 and I'm on Metro PCS carrier.

I would first check your phone (of which you did not mention the model) and your MNO  (also not mentioned) if they support 5G SA at all. I just read an article that only 124 of 588 5G networks worldwide support 5G SA at all.

thanks for the note, I updated the question and added the MNO and device info

I don't want anecdotal evidence, like you suggest. Every carrier constantly improves its network adding new base stations, and what was true yesterday is no longer valid today, new SA towers may be added already. I want a reliable software/hardware way to tell the parameters of 5G signal


text:
Save a number during a phone call
How can I save a number during a phone call? The scenario is that I'm calling someone to get the phone number of someone else. If I just type the number in the dialer, it disappears when the call ends.
Opening some kind of notepad application is cumbersome both saving and retrieving: tap home, tap applications, find the application, start a new note, type number, end call, copy number, paste number into the dialer (how to do the last step is another question)

Can you ask the other party to text you the number?

...or, even, text yourself?

While on call, click the Home button, go to Contacts, and add a new contact. The active call stays in notifications and you can bring it back up anytime.

I have a Samsung Galaxy, and when I am on a call, I have the ability to create a memo by pressing the menu key and selecting the memo option.

On my phone (Oppo A71), the number does not disappear when the call ends. I can also take a screenshot of that with 3 fingers.

It is not a perfect answer but most note applications should support automatic hyperlink creation with phone numbers. In my case I use ColoreNote and the process would be "open app" -> "create new note" -> "write #" -> "hangup" -> "click on number" and the call starts...

I'm not sure if this is an answer to the question asking how to memo a different number during a call. Could you clarify it?

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


text:
How to check IMSI/ICCID on MIUI10?
Is there any way to view IMSI and ICCID numbers of my SIM-cards? I didn't find such menu neither in About-Status nor anywhere else.

There are APIs available which apps (like this) use to read SIM information. Looking for CLI solution (refer to this, this and this), we can get IMSI and ICCID with following commands respectively (up to Android 9):
~$ service call iphonesubinfo 7

~$ service call iphonesubinfo 10

* Codes depend on order of methods defined here, which may differ on different Android versions.
* For dual SIM device use code 8 and 11 instead and append i32 2 to command to get second SIM information.
Pass the output through following pipes to convert hexadecimal output to a good looking string:
... | grep -oE '[0-9a-f]{8} ' | while read hex; do echo -ne "\u${hex:4:4}\u${hex:0:4}"; done; echo

Terminal emulator apps usually don't have permission READ_PHONE_STATE (though you can grant manually with root) which is required by both functions. So commands need to be executed from adb shell.
Codes 7/8 correspond to getSubscriberId and 10/11 to getSimSerialNumber. However both methods have been removed for normal apps usage in Android 10. Only system apps with READ_PRIVILEGED_PHONE_STATE will be able to get this information. iphonesubinfo service can't be dumped with dumpsys either. So root is the only solution on Android 10+.
RIL may also log the operator/SIM related information to logcat when SIM state changes. With root access it's possible to read telephony database (the component of application framework which interfaces RIL) and also RIL database itself (which interfaces modem). On my Qualcomm device RILD stores information to /data/vendor/radio/qcril.db including ICCID and MCC/MNC.
~# sqlite3 -line /data/user_de/0/com.android.providers.telephony/databases/telephony.db 'select icc_id,card_id,carrier_name,display_name,mcc,mnc from siminfo'

~# sqlite3 /data/vendor/radio/qcril.db 'select ICCID from qcril_manual_prov_table'

As of Android 9 IMSI is also stored in /data/system/netpolicy.xml to set mobile data limits for MNOs separately.
~# grep -o 'subscriberId=[^ ]*' /data/system/netpolicy.xml

RELATED:

How to get 2nd IMEI number using adb?

Thanks, finally tried this exceptional answer, it works!

One more question: I have 2-SIM phone, but putting the i32 2 after 8 or 11 doesn't do the job, it gives me the same numbers as w/o this append. Is my command correct?

service call iphonesubinfo 11 i32 2 | grep -oE '[0-9a-f]{8} ' | while read hex; do echo -ne "\u${hex:4:4}\u${hex:0:4}"; done; echo

@Suncatcher you may try i32 1 or i32 0. For all Android 9 sub-releases order of getSubscriberIdForSubscriber and getIccSerialNumberForSubscriber methods is 8 and 11. If it doesn't work then possibly Xiaomi changed the source code. You have to do hit and trial.

Well, for IMSI 8 i32 3 works, and for ICCID 11 i32 3 gives 8938001120308300159F instead of 8938001120308300159. Probably we should correct regex for extraction of ICCID but I have no idea how. I've never dealt with hex-extract in regex

@Suncatcher in raw output I get 00000000 in last row. Do you get 00000046 (which becomes F)? You can ignore last character using head or tail.

in raw output I get 00000000 in last row the same. Interesting why it is so different for 2nd SIM. Tried to append | head -c -1 and | sed -e 's/;$//' after echo but that didn't work. How to cut the last sign correctly?

@Suncatcher 00000000 itself turns to two Unicode null characters. So you need to do head -c -3.

it says head: -c < 0 (see "head --help") seems to be the wrong syntax

@Suncatcher use busybox head. Android's toybox is limited.


text:
Pending Notifications icons are black and white (no color)
I have a Nexus 5.
All of the sudden I've noticed that the pending notifications icons at the top left of the my phone are black and white instead of some of them being colored. I don't know what happened. I didn't change any settings in the past couple of days. The only thing I've done is installed Yahoo News digest App.
Is there a setting that I could double check or someplace on my phone that addresses this problem?

Correct me if I'm wrong, but wasn't that supposed to be this way with Kitkat?

@Izzy I don't think all of the icons are supposed to be black and white. I'm not 100000% certain, but I think some of my pending notifications icons were colored before.

According to the official design guide, notification icons are supposed to be white only.
Some apps do break the rules, so perhaps it's just that you had an app that used to have colourful icons but was updated to bring it into line with the rules.