text:
How to get notified about removed apps from Google Play Store?
Recently I found some apps (which I already installed) have been removed from Google Play Store for different reasons according to Google.
Is there a way to get notified about removed apps from the Play Store, like some app to check currently installed apps, whatever (special) newsletter/feed for this or any other way?

Are you open to get your hands a bit dirty? AFAIK, a Play Store user officially cannot come to know why an app was removed from Play Store. Only the developer of the app would be privy to this information. The only way we can know that an app doesn't exist is by visiting its page. If the app doesn't exist, server would return 404 HTTP code. We can use tasker to query the URL (containing  an installed app's package name) and match the returned HTTP code. If 404, notify user the way you want. You can run this query every day or after any number of hours/days.

@Firelord that would require a quite complex task to setup in Tasker (but gives me a nice idea for a new feature in Adebar – see https://github.com/IzzySoft/Adebar/issues/17 ;) One would have to gather package names for all user-installed apps, query the corresponding playstore pages and, whenever a 404 pops up, perform "some action" (notification plus something more permanent in case of device reboot etc). Be welcome to setup such an answer :)

The whole answer relies on the fact that when this query is made:
https://play.google.com/store/apps/details?id=PKG_NAME    # PKG_NAME is the package name of an app

among other things, the HTTP code in the returned headers in most of the cases would either be:

404 (resource not found) - app not available
200 (success) - app available
403 (forbidden) - app not available in your region or you're not authorized to access the resource

I've used the said information in the two solutions proposed here.
Automation
I found Tasker (user guide) apt as well as flexible for the job. Details on trigger i.e. Profile would follow later. For the time being, follow these instructions for the core.
Create a task named App Status and create the following actions in it:

Code→ Run Shell

Command: pm list packages -3 -i | grep -e "com.android.vending" -e "com.google.android.feedback"
Store Output In: %Pkgs
select Continue Task After Error

This will store the list of all the apps' package names installed from Play Store, into variable Pkgs. Remove
-i | grep -e "com.android.vending" -e "com.google.android.feedback"

from Command if you don't want to restrict the task to apps installed only from Play Store.
Variables → Variable Set

Name: %ret
To: tap Enter key in your keyboard for once

I learned this step from the post here by plepleus. This step is needed because we intend to copy each line (has a package name of an app) from Pkgs into a separate variable. It is for ease of use.
Variables → Variable Split

Name: %Pkgs
Splitter: %ret

This step splits Pkgs, makes an array of Pkgs and each line is assigned to an index of that array. Hence, the size of the array is the number of lines Pkgs had.
Variables → Variable Set

Name: %Count
To: %Pkgs(#)

We're creating a variable named Count and assigning it the length of Pkgs array, for the purpose of looping.
Variables → Variable Set

Name: %Tmp
To: %Pkgs(%Count)

Now that we're in a loop, we're storing the value assigned to a  Pkgs's index into a new variable named Tmp. This step is needed because Tasker has limited functionality when dealing with complex variable names.
Variables → Variable Split

Name: %Tmp

This step splits the line at whitespace and store the preceding and succeeding fields into Tmp1 and Tmp2. Tmp1 contains the package name among other things.
Variables → Variable Split

Name: %Tmp1
Splitter: :

This step finally extracts the package name from Tmp1 and stores it into Tmp12. Note that if Tmp was not declared in action 5, we would have been forced to split %Pkgs(%Count)1 which is an invalid variable name for Tasker.
Net → HTTP Get

Server:Port: https://play.google.com/store/apps/details?id=%Tmp12
Mime Type: text/html
select Continue Task After Error

This step queries the status of the app in Play Store and saves the returned HTTP code automatically in HTTPR.
App → Test App

Type: App Name
Data: %Tmp12
Store Result In: %Label
select Continue Task After Error

This step finds the app's label from its package name and stores it in Label.
Variables → Variable Subtract

Name: %Count
Value: 1

This step decrements Count variable so that we can move to next cycle of loop.
Task → Goto

Type: Action Number
Number: 5
If: %Count != 0

This step finally implements the loop. When this action is executed it checks whether Count is 0 or not. We've assumed that all lines in Pkgs had package name so it amounts to reason loop should run until Count becomes zero, in which case, simply exit.

How you would like to be notified is I leave upon you to decide. Whatever you intended to do for the purpose of notifying yourself the status of an app in Play Store, do it only between action 9 and 10. As an example, you can setup App Status task to show a notification when an app is not found in Play Store. You can add the action: Alert → Notify:

Title: Play Store: App not available
Text: %Label
Priority: 5
If: %HTTPR eq 404

You can use AutoNotifications to get around the Tasker's limited functionality of creating notifications.
Considering that a reboot causes loss of all received notifications, you can write the final output of the task into a file. Use the action File → Write File and use it in append mode. That's just an advice per Izzy's comment on the question. I won't be able to offer any help in this regard.
As for the Profile, choose any number of triggers you want. I recommend a time based trigger, but you can also opt to create a shortcut on home screen.
That's all for automation here.
Command-line
I couldn't ignore command-line which makes the objective so easy to be achieved in this particular case.
Dependencies

Requires busybox binary. If you don't have it installed, refer to: How do I install missing command line tools onto an Android device?
Requires aapt binary. If you're running a CM or its derivative ROM then ignore this requirement. Otherwise, for Android 4.x, you can consider downloading the binary from here. For the purpose of installing it in device, follow the root or non-root approach mentioned here, appropriately.
Android 5.x users: ask Google for assistance.

My little script

#!/system/bin/sh
# Check if the busybox binary exists under /data/local/tmp/ or /system/xbin.
# Set the detected binary's path into the variable busybox or exit if file
# doesn't exist or executable permission is not set
if [[ -x /data/local/tmp/busybox ]]; then
    busybox=/data/local/tmp/busybox;
elif [[ -x /system/xbin/busybox ]]; then
     busybox=/system/xbin/busybox;
else
     date +'busybox binary not found or executable permission is not set. Exiting';
     exit;
fi

# Check if the aapt binary exists under /data/local/tmp or /system/bin or /system/xbin.
# Set the detected binary's path into the variable aapt or exit if file
# doesn't exist or executable permission is not set
if [[ -x /data/local/tmp/aapt ]]; then
    aapt=/data/local/tmp/aapt;
elif [[ -x /system/bin/aapt ]]; then
    aapt=/system/bin/aapt;
elif [[ -x /system/xbin/aapt ]]; then
     aapt=/system/xbin/aapt;
else
     date +'aapt binary not found or executable permission is not set. Exiting';
     exit;
fi

# List packages which were installed from Play Store  and store the package names under /sdcard/acc_assoc_packages.txt.
# Remove -i | grep -e "com.android.vending" -e "com.google.android.feedback" if you don't want to restrict the script to apps installed only from Play Store.
pm list packages -3 -i | grep -e "com.android.vending" -e "com.google.android.feedback" | $busybox sed 's/package://g'| $busybox awk '{print$1}' > /sdcard/acc_assoc_packages.txt
$busybox printf "List of installed apps not available in Play Store:\n\n" > /sdcard/rm_packages.txt;     # rm_packages.txt would show the list of apps not available in Play Store

# For each package name in acc_assoc_packages.txt, find whether the package is available in Play Store.
# If not, the HTTP return code would be 404 in curl's output. Use it for any processing you want.
while read line; do
    ID="https://play.google.com/store/apps/details?id=";
    ret_http_code=$(curl -skI $ID$line | awk 'FNR==1{print $2}');   # -s is for silent mode, -k is use ignore certificates for SSL connection, -I is to show only header information
    path=$(pm path $line | $busybox sed 's/^package://g');          # get location of APK of package. Required for finding app's label
    label=$($aapt d badging $path 2>&1 | $busybox sed -ne '/application: label=/p' | $busybox cut -d "'" -f2);   # Get app label using $path

    # If returned HTTP code is 404, write into rm_pacakges.txt the corresponding app label, package name and print to standard output.
    # Else simply print to standard output.
    case $ret_http_code in
        404)
            $busybox printf "Status: Not Available - $label ($line)\n";
            $busybox printf "$label ($line)\n" >> /sdcard/rm_packages.txt;
            ;;
        403)
            $busybox printf "Status: Not authorized to access resource - $label ($line)\n";
            ;;
        200)
            $busybox printf "Status: Available - $label ($line)\n";
            ;;
        *)
            $busybox printf "An unknown error occurred. Are we online?\n";
            exit;
    esac
done < /sdcard/acc_assoc_packages.txt

Save the script under /sdcard into a file named app_status.sh and run that file from a terminal emulator app in this manner:
sh /sdcard/app_status.sh

Demo output:
(Click image to enlarge)

Shortcut
If you've busybox and aapt binary installed and working in device, you can drastically reduce the steps needs in App Status task.
Store the following script into a file named app_status.sh under /sdcard.

#!/system/bin/sh
pm list packages -3 -i | grep -e "com.android.vending" -e "com.google.android.feedback" | $busybox sed 's/package://g'| $busybox awk '{print$1}' > /sdcard/acc_assoc_packages.txt
$busybox printf "List of installed apps not available in Play Store:\n\n" > /sdcard/rm_packages.txt;

while read line; do
    ID="https://play.google.com/store/apps/details?id=";
    ret_http_code=$(curl -skI $ID$line | awk 'FNR==1{print $2}');
    path=$(pm path $line | $busybox sed 's/^package://g');
    label=$($aapt d badging $path 2>&1 | $busybox sed -ne '/application: label=/p' | $busybox cut -d "'" -f2);

      case $ret_http_code in
        404)
            $busybox printf "Status: Not Available - $label ($line)\n";
            $busybox printf "$label ($line)\n" >> /sdcard/rm_packages.txt;
            ;;
        403|200)
            # Intentionally left blank
            ;;
        *)
            $busybox printf "An unknown error occurred. We'll be victorious next time.\n" >> /sdcard/rm_packages.txt;
            exit;
    esac
done < /sdcard/acc_assoc_packages.txt

Now delete any action you have in the task and setup the following ones:

Code → Run Shell

Command: sh /sdcard/app_status.sh
Store Output In: %Pkgs
select Continue Task After Error

This step will write into file rm_packages.txt the entries as the apps not available in Play Store. This is the core action. The following actions are optional and meant only for the purpose of notifying yourself.
Task → If: %Pkgs Set
Alert → Notify

Title: Check apps' status
Icon: optional
Priority: 5
Actions: Action → App → Launch App → select a text editor app such as QuickEdit → Data: file:///sdcard/rm_packages.txt

Example notification:

Thanks @Firelord for the detailed Tasker procedure. Worked like a charm. Had to make some minor tweaks to align with changes in the current Tasker app - I have edited your post. Also the HTTP Get action has been deprecated and replaced with HTTP Request, but still works. I wanted to supply the XML code here but the formatter doesn't accept it all, even when within a preformatted text block)


text:
How to select all and delete in Gmail App
I have a Nexus 5, there are a lots of sale emails come to my Gmail account. Right now I can only search in Gmail app, but I wonder how to delete all of results like in desktop version with select all and delete?

I think you need to manually select all the mails, there is no 'select all' option that I know of.

@NicolaBastianello Thanks, that is sad... ToT

It is better to make rules and categorize email base on sender, Subject, and then select them for delete. Currently gmail app not provide select all and delete.

source: Stack Exchange

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

sort: votes


text:
sshd on CyanogenMod 13 Nightly failing without explanation
I've been trying to setup sshd on CM13, which seems straightforward enough, but doesn't seem to want to work.
I followed the Wiki article Doc: sshd, but when I run the 99sshd script it produces the following warning and attempts to login just hang indefinitely.

Could not load host key: /data/ssh/ssh_host_dsa_key

I tried uncommenting the DEBUG=1 line in the hopes of discovering the issue, but I only get the following from logcat.
01-21 03:36:24.769 18044 18044 I sshd : debug1: sshd version OpenSSH_6.8, BoringSSL
01-21 03:36:24.771 18044 18044 I sshd : debug1: private host key #0: ssh-rsa SHA256:MMcwKtW+WxaCnIwPHMjHzgOjvdiNOBYPWOVpMKPUw+4
01-21 03:36:24.772 18044 18044 I sshd : debug1: key_load_private: incorrect passphrase supplied to decrypt private key
01-21 03:36:24.772 18044 18044 I sshd : Could not load host key: /data/ssh/ssh_host_dsa_key
01-21 03:36:24.772 18044 18044 I sshd : debug1: rexec_argv[0]='/system/bin/sshd'
01-21 03:36:24.772 18044 18044 I sshd : debug1: rexec_argv[1]='-f'
01-21 03:36:24.772 18044 18044 I sshd : debug1: rexec_argv[2]='/data/ssh/sshd_config'
01-21 03:36:24.773 18044 18044 I sshd : debug1: rexec_argv[3]='-D'
01-21 03:36:24.773 18044 18044 I sshd : debug1: rexec_argv[4]='-d'
01-21 03:36:24.773 18044 18044 I sshd : Set /proc/self/oom_score_adj from -1000 to -1000
01-21 03:36:24.773 18044 18044 I sshd : debug1: Bind to port 22 on ::.
01-21 03:36:24.774 18044 18044 I sshd : Server listening on :: port 22.
01-21 03:36:24.774 18044 18044 I sshd : debug1: Bind to port 22 on 0.0.0.0.
01-21 03:36:24.774 18044 18044 I sshd : Server listening on 0.0.0.0 port 22.

It does mention "key_load_private: incorrect passphrase supplied to decrypt private key", but it's unclear why or if this is even a failing error.
It also appears the Wiki may be out of date, since certain operations could not be done exactly as stated, such as pushing the public key.
I've also tried manually regenerating the RSA and DSA server keys, but no change. If I comment out the HostKey /data/ssh/ssh_host_dsa_key line, the warning about the DSA key no longer appears, but login attempts still just hang. I also tried following this GitHub Gist, but likewise it does not work for CM13.
So my question is, what does it take to get the built-in SSH server in CyanogenMod to work? Please note that I am not looking for app suggestions, and specifically want to avoid using some SSH app.

The following are the contents of my config file and init script.
sshd_config:
#   $OpenBSD: sshd_config,v 1.84 2011/05/23 03:30:07 djm Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options override the
# default value.

#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

# The default requires explicit activation of protocol 1
Protocol 2

# HostKey for protocol version 1
#HostKey /etc/ssh/ssh_host_key
# HostKeys for protocol version 2
HostKey /data/ssh/ssh_host_rsa_key
HostKey /data/ssh/ssh_host_dsa_key

# Lifetime and size of ephemeral version 1 server key
#KeyRegenerationInterval 1h
#ServerKeyBits 1024

# Logging
# obsoletes QuietMode and FascistLogging
#SyslogFacility AUTH
#LogLevel INFO

# Authentication:

#LoginGraceTime 2m
PermitRootLogin no
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

#RSAAuthentication yes
PubkeyAuthentication yes

# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile  /data/ssh/authorized_keys

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#RhostsRSAAuthentication no
# similar for protocol version 2
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
PermitEmptyPasswords no

# Change to no to disable s/key passwords
ChallengeResponseAuthentication no

# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
#UsePAM no

#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
#X11Forwarding no
#X11DisplayOffset 10
#X11UseLocalhost yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
#UsePrivilegeSeparation yes
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS yes
#PidFile /var/run/sshd.pid
#MaxStartups 10
#PermitTunnel no
#ChrootDirectory none

# no default banner path
#Banner none

# override default of no subsystems
Subsystem sftp internal-sftp

# Example of overriding settings on a per-user basis
#Match User anoncvs
#   X11Forwarding no
#   AllowTcpForwarding no
#   ForceCommand cvs server

99sshd:
#!/system/bin/sh

umask 077

DEBUG=1

DSA_KEY=/data/ssh/ssh_host_dsa_key
DSA_PUB_KEY=/data/ssh/ssh_host_dsa_key.pub
RSA_KEY=/data/ssh/ssh_host_rsa_key
RSA_PUB_KEY=/data/ssh/ssh_host_rsa_key.pub
AUTHORIZED_KEYS=/data/ssh/authorized_keys
DEFAULT_AUTHORIZED_KEYS=/system/etc/security/authorized_keys.default

if [ ! -f $DSA_KEY ]; then
    /system/bin/ssh-keygen -t dsa -f $DSA_KEY -N ""
    chmod 600 /$DSA_KEY
    chmod 644 $DSA_PUB_KEY
fi

if [ ! -f $RSA_KEY ]; then
    /system/bin/ssh-keygen -t rsa -f $RSA_KEY -N ""
    chmod 600 /$RSA_KEY
    chmod 644 $RSA_PUB_KEY
fi

if [[ ! -f $AUTHORIZED_KEYS && -f $DEFAULT_AUTHORIZED_KEYS ]]; then
    cat $DEFAULT_AUTHORIZED_KEYS > $AUTHORIZED_KEYS
fi

if [ "1" == "$DEBUG" ] ; then
    # run sshd in debug mode and capture output to logcat
    /system/bin/logwrapper /system/bin/sshd -f /data/ssh/sshd_config -D -d
else
    # don't daemonize - otherwise we can't stop the sshd service
    /system/bin/sshd -f /data/ssh/sshd_config -D
fi

Update
At the suggestion to increase verbosity, here is the logcat output when I replace /system/bin/logwrapper /system/bin/sshd -f /data/ssh/sshd_config -D -d with /system/bin/logwrapper /system/bin/sshd -f /data/ssh/sshd_config -D -ddd. I'm not sure why (I've rebooted since last trying), but it no longer hangs and instead it appears when I try to connect sshd crashes instead.
Added before trying to connect:
01-21 17:22:42.665  6908  6908 I sshd    : debug2: load_server_config: filename /data/ssh/sshd_config
01-21 17:22:42.669  6908  6908 I sshd    : debug2: load_server_config: done config len = 397
01-21 17:22:42.669  6908  6908 I sshd    : debug2: parse_server_config: config /data/ssh/sshd_config len 397
01-21 17:22:42.669  6908  6908 I sshd    : debug3: /data/ssh/sshd_config:20 setting Protocol 2
01-21 17:22:42.669  6908  6908 I sshd    : debug3: /data/ssh/sshd_config:25 setting HostKey /data/ssh/ssh_host_rsa_key
01-21 17:22:42.669  6908  6908 I sshd    : debug3: /data/ssh/sshd_config:26 setting HostKey /data/ssh/ssh_host_dsa_key
01-21 17:22:42.669  6908  6908 I sshd    : debug3: /data/ssh/sshd_config:40 setting PermitRootLogin no
01-21 17:22:42.669  6908  6908 I sshd    : debug3: /data/ssh/sshd_config:46 setting PubkeyAuthentication yes
01-21 17:22:42.669  6908  6908 I sshd    : debug3: /data/ssh/sshd_config:50 setting AuthorizedKeysFile /data/ssh/authorized_keys
01-21 17:22:42.670  6908  6908 I sshd    : debug3: /data/ssh/sshd_config:63 setting PasswordAuthentication no
01-21 17:22:42.670  6908  6908 I sshd    : debug3: /data/ssh/sshd_config:64 setting PermitEmptyPasswords no
01-21 17:22:42.670  6908  6908 I sshd    : debug3: /data/ssh/sshd_config:67 setting ChallengeResponseAuthentication no
01-21 17:22:42.670  6908  6908 I sshd    : debug3: /data/ssh/sshd_config:116 setting Subsystem sftp internal-sftp
01-21 17:22:42.670  6908  6908 I sshd    : debug1: sshd version OpenSSH_6.8, BoringSSL
01-21 17:22:42.673  6908  6908 I sshd    : debug1: private host key #0: ssh-rsa SHA256:mAYmJuHyM2tCsbXHleMvkLoobGIY5/9WCMe54bdHsiI
01-21 17:22:42.675  6908  6908 I sshd    : debug1: key_load_private: incorrect passphrase supplied to decrypt private key
01-21 17:22:42.675  6908  6908 I sshd    : Could not load host key: /data/ssh/ssh_host_dsa_key
01-21 17:22:42.675  6908  6908 I sshd    : debug1: rexec_argv[0]='/system/bin/sshd'
01-21 17:22:42.675  6908  6908 I sshd    : debug1: rexec_argv[1]='-f'
01-21 17:22:42.676  6908  6908 I sshd    : debug1: rexec_argv[2]='/data/ssh/sshd_config'
01-21 17:22:42.676  6908  6908 I sshd    : debug1: rexec_argv[3]='-D'
01-21 17:22:42.676  6908  6908 I sshd    : debug1: rexec_argv[4]='-ddd'
01-21 17:22:42.676  6908  6908 I sshd    : debug3: oom_adjust_setup
01-21 17:22:42.676  6908  6908 I sshd    : Set /proc/self/oom_score_adj from -1000 to -1000
01-21 17:22:42.676  6908  6908 I sshd    : debug2: fd 5 setting O_NONBLOCK
01-21 17:22:42.677  6908  6908 I sshd    : debug3: sock_set_v6only: set socket 5 IPV6_V6ONLY
01-21 17:22:42.677  6908  6908 I sshd    : debug1: Bind to port 22 on ::.
01-21 17:22:42.677  6908  6908 I sshd    : Server listening on :: port 22.
01-21 17:22:42.677  6908  6908 I sshd    : debug2: fd 6 setting O_NONBLOCK
01-21 17:22:42.677  6908  6908 I sshd    : debug1: Bind to port 22 on 0.0.0.0.
01-21 17:22:42.677  6908  6908 I sshd    : Server listening on 0.0.0.0 port 22.

Added after trying to connect:
01-21 17:22:51.163  2648  4972 D NetlinkSocketObserver: NeighborEvent{elapsedMs=243550, 192.168.1.1, [60E327ADCC29], RTM_NEWNEIGH, NUD_STALE}
01-21 17:22:52.845  6908  6908 I sshd    : debug3: fd 7 is not O_NONBLOCK
01-21 17:22:52.845  6908  6908 I sshd    : debug1: Server will not fork when running in debugging mode.
01-21 17:22:52.846  6908  6908 I sshd    : debug3: send_rexec_state: entering fd = 10 config len 397
01-21 17:22:52.846  6908  6908 I sshd    : debug3: ssh_msg_send: type 0
01-21 17:22:52.846  6908  6908 I sshd    : debug3: send_rexec_state: done
01-21 17:22:52.846  6908  6908 I sshd    : debug1: rexec start in 7 out 7 newsock 7 pipe -1 sock 10
01-21 17:22:52.900  6909  6909 D /system/bin/sshd: debug3: recv_rexec_state: entering fd = 5
01-21 17:22:52.900  6909  6909 D /system/bin/sshd: debug3: ssh_msg_recv entering
01-21 17:22:52.900  6909  6909 D /system/bin/sshd: debug3: recv_rexec_state: done
01-21 17:22:52.900  6909  6909 D /system/bin/sshd: debug2: parse_server_config: config rexec len 397
01-21 17:22:52.900  6909  6909 D /system/bin/sshd: debug3: rexec:20 setting Protocol 2
01-21 17:22:52.901  6909  6909 D /system/bin/sshd: debug3: rexec:25 setting HostKey /data/ssh/ssh_host_rsa_key
01-21 17:22:52.901  6909  6909 D /system/bin/sshd: debug3: rexec:26 setting HostKey /data/ssh/ssh_host_dsa_key
01-21 17:22:52.901  6909  6909 D /system/bin/sshd: debug3: rexec:40 setting PermitRootLogin no
01-21 17:22:52.901  6909  6909 D /system/bin/sshd: debug3: rexec:46 setting PubkeyAuthentication yes
01-21 17:22:52.901  6909  6909 D /system/bin/sshd: debug3: rexec:50 setting AuthorizedKeysFile /data/ssh/authorized_keys
01-21 17:22:52.901  6909  6909 D /system/bin/sshd: debug3: rexec:63 setting PasswordAuthentication no
01-21 17:22:52.901  6909  6909 D /system/bin/sshd: debug3: rexec:64 setting PermitEmptyPasswords no
01-21 17:22:52.901  6909  6909 D /system/bin/sshd: debug3: rexec:67 setting ChallengeResponseAuthentication no
01-21 17:22:52.901  6909  6909 D /system/bin/sshd: debug3: rexec:116 setting Subsystem sftp internal-sftp
01-21 17:22:52.902  6909  6909 D /system/bin/sshd: debug1: sshd version OpenSSH_6.8, BoringSSL
01-21 17:22:52.903  6909  6909 D /system/bin/sshd: debug1: private host key #0: ssh-rsa SHA256:mAYmJuHyM2tCsbXHleMvkLoobGIY5/9WCMe54bdHsiI
01-21 17:22:52.903  6909  6909 D /system/bin/sshd: debug1: key_load_private: incorrect passphrase supplied to decrypt private key
01-21 17:22:52.903  6909  6909 E /system/bin/sshd: error: Could not load host key: /data/ssh/ssh_host_dsa_key
01-21 17:22:52.903  6908  6908 I sshd    : debug1: inetd sockets after dupping: 5, 5
01-21 17:22:52.904  6908  6908 I sshd    : Connection from 192.168.1.224 port 49372 on 192.168.1.116 port 22
01-21 17:22:52.906  6908  6908 I sshd    : debug1: Client protocol version 2.0; client software version OpenSSH_6.2
01-21 17:22:52.906  6908  6908 I sshd    : debug1: match: OpenSSH_6.2 pat OpenSSH* compat 0x04000000
01-21 17:22:52.906  6908  6908 I sshd    : debug1: Enabling compatibility mode for protocol 2.0
01-21 17:22:52.906  6908  6908 I sshd    : debug1: Local version string SSH-2.0-OpenSSH_6.8
01-21 17:22:52.907  6908  6908 I sshd    : debug2: fd 5 setting O_NONBLOCK
01-21 17:22:52.909  6908  6908 I sshd    : debug2: Network child is on pid 6913
01-21 17:22:52.909  6908  6908 I sshd    : debug3: preauth child monitor started
01-21 17:22:52.918  6908  6908 I sshd    : debug3: privsep user:group 2000:2000 [preauth]
01-21 17:22:52.919  6908  6908 I sshd    : debug1: permanently_set_uid: 2000/2000 [preauth]
01-21 17:22:52.919  6908  6908 I sshd    : debug1: list_hostkey_types: ssh-rsa [preauth]
01-21 17:22:52.919  6908  6908 I sshd    : debug1: SSH2_MSG_KEXINIT sent [preauth]
01-21 17:22:52.920  6908  6908 I sshd    : debug1: SSH2_MSG_KEXINIT received [preauth]
01-21 17:22:52.920  6908  6908 I sshd    : debug2: kex_parse_kexinit: curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1 [preauth]
01-21 17:22:52.921  6908  6908 I sshd    : debug2: kex_parse_kexinit: ssh-rsa [preauth]
01-21 17:22:52.921  6908  6908 I sshd    : debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com [preauth]
01-21 17:22:52.922  6908  6908 I sshd    : debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com [preauth]
01-21 17:22:52.922  6908  6908 I sshd    : debug2: kex_parse_kexinit: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1 [preauth]
01-21 17:22:52.923  6908  6908 I sshd    : debug2: kex_parse_kexinit: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1 [preauth]
01-21 17:22:52.923  6908  6908 I sshd    : debug2: kex_parse_kexinit: none,zlib@openssh.com [preauth]
01-21 17:22:52.923  6908  6908 I sshd    : debug2: kex_parse_kexinit: none,zlib@openssh.com [preauth]
01-21 17:22:52.924  6908  6908 I sshd    : debug2: kex_parse_kexinit:  [preauth]
01-21 17:22:52.924  6908  6908 I sshd    : debug2: kex_parse_kexinit:  [preauth]
01-21 17:22:52.924  6908  6908 I sshd    : debug2: kex_parse_kexinit: first_kex_follows 0  [preauth]
01-21 17:22:52.925  6908  6908 I sshd    : debug2: kex_parse_kexinit: reserved 0  [preauth]
01-21 17:22:52.925  6908  6908 I sshd    : debug2: kex_parse_kexinit: diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 [preauth]
01-21 17:22:52.926  6908  6908 I sshd    : debug2: kex_parse_kexinit: ssh-rsa-cert-v01@openssh.com,ssh-dss-cert-v01@openssh.com,ssh-rsa-cert-v00@openssh.com,ssh-dss-cert-v00@openssh.com,ssh-rsa,ssh-dss [preauth]
01-21 17:22:52.926  6908  6908 I sshd    : debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se [preauth]
01-21 17:22:52.926  6908  6908 I sshd    : debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se [preauth]
01-21 17:22:52.927  6908  6908 I sshd    : debug2: kex_parse_kexinit: hmac-md5-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-ripemd160-etm@openssh.com,hmac-sha1-96-etm@openssh.com,hmac-md5-96-etm@openssh.com,hmac-md5,hmac-sha1,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96 [preauth]
01-21 17:22:52.927  6908  6908 I sshd    : debug2: kex_parse_kexinit: hmac-md5-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-ripemd160-etm@openssh.com,hmac-sha1-96-etm@openssh.com,hmac-md5-96-etm@openssh.com,hmac-md5,hmac-sha1,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96 [preauth]
01-21 17:22:52.928  6908  6908 I sshd    : debug2: kex_parse_kexinit: none,zlib@openssh.com,zlib [preauth]
01-21 17:22:52.928  6908  6908 I sshd    : debug2: kex_parse_kexinit: none,zlib@openssh.com,zlib [preauth]
01-21 17:22:52.928  6908  6908 I sshd    : debug2: kex_parse_kexinit:  [preauth]
01-21 17:22:52.929  6908  6908 I sshd    : debug2: kex_parse_kexinit:  [preauth]
01-21 17:22:52.929  6908  6908 I sshd    : debug2: kex_parse_kexinit: first_kex_follows 0  [preauth]
01-21 17:22:52.929  6908  6908 I sshd    : debug2: kex_parse_kexinit: reserved 0  [preauth]
01-21 17:22:52.930  6908  6908 I sshd    : debug1: kex: client->server aes128-ctr hmac-sha1-etm@openssh.com none [preauth]
01-21 17:22:52.930  6908  6908 I sshd    : debug1: kex: server->client aes128-ctr hmac-sha1-etm@openssh.com none [preauth]
01-21 17:22:52.931  6908  6908 I sshd    : debug1: expecting SSH2_MSG_KEX_DH_GEX_REQUEST [preauth]
01-21 17:22:52.931  6908  6908 I sshd    : debug1: SSH2_MSG_KEX_DH_GEX_REQUEST received [preauth]
01-21 17:22:52.931  6908  6908 I sshd    : debug3: mm_request_send entering: type 0 [preauth]
01-21 17:22:52.932  6908  6908 I sshd    : debug3: mm_choose_dh: waiting for MONITOR_ANS_MODULI [preauth]
01-21 17:22:52.933  6908  6908 I sshd    : debug3: mm_request_receive_expect entering: type 1 [preauth]
01-21 17:22:52.933  6908  6908 I sshd    : debug3: mm_request_receive entering [preauth]
01-21 17:22:52.933  6908  6908 I sshd    : debug3: mm_request_receive entering
01-21 17:22:52.933  6908  6908 I sshd    : debug3: monitor_read: checking request 0
01-21 17:22:52.934  6908  6908 I sshd    : debug3: mm_answer_moduli: got parameters: 1024 2048 8192
01-21 17:22:52.934  6908  6908 I sshd    : WARNING: /data/ssh/moduli does not exist, using fixed modulus
01-21 17:22:52.935  6908  6908 I sshd    : debug3: mm_request_send entering: type 1
01-21 17:22:52.937  6908  6908 I sshd    : debug2: monitor_read: 0 used once, disabling now
01-21 17:22:52.937  2200  2200 I DEBUG   : property debug.db.uid not set; NOT waiting for gdb.
01-21 17:22:52.938  2200  2200 I DEBUG   : HINT: adb shell setprop debug.db.uid 100000
01-21 17:22:52.938  2200  2200 I DEBUG   : HINT: adb forward tcp:5039 tcp:5039
01-21 17:22:52.938  6908  6908 I sshd    : debug3: mm_choose_dh: remaining 0 [preauth]
01-21 17:22:52.938  6908  6908 I sshd    : debug1: SSH2_MSG_KEX_DH_GEX_GROUP sent [preauth]
01-21 17:22:53.168  2200  2200 I SELinux : SELinux: Loaded file_contexts contexts from /file_contexts.
01-21 17:22:53.174  2648  3182 W NativeCrashListener: Couldn't find ProcessRecord for pid 6913
--------- beginning of crash
01-21 17:22:53.174  2200  2200 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
01-21 17:22:53.174  2200  2200 E DEBUG   : AM write failed: Broken pipe
01-21 17:22:53.174  2200  2200 F DEBUG   : Build fingerprint: 'google/shamu/shamu:6.0.1/MMB29S/2489379:user/release-keys'
01-21 17:22:53.174  2200  2200 F DEBUG   : Revision: '0'
01-21 17:22:53.174  2200  2200 F DEBUG   : ABI: 'arm'
01-21 17:22:53.174  2200  2200 F DEBUG   : pid: 6913, tid: 6913, name: sshd  >>> /system/bin/sshd: [net] <<<
01-21 17:22:53.174  2200  2200 F DEBUG   : signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
01-21 17:22:53.177  2200  2200 F DEBUG   :     r0 00000000  r1 00001b01  r2 00000006  r3 00000000
01-21 17:22:53.177  2200  2200 F DEBUG   :     r4 b6f36b88  r5 00000006  r6 b6f36b38  r7 0000010c
01-21 17:22:53.177  2200  2200 F DEBUG   :     r8 000016a4  r9 b6e3cf34  sl fffffe88  fp b6f6a9d8
01-21 17:22:53.177  2200  2200 F DEBUG   :     ip 0000000d  sp becbf2f8  lr b6c8e42d  pc b6c90b90  cpsr 200f0010
01-21 17:22:53.190  2200  2200 F DEBUG   :
01-21 17:22:53.190  2200  2200 F DEBUG   : backtrace:
01-21 17:22:53.190  2200  2200 F DEBUG   :     #00 pc 00049b90  /system/lib/libc.so (tgkill+12)
01-21 17:22:53.190  2200  2200 F DEBUG   :     #01 pc 00047429  /system/lib/libc.so (pthread_kill+36)
01-21 17:22:53.191  2200  2200 F DEBUG   :     #02 pc 0001bbc3  /system/lib/libc.so (raise+10)
01-21 17:22:53.191  2200  2200 F DEBUG   :     #03 pc 0001846d  /system/lib/libc.so (__libc_android_abort+36)
01-21 17:22:53.191  2200  2200 F DEBUG   :     #04 pc 000164cc  /system/lib/libc.so (abort+4)
01-21 17:22:53.191  2200  2200 F DEBUG   :     #05 pc 00061e0d  /system/lib/libcrypto.so
01-21 17:22:53.191  2200  2200 F DEBUG   :     #06 pc 00061c89  /system/lib/libcrypto.so (RAND_bytes+276)
01-21 17:22:53.191  2200  2200 F DEBUG   :     #07 pc 0004143f  /system/lib/libcrypto.so (BN_rand+50)
01-21 17:22:53.191  2200  2200 F DEBUG   :     #08 pc 0004b5d3  /system/lib/libcrypto.so
01-21 17:22:53.191  2200  2200 F DEBUG   :     #09 pc 00024d25  /system/lib/libssh.so (dh_gen_key+44)
01-21 17:22:53.191  2200  2200 F DEBUG   :     #10 pc 0000cdc9  /system/bin/sshd
01-21 17:22:53.191  2200  2200 F DEBUG   :     #11 pc 000253d5  /system/lib/libssh.so (ssh_dispatch_run+232)
01-21 17:22:53.191  2200  2200 F DEBUG   :     #12 pc 00025491  /system/lib/libssh.so (ssh_dispatch_run_fatal+4)
01-21 17:22:53.191  2200  2200 F DEBUG   :     #13 pc 00020d6f  /system/bin/sshd
01-21 17:22:53.191  2200  2200 F DEBUG   :     #14 pc 000162f5  /system/lib/libc.so (__libc_init+52)
01-21 17:22:53.191  2200  2200 F DEBUG   :     #15 pc 000073e4  /system/bin/sshd
01-21 17:22:53.230  2200  2200 F DEBUG   :
01-21 17:22:53.230  2200  2200 F DEBUG   : Tombstone written to: /data/tombstones/tombstone_07
01-21 17:22:53.232  6908  6908 I sshd    : debug1: monitor_read_log: child log fd closed
01-21 17:22:53.232  6908  6908 I sshd    : debug3: mm_request_receive entering
01-21 17:22:53.233  6908  6908 I sshd    : mm_request_receive: socket closed
01-21 17:22:53.233  6908  6908 I sshd    : debug1: do_cleanup
01-21 17:22:53.233  6908  6908 I sshd    : debug1: Killing privsep child 6913
01-21 17:22:53.238  6908  6908 I sshd    : sshd terminated by exit(255)

Related Error could not load host key when trying to recreate SSH host keys

@Manubhargav The wird thing is, neither key is being generated with a password.

Could not load host key: /data/ssh/ssh_host_dsa_key

This is not fatal error, but warning. As you already found, you can get rid of it commenting HostKey line from your sshd_config.

01-21 03:36:24.774 18044 18044 I sshd : Server listening on 0.0.0.0 port 22.

What do you expect from server to do? It waits for your connection.

but login attempts still just hang.

would you bother yourself with posting the logs from server and client and how you connect? Preferably client with -vvv switches and server with -ddd instead of just -d as in the script.
Excuse me for non-asnwering all your question, but there is too much of them, not enough information and this format would not fit into comment.

I mean attempting to login hangs while the server is running (I don't expect the init script to complete). Once I get in front of a computer again, I'll add those debug arguments.

I've added the logs from -ddd, and it appears it's now outright crashing. Perhaps it's currently broken.

so it is not hanging, but the server crashes probably because of SELinux. Can you give it a try with UsePrivilegeSeparation no in sshd_config?

Hey! It worked when I did that! Could you elaborate on what the implications of this would be?

It decrease the security. Check manual page for more details. Problem is that your pre-authentication process is running somehow limited and it does not have enough privileges (to get random data if I read the message well).

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


text:
Change IMEI number to obtain tablet data plan?
It looks like T-Mobile offers very cheap data-only plans, but these are only available for tablets. I have read that this is enforced by tracking your IMEI. I was wondering: Is it possible to change your phone's IMEI to a tablet's IMEI, to trick T-Mobile, so that you can get a data-only plan. Nobody really needs talk and text if they have data. Thanks!

This would undoubtedly be a violation of T-Mobile's terms of service.  To do so, though, you would need to create a custom ROM and modify the ro.serialno system property.  Alternatively you could try to modify Build.java and pass in a different value to Build.SERIAL.  It's unclear whether that's how T-Mobile is retrieving the IMEI number though.

I believe this does what you are looking for, [XPOSED] IMEI Changer & PRO [RANDOM IMEI Support]
You will need to rootyour phone and install Xposed

The ways of rooting can be founded by clicking on theses tags linked or by googling your device model and how to root it.
What is Xposed Framework For Android & How To Install It [Guide]

Keep in Mind This is in violation of T-Mobiles Terms of Services
Hopefully I have linked you to all necessary stuff for you to be able to change your IMEI Number


text:
Where are downloaded .apk files of applications stored in BlueStacks?
I have downloaded and installed a heavy file lately on BlueStacks. Now I want to uninstall bluestacks but don't want to have to download the same software all over again.
If I could locate where the downloaded apk has been kept (I downloaded the file through playstore in BlueStacks), I could copy it and keep a backup on my windows so that I can copy it over to any other android emulator.
Any help on that?

I think the trick mentioned here should work. It expects you to download a backup app from Play Store and use it to make backup of an app's APK into sdcard.

I tried. It says the software (Carnivores: Dinosaur Hunter HD) is "protected" and cannot be backed up. Anyhow, thanks for the effort sir.


text:
How to unlock samsung tab with the fingerprint scanner not working
I have a samsung tab 2 and suddenly the fingerprint scanner stopped working and I'm not able to unlock my device.
Now my device asking for backup password. Which as you all guess I do not remember. After several tries of wrong passwords I get a message telling me that I have 5 wrong attempts with the fingerprint scanner(!) and that I should wait for 30 seconds before my new attempt.
I also tried to unlock my device using Google Device Manager following this article  but one more time nothing happened. I tried to contact Samgung and their only suggestion is to hard reset my device. The problem is that I do not want to loose my data from the tablet.
Is there any possible way to make the fingerprint scanner to work?
Is there any other way to unlock my device?
If there is no way to unlock it can I at least save my data before I hard reset it?

I have an S5 with fingerprint on it. After 5 incorrects there should be a button next to Alternative Password saying "Unlock via Google". Does yours not have it?
I looked at your article and there were a few methods they missed.
a) Try hooking up your tablet to your computer, after you've downloaded and installed the "Samsung USB Drivers for Mobile Phones.exe". Download adb and call it from your command prompt/console, like this:
cd c:\adb-fastboot
adb devices

If it shows a device with a long ID attached to it, you're in luck!
You can now use the ls command and adb pull to browse through your device and copy files and pictures back to your computer. adb pull instructions for pictures
If you're not in luck, try booting to recovery mode using the buttons and try adb devices again. If that doesn't work, always try another computer! It took me 5 different computers one time to get drivers working.
Along with the ls command, you can also remove your lockscreen PIN by running this command:
adb shell
rm /data/system/gesture.key

If that does not work, try this:
adb shell
cd /data/data/com.android.providers.settings/databases
sqlite3 settings.db
update system set value=0 where name='lock_pattern_autolock';
update system set value=0 where name='lockscreen.lockedoutpermanently';
.quit

If that doesn't work, you can use adb backup to get a full "app data" backup of your device before you reset it. Use this along with adb pull on all your pictures. Refer here for adb pull instructions for pictures.
I hope this helped, good luck retrieving your files/unlocking your device!

On which recovery did you test these instructions? They certainly won't work on stock kernel and when Android OS is running? Does Samsung ships their devices with sqlite3 tool? Stock Android doesn't seem to.

Type findmymobile.samsung.com into your search bar, then type in your Samsung account name and password, click phone lock, set a new code and it will appear on your locked phone screen.
This is the only way it worked for me. I found this solution in a forum. I called google, samsung, and my service provider. They said the only option was factory reset and I refused that so I tried this and it worked.


text:
Droid Explorer - Input string was not in a correct format
When opening Droid Explorer, it gives an error message "Input string was not in a correct format."

How to fix it?

As the developer of Droid Explorer, I would suggest that this is more suitable as a bug report, which actually already exists.
Although, there is probably a workaround that you could do.
I have seen that this usually happens when there is a version of the SDK that was pre-release or something along those lines. The error happens when it tries to verify the SDK version. The folder names are used as the version, and when there is a letter in the version name, Droid Explorer does not like that.
Check the android-sdk/build-tools directory and see if there are any folders that have A-Z in them. If one does, that is the problem. For example, I have seen situations where there will be a folder called android-4.4W. I would suggest deleting that folder, open the SDK Update Tool and download the versions of the build tools that you want/need.

I took your advice but, I didn't delete anything! I just amended the extra letters or word off the end!
In my case, the directory ended with "-preview" instead of a "-W". Once I got rid of that Droid Explorer worked and, on the first try too! Plus, I'm pretty sure that build file will still work in Android Studio... I don't know.... I might be asking too much on that one.
I can always just add the "-preview" back on... instead of redownloading ;)

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


text:
How do I make my profile icon use the same image on my google profile?
I'm currently using Nexus 6P with Marshmallow. I have not added other profiles on my device.
Why does my profile icon not share the same image used on my Google account? I recalled this working on an earlier android version (maybe Kitkat or Lollipop) but it only took effect after adding more users. I might be remembering this completely wrong, though.
Is there a way to make the image share what is already on my google profile?

My understanding is that this is controlled by the google+ app.
according to this xda thread try:

Open Setting -> Apps -> All -> Contacts Storage -> Clear Data

Open Google+ -> Settings -> Your account (under Account Settings) -> Contacts -> Keep contacts up to date

The more confusing thing to me is why, if I set up a new phone and restore from a backup, is this setting not already set. In fact why do so many apps (even from google) installed during a backup restoration on a new phone activation (or factory reset) act like "O hai new person! Leme explain stuff here"

I've just restored my Android 7.0 Moto 4G+ and I have the missing profile pic in the quick launch tray thing, but that option to sync contacts is now missing from the version of G+ I have installed! (AFAICT)


text:
How to access BTsync files in Pebble with Gadgetbridge?
I would like store only some most critical files as encrypted in my Pebble, stored in BTsync.
Pin code protection of Sync files is not possible in Android 5.x-6.x because files are stored in a file system access to which Sync cannot close (BTsync).
The storage of critical files in Pebble should be now technically possible with BTsync 2.3 of Android >=5.0 but I am using 6.0 Marshmallow.
I received answer from the BTsync support

If yes, then this shall be possible with Sync 2.3 released recently. You just need to save Pebble app files to a Sync's folder either via android's document provider feature or a file manager. This is already done in Sync and now it depends on the Pebble app - whether it'll let share or access its files.

Motivation

some security keys in Pebble
some critical documents only locally in Pebble (BTsync is working for Bluetooth connection for local network devices)

Pebble and BTsync
The work which they can make is to consider how the development plan of the BTsync App in Pebble assuming that Bluetooth connection exists in BTsync.
There can be other limitations. The front-end of BTsync Pebble must be limited in selective sync. I think its control center can be in your phone.
BTsync

[Y]ou need to save files to a sync share. You can either copy them from Pebble app folder to sync share, or add the Pebble add folder to Sync - however this might be not allowed if pebble app exclusively locks the folder.
  [T]o sum up: if you want Sync to sync files from Pebble app on your phone, you need to add a folder with these files to Sync.

Development Plan

BTsync Bluetooth support for local network etc between Pebble - Android/PC. So the BTsync app can detect Pebble and sync selectively files there. (here about the development of bluetooth 4.0 in BTsync)
Some Pebble app OR system feature to allow access to Pebble's files, so in that can you can simply copy them back and forth after syncing.

OR copy files back and forth in Pebble after syncing.

Plan

Use Gadgetbridge to make the connection te Pebble. Maybe, it can allow the read of files on the gadget.
....

Phone: Oneplus 3
OS: Cyanogenmod 13 stable
Pebble: Classic
Connection client to Pebble: Gadgetbridge

Pebble no longer maintained, so the development stops.


text:
Newly created contact randomly disappear on Android
I have Sony Xperia Z3 compact running on Android 5.1.1 and experiencing problem with contacts.
When I'm creating a new contact by default it creates it on my google account (instead of phone memory).
After a few minutes this newly created contact might randomly disappear. It doesn't happen all the time, it's very random.
I think it has something to do with syncing, but not sure, please advice.

I have the same issue with Android 6. Doesn't seem to be random tho, but when you swipe-close the contacts application. Did you find a solution for it?

No, I just disabled auto-sync for contacts.


text:
How to remove a Virus that installs an unlimited amount of APPs causing the smartphone to stop once an internet connection has been established?
Once the smartphone (android 4.4.2, kazam tornado 350) has been booted, is connected to WIFI and an unlimited number of APPs is installed causing the phone to stop, i.e. swipe is stopped, another home screen is installed.
Symptoms

A number of unwanted apps is installed once the phone has been reset to factory defaults
Unlimited amount of unwanted apps is installed once wifi is installed
Phone battery is consumed quickly
Home screen cannot be entered
Popups that ask to install (fake) security updates appear

Attempts

The unwanted APPs remained installed on the smartphone once the phone was reset to factory defaults
The installation of the APPs persisted even after encryption and subsequently resetting to factory defaults
Resetted the phone to factory defaults, disabled wifi, disabled malicious apps, rebooted and enabled wifi installed an unlimited number of APPs again
Tried to install a Virusscanner, but everytime the connection to internet is established various malicious apps are installed immediately
The issue persists as well once the SD card was removed
The internal phone storage cannot be removed. In an attempt to remove it the screen was busted :'(

Discussion

The APPs that are installed do not appear in the downloaded APPs section
After resetting to factory defaults, there seems to be malicious APPs recognized as default APPs, e.g. com.andriod instead of com.android

Question
How to remove this Virus?

Comments are not for extended discussion; this conversation has been moved to chat.

As I already mentioned in the comments, here are the primary points you need to be careful about:

Whenever you install an app from the Play Store, you should pay attention to things like permissions, ratings, reviews by existing users, etc. before installing it on your device. One malicious install, and your phone could become compromised. It doesn't matter then, whether you are rooted or not.
When you install an app, it asks you a bunch of questions like what all things it needs access to (like SDCARD, telephony resources, system tools, etc.). Even without root access, a malicious app can do lots of damage to your phone, if you permit them these resources.
As the existing answer suggests, rooting is your only option if the malware has landed itself in the system area. But if you go along that route, proceed with care and caution, as there is a risk of bricking if incorrectly done.
For future reference, make a mental note to double check at least two things before installing an app: 1) The permissions it needs are sane and safe. 2) There are at least 500 million installs already with at least a 3.5+ rating. You can make rare exceptions for popular apps like WhatsApp/Skype, but this is generally what you should do. You may or may not be able to recover this phone, but life goes on and these things will go a long way to ensure that such a situation will never arise.

The majority of malicious apps on the plays store is so minimal it is not even gonna make it to the 50 mark. The problem of malicious apps come in is when you install from unknown sources (You have to the setting turned on). It would be nearly impossible for the software to get into the system area. As the user would have need to manualy root the phone, then move the apk into the system folder. This would require root access and for the user to grant root access. Root is basically UAC on windows, where if the user grants permission to (or has crap security ) applications can access vital files

Refusing to install any app with less than 500 million installs already? Isn't that going to limit your app selection quite a bit?

@immibis better safe than sorry. If you are willing to do the research and find what the reviews and ratings actually mean, its a different matter. This is sort of a thumbrule for noobs who know nothing better than tapping the big install button!

@Matt How do you know whether they are malicious or not? An android project is a complex thingy typically composed of a million lines of Java code. Do you really think Google can dedicate enough resources to quality audit every piece of code that gets into the Play Store? Its not even a major revenue stream for them (which is advertising).

I realise that their are million of lines of code, but Google checks  what permissions an app asks for (and the like etc.), and during the review process the apps gets tested by a HUMAN, (although the apps getting tested by humans is only a recent change for Google (happend during 2015))

Depending on your phone brand, flash stock firmware through Odin, fastboot, or LG Flash Tool to overwrite the virus.
Samsung phones: Hold the power button, home, and volume down to access download mode. Download Odin v3 or any other version, I recommend XDA as a source. Find the .tar file for your device, SamMobile.com has all the firmwares for every Samsung device.
LG phones: download LG Flash Tool online, and find a .kdz stock firmare for your device.
Nexus phones: find the fastboot.exe included with your adb drivers and use that.
You didn't specify model or device so my help is only so limited here.
Anyway, hope this helps
EDIT:
Researched the Kazam Tornado 350, and there are no development threads for it on XDA or other sites. Couldn't find any stock firmware for it on Google, only shows a couple hits for the Tornado 348. I hate to say this, but you'd be better off getting a new phone.

Could it be possible that there will be a Tornado 350 stock firmware in the near future?

Yes, keep an eye on Needrom as they are the only ones to carry the 348 firmware.

You can also contact the webmaster at that site and he can probably hook you up.

Try a reset, Boot your Phone into safe-mode  (Click on the tag to find out how)  this will only boot essential apps, Then uninstall any apps you think are the culprit, then boot out of safe mode and see if the problem persists. If it does Repeat the cycle till you find the problem. Then by the end if the problem still persists it may be a system app (Due to me not finding much info about your phone, I can't say it is full of crap ware, and finding info about this phone is difficult)
But due to your broken screen, this may be difficult.
And due to the extensive conversation in the comments section above, I doubt that your phone has root privileges, but if the phones does have root privileges, and the application may be in the system folder.

But due to my limited knowledge of what you have on phone, what you have done to it etc. I can't be any more help, then just suggesting to boot into safe mode.
In my opinion I think it is just one of the default apps downloading use crap or the default apps have automatic updates enabled

Every Android has root privilege. Question is, can any app gain that root privilege? It is this standard su which provides a way to switch to root. 2) It has been mentioned that device has been reset so there is no point in going to safe mode. If the reset was a failure at first for some unforeseen technical reason, then it should be done again. If the problem still persist, safe mode (by essential, it means no user installed apps) would be of no use since as you say the malware is located inside system partition. The safest option is a clean flash of OS, top to bottom.

@Firelord  I belive that you are most likely correct, but due to what type of phoen the user has, getting a clean OS may be  a bit of a challenge. Once the user has a clean OS they can install the ROM

If you check the list of All applications you may find applications like Pornclub, Engriks, Settings helper, Adobe Air, Battery controller, Times, com.android.system and many more. Antiviruses like McAfee and Avast detect these apps like viruses, but cannot remove them.
The solution varies from device to another. Re-flashing the device with the stock ROM is the best solution, but not the easiest since the ROM can be hard to find.
Another solution is to root the device and manually uninstall the malware APKs from the system directory. Some devices are hard to root. Sometimes the device is successfully rooted, but doesn't allow the deletion of the APKs from the system directory.
Disabling suspicious applications is another solution, but it doesn't always work because some devices don't allow disabling applications, or the viruses have themselves disabled their Disable option.

As mentioned, if you can manually reflash the firmware, that will solve it. Be careful you don't brick it though!
Otherwise, I suggest you reset the phone again. When it reboots, immediately put it into airplane mode. In settings, put the phone into developer mode (search google or xda developers forums) & turn on usb debugging (for ADB). You might need to select allow apps from unknown sources under security too
If possible, you should be rooted for this. The process depends on your phone. Look up what may work. I know that if you're lucky enough to have an old kernel, you can probably use ADB to push towelroot apk to the device, navigate to it in default file manager & start it up & hopefully be rooted just like that
Now use ADB to connect the device to your computer & get a shell. You may have to install USB drivers - should be in the docs for ADB or at least on forums for it
Using adb, especially if you're able to get root, you should be able to do a lot of useful things like

check out the contents of /bin /sbin /sys /boot & other directories that may have executables related to your problem
inspect, backup & modify files from your computer
hunt down the code that repopulates these unwanted apps
backup & restore the whole phone. useful if you get to a point where unwanted apps are partially removed & system is stable

Good luck! It probably won't be that easy unless you have a background in Android or Linux hacking. But it's most likely feasible if you're motivated, & you'll know a lot more about your phone. Also, try posting whatever interesting stuff you find along the way, like a startup script or directory containing the apps in question. That will make it much more likely that somebody will be able to point you in the direction of solving your issue here

You have not done the proper factory reset. No, you did not.
Factory reset removes all newly installed apps. If they still appear after you boot, you have not performed the factory reset. It may be that the factory reset sequence you apply does not remove everything.
You need to figure out how this reset should actually be done and do it. Maybe the phone repair shop could help. Most likely you simply have a single misbehaving app with too many permissions, but you do not know which one.
You can also try to uninstall apps manually, as many of them as possible. Even apps that appear as part of the phone initial package may be worth to uninstall as maybe malware pretends to be one of those, sharing the same icon.
And, for the future, never click "Ok" button on the dialog without reading that is written on the dialog. If you have no time to read, always click "Cancel".
I am aware about some applications that use "com.andriod" as a package name but these are not malicious. They are educational apps that do not require any permissions, do not even connect to Internet.

"If they still appear after you boot, you have not performed the factory reset." -- both correct and incorrect at the same time. An app that has exploited a vulnerability (think of StageFright - millions of devices are at risk for their lifetime) would possibly have moved into system partition. It implies that even infinite number of correctly performed factory reset would not be able to get rid of the issue.

The factory reset sequence he applies does not remove everything. Most likely, only the user partition is reflashed but not the system partition. In this case only the workshop may be able to do the full factory reset, or fix after rooting the phone.

Use adb shell to remove those apps! you must install busybox as well
adb shell
su
mount -o remount rw /system
cd /system/app
ls (lists all installed apps)
rm

you may encouter some errors such as operation not permitted, then use commands from busysbox
lsattr  (show attributes of this file)
chattr -   (exemple chattr -iaA com.engriks.apk
then rm again

For those who can't seem to find any solution here are few steps

Remove your sim or disable your sim in settings also turn off your wifi first and/or remove any saved network. This should temporarily stop the auto download
Download App Detective in another device of course and transfer it via Bluetooth
Run App Detective, it should list your installed apps, then sort the list by Install date.(make sure to note the date and time of when your phone started to automatically install apps)
(I assume that it is only recent like today) Make a note of the applications that are recently installed.
[non-rooted] Proceed to your Android settings. From there open Apps > All. Select the suspicious applications one by one then Disable/Uninstall them.
If the option is [Disable] make sure to Force stop the app after not before you disable it.
[rooted] Using any Bloatware Remover, uninstall all unwanted apps.(if you're not sure of what to do, then don't do it)
You can now insert your sim or enable them and surf the internet.

ps: if you just Disabled them they would probably be enabled if you Factory Reset

From what I can gather, these are installed as system apps, therefore they cannot be removed easily. I would suggest flashing your rom onto your phone for a full reset.


text:
How to set custom notification sound on Skype on Android
I believe the question is pretty self explanatory but I'll repeat myself regardless.
Is there a way I can change the notification sound on Skype, on Android, from the default one? With or without the help of a third party program.
I own a rooted device, in case that helps.

Nope

Some folks likes to copy the APK, remove the app, extract the APK to find the sound files irritating them and replace them with the sound file they want to be played. They then repack the extracted content into an APK, install it and remain happy. Well not happy forever because the method has a huge drawback: their app is never updated again.

Better than nothing. Thanks for letting me know.


text:
Why aren't these UI "hacks" more often exploited?
What I'm talking about:

Facebook publishes a standalone app called Messenger on the Play Store. It's a chat app, for interactions with other Facebook users. It implements something called "chat heads" which are these round bubbles that sit on top of everything else in the Android UI (except the status bar) that allow for opening an Always On Top chat UI.

Facebook also publish their namesake app, which implemented intrusive notifications for itself, that appear at the top of the screen and contain their relevant content.
They render on top of the system status bar preventing access to it when the app isn't active

These are benign examples but they intrude on userland and feel malicious in the way they manifest themselves -- appearing without warning.
Facebook gave its apps hidden ways to disable these things.
What surprises me is that there are not more apps that exploit these UI security "holes".
If I were in the business of infecting people's phones, I would take advantage of this and make the most infuriatingly annoying malware because it's as if one program is given control of the entire interface  with no escape.
Imagine the things a malicious bit of code could do if it literally prevented the user from doing anything about it. They can't use the interface, so they can't kill the app, they can't turn off the phone and on many phones you can't remove the battery, etc.
Is there an obvious reason why this sort of thing isn't more exploited? I can't find much about it.

Just to add a bit more info, apps that are published to google play get reviewed, and as such any app that just fills a whole screen for no random reason, in my opinion, would probably not get put up onto the google play store and as such you don't get to see what you are talking about in your above question. But when installing from unknown resources this could happen, but when most user who install from unknown source, install applications, they would usually know what it does, and would intentional install a malicious app.

@Matt07211 I know they get scanned and stuff for obvious glaring issues but do Play Store submissions actually get tested by humans?

To some degree yes, (to some extent any way). As seen here: http://techcrunch.com/2015/03/17/app-submissions-on-google-play-now-reviewed-by-staff-will-include-age-based-ratings/ Edit: Qoute: "Today, Android apps are approved in hours, not days, despite the addition of human reviewers."

"and make the most infuriatingly annoying malware ever" But why? What use does that have? Malware isn't supposed to annoy, it's supposed to either get private information to the developer or to get you to pay the developer or (rarely) to completely destroy information or your ability to use the device. Just annoying you and making you reboot your phone does not do either of these things. And yes, you can always shut down your phone, no matter what happens. On some phones it's holding the power button for 8 seconds, on some it's power+volume down for ~2-3 seconds, on some others something else.

That chat bubble is there because you granted Messenger the permission "draw over other apps". In simple terms, call it overlay. The qualified name of the permission is android.permission.SYSTEM_ALERT_WINDOW.

Allows an app to create windows using the type TYPE_SYSTEM_ALERT, shown on top of all other apps. Very few apps should use this permission; these windows are intended for system-level interaction with the user.

(Emphasis mine)
I don't think chat bubbles of Messenger, in any capacity, are meant for system-level interaction with its user, so you can assume that developers of that app and any such app chose to abuse the system's feature for their own interests.
Furthermore, you definitely are not the first person who thought about exploitation of the overlay feature of Android.
ArsTechnica: New Android ransomware locks out victims by changing lock screen PIN

Dubbed Android/Lockerpin.A, the app ... overlays a bogus patch installation window on top of an activation notice. When targets click on the continue button, they really grant the malicious app elevated rights that allow it to make changes to the Android settings. From there, Lockerpin sets or resets the PIN that unlocks the screen lock, effectively requiring users to perform a factory reset to regain control over the device.
...
Once the continue button is pressed, the app will acquire administrator rights [becomes a Device Administrator]. From there it will change the PIN and periodically continue to overlay a fake window in an attempt to hold on to the elevated privileges. It's the first known Android lock-screen ransomware to set a phone's PIN lock. Because it requires non-paying victims to factory reset their phones, it causes them to lose all of their data.

(Emphasis mine)
Just so you know, Android understands the potential damage overlay can cause to a device, hence, when an overlay is actively drawn on screen and user attempts to sideload an app, the install button simply fails to work. See Why can't I press the Install button when installing applications from unknown sources?
If only Android extends this feature to activation/deactivation of device administrators, that would be very nice of them.
In case, you want to know which other app has the same permission, you can use my answer on Determine which app is drawing on top of other apps?

The notifications you mentioned, intrusive they may be, are called Heads-up notifications. Until Android 5.1, users didn't have an official way to get rid of them without losing all notifications from an app.
Android Design: Heads-up Notification

When a high-priority notification arrives ..., it is presented to users for a short period of time with an expanded layout exposing possible actions.
After this period of time, the notification retreats to the notification shade. If a notification's priority is flagged as High, Max, or full-screen, it gets a heads-up notification.

(Emphasis mine)
As you may have guessed, Heads-up notifications are not the default type of notification a system should be displaying to a user and a developer have to explicitly opt for it in the app's code. It's just that some developers opine that the things their app do are of the ultimate priority in the life of the user, let alone the system, so they often choose to show every notification as a Heads-up notification.
That said, heads-up notifications were introduced only in Lollipop while your device runs Android KitKat, so definitely, as Andrew T. put it in comments, it must be Facebook's native code which is both creating and displaying those pseudo-Lollipop notifications at the top and above a window.
The reason you can't interact with system bar when that pseudo-Lollipop notification is active, is most likely the use of blocking overlays to display a view which is perceived as a notification by the user. Aaron's answer has explained it with a good working example app.
I searched web between the range Oct 2013 to Oct 2014 (the developmental age of Android 4.4.x) and came to know that there were apps available in Play Store primarily meant to create those pseudo-Lollipop notifications. One such app is Floatifications and the other one I found was Metro Notifications Free. Both uses the same blocking overlay to create those pseudo-Lollipop notifications.
I'm surprised you didn't find toasts pesky enough.

Regarding heads up notification, I'm a bit in doubt since OP mention Android 4.x which didn't have the feature, while he acknowledged it as "pseudo-Lollipop" notification. So.. If it appeared on KitKat, then I think it's FB's custom code...

@AndrewT. thank you. I missed that critical info. Please see if the edited answer clear your doubts now. Let me know if it doesn't.

Wow, nice answer! I would just like to note that I as an end user was not aware that Messenger had this specific permission that you mentioned because it's only recently in Marshmallow that Google realised they should improve their permissions model on apps, and it was not specifically mentioned or visible from the store.

I don't mind toasts because they typically take up a very small portion of the screen for a very short amount of time, and kind-hearted developers allow me to tap things behind them, so I'm alright with them as long as they don't overstay their welcome. What does feel pesky is when they refuse to go away and/or are the size of a cockroach. :)

Facebook does a lot more than just bloat your viewing window. Have you seen all of the permissions it requires?!
The methods Facebook use to add chat bubbles are called Blocking Overlays. They are built-in feature of Android. There's an app called Tasker that well visualizes these features. Tasker is an automation app, but you can also create activities called "Scenes" that you can design UIs on. Tasker allows you to display these scenes as:

Full Window Activities,
Blocking Dialogs (with a Dim Background option, which don't allow the
user to click behind the window),
Blocking Overlays (which allow the user to continue using the
foreground app, much like chat bubbles),
and non-blocking Overlays (these cannot be focussed or tapped on,
taps go right through the overlay to whatever is underneath it).

Non-blocking overlays sound pointless, but that's how "night-mode" and "brightness limiter" apps are created. It's just a semi-transparent overlay on the screen.
So, it's not a super bad thing that apps can utilize your window space, if not abused, they can provide features. In the case of Facebook Messenger all the neat little features definitely has a cost, of privacy (app permissions).
I hope I helped explain these "UI hacks" a little better, and that they're not always bad.

I have seen all the permissions it requires and how terrible it is, but it's better than the website ¯_(ツ)_/¯ To respond to your last point/s, yes, they are useful for those cases and many others, I agree, but the implementations by FB still irk me. Thanks for your answer!

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


text:
How to root the Droid Maxx with 4.4.4 KitKat
Is there a way to root the Motorola Droid Maxx (Android 4.4.4 KitKat)? It doesn't even support the ESPN app as-is.

Possible duplicate of How to root droid running 4.4.4 KitKat

Related http://forums.androidcentral.com/motorola-droid-maxx/580269-how-do-i-fully-root-motorola-droid-maxx-android-4-4-4-a.html#post4682808

There are plenty of rooting apps avialble for rooting kitkat mobiles.. The apps like Framaroot, King Root, VRoot and so on.. for more information check this out..

Tyvm! Hopefully one of these will work


text:
Is there anyway to get my droid Maxx to recognize my external hard drive that is NTFS not fat 32
I have done a lot of research on this and it would seem like in this day in age this would not be very hard to figure out

Have you tried Paragon? Paragon Mounter - Play Store
Referenced from here: NTFS With & Without Root

It says I have to be rooted and so far I have not found anyway to root 4.4.4 KitKat

Oh boy. Looks like yours is a challenge to root, I saw this root video and I can see your situation. Got any other Androids you can use? Some of us Android junkies have a drawer-full, ha.


text:
Change the server that Android uses for an internet connectivity check?
As far as I am aware, Android checks internet connectivity by connecting to connectivitycheck.android.com.
On one of the WiFi networks I regularly connect to, they use web filtering, and block the android website. This means I can use the internet, but when I move around the campus and my device has to connect to the next access point automatically (with the same SSID etc.), it refuses, as it could not previously get an internet connection. Provided I am rooted, can I change this server to, say, www.google.co.uk?
I am running Cyanogen Mod 12.1 on a C1905.
P.S. There is very little chance that I can get these guys to unblock the android website. :(

Just to be clear, a failed connectivity check is when you connect to WiFi but the ! symbol appears on the WiFi icon on your notification bar

Technically, sure... Just add an entry in /system/etc/hosts file and reboot, but I'm not sure what it does to check connectivity, a simple ping or something more, redirecting it could cause it to fail on every network everytime. Remember if you flash nightly updates this will likely be written over each time.

In this case you can use some sort of proxy tunnel apps like psiphon, troidVPN, tunel guru etc.

Just execute su then settings put global captive_portal_server SERVER_YOU_WANT_TO_USE in a terminal emulator app or ADB shell. I'm in China so I do this for every device I own when I set them up (i.e. clean flash - this persists through dirty flashing), and I use g.cn (shorthand for Google.cn). Google.com.hk should have the same function though I can't be sure.
I wonder why this didn't get a proper answer for this long...

Thanks! I too wonder why this went unanswered for so long. Is it just a ping it does? Or does it look for certain data?

It tries to reach a certain address for a "captive portal". More explanation in this question and its answers/comments: link

This requires root?

@Nimrod Doesn't seem so at least on my device, not sure if that applies universally.


text:
No alarm or silent during certain times
I have used 2 applications, one for alarm and one for setting silent times (so I can not hear my phone during working hours and night time) but experience issues with them not sounding/working.
For years, with my HTC One, I had no problems. I have now upgraded to Huawei P8 and have noticed an issue. Neither 'work' (meaning, the alarm doesn't sound) over a period of time. This means, if I set an alarm for 5 minutes time, it works. It could quite possibly work next day, and even several days, but within some time, it stops.
I've some IT experience and did some testing and have realised that, when using my HTC(s) in the past, if I see what apps are running, I can close them (to free up RAM/resource). Even if I closed the alarm app or the silent application, it would still run in the background (I assume, maybe it automatically restarted) and work.
I assume the issue I have is likely to be down to the design of the different 'flavour' of the OS, despite both being Lollipop. Maybe the HTC would allow the 2 apps to restart them selves but the P8 could prevent this for security reasons (is there a set this type of control per app?). Maybe the HTC didn't "close" the app in the way I thought it did!?
The only thing I've done to this phone is changed the launcher (it's not rooted).
My question is, do I have to keep these type of applications running in the background, meaning when I close other running apps, I just need to be more vigilant with which I close? Or even better, is there a setting I can change so these things keep running even when I close them (as they did with my HTC(s)).

Since I also realised it happens with widgets, I worked out it's due to battery saving.
P8 has option to allow apps to run even screen off (To find this, go to Settings -> Power saving -> Protected apps), and it appears this also means in background (so they continue to run even if they're closed)!
It's fixed my email widget and my SMS/bandwidth measuring programs.
It has fixed my alarm, but not my 'silent time' application, but the phone has this option built in. Despite that, I will test another application to see.


text:
How can I know whether the TWRP has been installed in "read only" mode?
I have Nexus 5 D820 running Android 6.0.1 (MMB29K). I flashed TWRP (v2.8.7.x) and while doing so I vaguely remember that I opted for a read-only installation so that the future updates will work. I also rooted without flashing any kernel.
When I tried to install the update MMB29S, I get an error in TWRP console:

The purpose of the above steps is to allow system updates to work and I wonder whether I had installed TWRP in read-only mode or not.
Is there any way for me to find out in a non-destructive way?
Update contents of /data/media/0/TWRP/.twrps:
tw_action_vibrate  160
tw_backup_list   /boot;/efs1;
tw_brightness  255
tw_brightness_pct  100
tw_button_vibrate  80
tw_color_theme  0
tw_force_md5_check  0
tw_gui_sort_order  1
tw_inject_after_zip  0
tw_keyboard_vibrate  40
tw_military_time  0
tw_mount_system_ro  0
tw_mtp_debug  0
tw_mtp_enabled  1
tw_never_show_system_ro_page  0
tw_no_screen_timeout  0
tw_reboot_after_flash_option  0
tw_rm_rf 0
tw_screen_timeout_secs  60
tw_sdext_size  512
tw_sdpart_file_system  ext3
tw_show_spam  0
tw_signed_zip_verify  0
tw_simulate_actions  0
tw_simulate_fail  0
tw_skip_md5_check  0
tw_skip_md5_generate  0
tw_sort_files_by_date  0
tw_storage_path  /data/media/0
tw_swap_size  32
tw_time_zone  CST6CDT,M3.2.0,M11.1.0
tw_time_zone_guidst  1
tw_time_zone_guioffset  0
tw_time_zone_guisel  CST6;CDT,M3.2.0,M11.1.0
tw_use_compression  0
tw_zip_location  /sdcard

Wierd, it says your your device has lollipop LRX22G not marshmallow MMB29K when checking the system. That's why it aborted at that point. But an easy way to check if your read only try to create a folder in the system.

Thanks @BoLawson for the trick. I tried to copy the .twrps file to /system and it was successful. Probably my memory should be wrong. BTW, what part of the .twrps file says I have LRX22G - just curious to know.

If you look 5 lines up from the first red error message. You will notice a step in the package compatibility verification. When checking the system it states:

package expects build of... MMB29k.. or MMB29S..

Then 2 lines up from the red error it states that:

this device has... LRX22G..

Then throws the binary error and aborts. The weird thing is Hammerhead went from 5.0.1 (LRX22C) to 5.1 (LMY47D). The Build # LRX22G was for nexus 7's and 10. It looks like your running a custom ROM that was compiled from the LXR22G source. https://developers.google.com/android/nexus/images?hl=en

:-z quite confusing. I am pretty sure I downloaded the factory image of version 6.0.1 and even used stock kernel to root.


text:
How to root Lenovo A1000 Smartphone?
I tried Kingo Root and Root Genius and some other software but finally failed to root this phone. My phone is Lenovo A1000.

Welcome to Android Enthusiasts! We will need more information to give good recommendations here. Please [edit] your question and include at least: The Android version it is running.

For users who flagged this as "Unclear what you're asking": assume Android 5.0 if OP doesn't clarify since I don't think Lenovo pushed any update beyond that version.

I have Android 5.0 and i can't Root this Phone.

To root a Lenovo A1000 smartphone (Android 5.0), go to kingroot.net and follow their directions to download, install, and run KingRoot.  I downloaded the Android .apk to my Linux laptop and copied it to the phone via adb, but I'm sure downloading directly to the phone (they provide a QR code) would also work.
By the way, add SuperSU to the list of ones that do not work on this phone.


text:
Disable Cyanogen Privacy Guard from Shell
I setup privacy guard for some of the ROM-Apps and now the GUI crashes when i even try to get the pin entry field on the lockscreen.
My phone is rooted and i can try via adb or recovery.
How can i disable the privacy guard or reset it from a root shell?

Removing /data/system/appops.xml from TWRP (recovery) helped.

And per this answer you'd be losing your notification settings. Thought to mention that point.

Yeah. The file could be edited, but i did not see which value does what without reading source or testing on another phone, so i just deleted it.

Instead of removing /data/system/appops.xml you can also edit it, at least if only the permissions to "Google Play Services" are the problem.
As I didn't want to re-configure all the app permissions, I downloaded appops.xml through adb (adb pull /data/system/appops.xml) and  removed the section
<pkg n="com.google.android.gms">
…
</pkg>

This just removes all settings for Google Play Services.
After that I uploaded the edited file again (adb push appops.xml /data/system/appops.xml) and everything works after restart.

This is the best answer, saved my day. Privacy Guard was stopping Google Services and the Phone was unusable (LineageOS). Also safe mode didn't work. Changing the configuration file with twrp/adb worked like a charm. Also your answer permits to not lose privacy configuration for other apps. A question, have you any documentation of the exact meaning of attributes/tags into this xml conf file (in case I need to perform minor changes)?

Thanks. As to the doc: No, I don't have it. I just figured out how to edit the file by guessing + try and error :)

A solution that worked for me was to simply boot into safe mode, and then revert to my previous settings.


text:
How to add contacts using adb without user interaction?
Following this I found out how to add a contact using adb. The only thing that's bugging me is that the user has to okay/cancel the action, because a create-contact dialog appears on the screen. What I want is for the command to automatically add the contact without waiting for the approval of the user. I've already looked through this, but couldn't find a way. Does anyone know how to do this?

Your Android version and device ? Is it rooted?

I have several devices available: Nexus 5, 6.0, rooted; Samsung Note 10.1 (GT-N8010), 4.4.2, rooted; Nexus S, 4.1.2, rooted; Sony Xperia Tipo ST21i, 4.0.4, rooted. Though I'm mostly interested in adding contacts on the Note, Nexus S, and the Sony

For your Android 4.4.2 device the command to add a contact is (replace the Bo Lawson and #123.. to whatever you want):
adb shell am start -a android.intent.action.INSERT -t vnd.android.cursor.dir/contact -e name 'Bo Lawson' -e phone 123456789

Now to get it to save. This is Android 4.4.2 specific. Pressing back will save it. For this you need to use key events. With Android 4.4.2 it is key event 4. You are going to need to do it at least twice.  Once to exit the keyboard, the other to exit and save. If required use it again to completely exit from Contacts app.

adb shell am start -a android.intent.action.INSERT -t vnd.android.cursor.dir/contact -e name 'Bo Lawson' -e phone 123456789
adb shell input keyevent 4
adb shell input keyevent 4

This worked on my rooted Samsung Galaxy Tab Pro running Android 4.4.2.
Edit: I found a post on Stack Overflow which references this command.

Nice workaround! It really does work!

It actually also worked for the other devices. Too bad I didn't find the post you mentioned... Do you know if there's some kind of list of all inputs or keyevents?

For the current android version and if unchanged past versions. Google developers site will give you a lot of info. http://developer.android.com/reference/android/view/KeyEvent.html For everything then the tedious task of reading the source code. Simplified breakdown search SO, AE,  individual blogs and articles. http://stackoverflow.com/questions/7789826/adb-shell-input-events

I think there is not direct way to do that. I would recomend for you to make a simple app to insert a contact or contact list and then use it with adb. You can find an example here http://www.codeproject.com/Articles/578823/Android-Contact-Operations-Insert-Search-Delete

This would sound uncool, but you can consider skipping the question from answering if you think something can't be done, unless you technically and in detail explain the reason for such. Given that this site is for end-users of Android (read: we don't expect users to have any knowledge of programming an app) the recommendation you made won't be found useful to them. :)

Thanks for the suggestion, but I didn't want to use an app for that.


text:
android 5.1 Exchange email problem
I have a Moto G, and I just update the Android system to 5.1.  With the old system, I was able to expand and contract the size of e-mail in Exchange (by expanding and contracting two fingers on the screen; I don't know the name for this action), and the text would reformat to fit on the screen.  Now with 5.1, this doesn't work any more.  I expand the screen and the text becomes larger, but it doesn't reformat, and I lose some of the text "off screen."
Does anyone know how to fix this problem?  Thank you.

Did you try double tapping screen? That works for me on kitkat to reformat mails


text:
How to actually merge/join the internal storage and external SD card!
I have a 30 Gig external SD card in my LG 9 phone. I am trying to merge/join the SD card with the internal storage so when i save ANYTHING on my phone whether it be an app (including updates), a song, a video, a picture, system updates, etc. I want it all to know how to save to my SD card automatically without setting up directories or using a "transfer file to SD card" app.

Well, apart from system files and apps, you can install any third-party file sync app, and synchronize both SD cards.

This is a feature that is being introduced in Android 6.0 (Marshmallow). Unless you already have that version of Android, you'll have to make do with more cumbersome hacks.

You can try link2sd, use the first partition on SD as internal storage.
I had many issues with link2sd, mostly related to app failing installation/upgrade

I would recommend the Xposed module XInternalSD. It will change the default save path of all of your apps to the external SD card. It can be enabled for all apps or on a per-app basis. As far as I know there is no way to accomplish this without root. Although technically there is no way to "merge" the internal and external memory; they are mounted at different points on boot. But this is probably the best solution for what you want to do.
App2SD (available in the Play Store) is another option. It is updated frequently and includes multiple methods of linking a 2nd partition (standard root, init.d and su.d) which offers good performance especially if you have SuperSU and can use su.d mode. However it requires more configuration and tweaking than the XInternalSD module.
Stay away from Link2SD. It hasn't been updated in a long time and appears to be a dead project. It does not include all the helpful tools and multiple methods of App2SD either. I would not recommend using it except maybe on very old devices.

Just FYR, you can patch the boot and force mount external SD card to somewhere in the internal memory, acting as if it's part of internal.


text:
Why am I running out of space?
My phone (a Moto G 2nd Gen running Android 5.0.2) says I currently have 441MB of free space on my phone. I am trying to download an app that is 27MB. My phone refuses to let me, because it says I don't have enough space. I've moved everything I possibly can to the SD card (apps, pictures, etc) and have deleted my cached files.
There's obviously enough space for this app to be downloaded. Why does my phone think that it's not got enough space?

What is the size of data partition? Use DiskInfo to find that easily.

@Firelord DiskInfo says it is 5.5 GB with 551 MB free.

After moving to SD card, Try to restart your phone and then check it out


text:
wrong currency in my playstore account
When I tried to make a purchase from HOF I found out that the reason the prices were incorrect was because they were in the wrong currency.  When I checked my account it said canadian which is correct.  What do I do to correct this issue?

Related what-currency-does-the-google-play-store-display-in

Make sure your network/gps location is correct, then clear app data.
I had a similar issue with Google Maps (hotel price in foreign currency) after international travel.


text:
Better to keep frequently used apps on the Android device or move them to an external microSD card?
Apps on an Android device can be broken up into three categories:

Apps frequently used, often scores of times per day
Apps used 3-6 times per week
Apps infrequently used

For apps in Categories 2 and 3, it is usually a good practice to move them to an external microSD card when possible (if they don't have widgets you want to use).  This will free up limited memory on the actual Android device.
But what about apps in Category 1?  Apps in that category are read dozens, if not hundreds, or even thousands of times per day.  Is it a good practice to move them to a external microSD card (if they don't have widgets you want to use)?
Here are some points to consider:

Despite what specs claim, which actually allows faster access: the device's internal storage, or a modern microSD card (Class 10, UHS 1)?
Will copying Category 1 apps to a microSD card cause it to wear faster, thus resulting in a shorter life-span?
These days, it seems likely that a user may want their microSD card to survive many generations of Android devices.  In other words, although many people replace Android devices every 3 - 24 months, most people don't replace microSD cards with such frequency.
Due to their capacity, microSD cards often hold tens of thousands of important photographs and videos.  Yes, backing up is essential, but sometimes microSD cards can fail between backup cycles.  IF moving Category 1 apps to the device's microSD card might have a noticeable impact on the card's life span, it is possible that it may not be a good idea.

So what's the truth?  Is it a good practice to move Category 1 apps to an external microSD card (assuming no widgets), or is it best to leave them directly on the Android device?

Related: Should low class SD cards be used in Android devices? (has three reopen votes)

It depends on how you use your phone, but under normal circumstances (no task killer apps, small to medium sized memory consumer, etc.) category 1 apps are typically held in RAM. So I guess reading from SD card you will only notice when the app is started for the first time. But beware, that SD cards can outperform internal memory performance: General difference in read/write speeds for internal memory vs SD card
Best advise I can give: just try and use what is best for you. If you experience performance drawbacks, just put the app back to internal storage, if not, than you can leave it on SD card.
Regarding the life time of SD cards, I guess, unless they do not perform to much IO to the card but operate on network and RAM it does not matter. Personally I just put every app I can to SD card, to have more internal memory for apps I cannot move to SD.

Thank you for you answer.  The part that is the most useful to me is that SD cards can outperform internal memory performance.  The part about Category 1 apps typically being in RAM is probably true if the device has abundant RAM and most apps used require little RAM.  My experience is that even Category 1 apps are frequently swapped out of RAM.  The piece missing from the answer is whether or not the SD card will wear faster.  Regardless, thank you!

Lol. You were editing as I was commenting. :-)  You added info regarding SD card wear and tear.  I wonder if reading several apps from the card dozens of times per day will affect wear at all.  I'll have to take a look at some specs, but IIRC, it's not sufficient to make a large difference.  Some numbers to justify the recommendation would be useful in the answer.

BTW: it seems that you really care about your data on the SD card. So a working backup for your data is indispensable!

Definitely!  There's also a possibility that a card could wind up in a camera at some point, and we all know (or can imagine) how painful it is to lose thousands of photographs.


text:
Android 6.0 Marshmallow Update Deletes All Of My Photos & Videos
My Infinix Hot2 X510 (Running on AndroidOne) got Android 6.0 Marshmallow on Friday, this is the good news :).
The bad news is after updating the system all of my photos & videos are GONE, disappeared without a trace :(
I tried to search using installed apps like google photo, file manager and previously installed apps (before update) like ES Explorer by all ways no photos.
Keep in mind that all previous updates was done smoothly without any problems and even that update never warn me about deleting any thing and other files on phone remain as is.
Did I miss anything, should I look in somewhere or in someway, or is there some app can help ?
Thanks in advance.

So, all your apps are there, but just the media is gone?  What about app settings?

@MartyFried Just the media & other files was deleted not settings, even SMS & contacts are kept although some problems was in contacts like the name wasn't shown on dialing but the number only. The contacts needed to be deleted and restored to work properly.

The AndroidOne upgrade to  6.0  (Marshmallow) is a mess. If someone got this update do yourself a favor  don't update and wait for the next update 6.0.1 (or whatever). There are some other problems appeared beside the file deletion problem. last note my bad update size was 8xx MB and I heard that there was another update sized 6xx MB didn't  cause any problem (just heard not sure).

Well, my phone came with Marshmellow, so I have no direct experience, although I'm active on several Android forums and never read about this happening.  Usually, unless you do a factory reset, nothing will delete your media, not even installing a different ROM.  Apps and settings yes, but not the internal memory partition.  Perhaps your particular update either did a factory reset, or had that option, and then the apps were automatically restored by Google, which is normal (apps, but not settings, I think).

There are many complains about the problems mentioned above in many Infinix Facebook group posts (in Arabic).

Well, sorry I can't help.  To be honest, I never heard of Infinix. :-(

For the future, you can keep backups of all your photos, videos, and other valuable files -- in the cloud, or elsewhere. For now, it must be very frustrating, what happened to you, and I don't know what to advise you. Could you phone Infinix for help?


text:
Problems with drivers for Nexus 10 when building Android 4.3 from source
I followed the steps in the Android Source web page to download android-4.3_r1 and build it for Nexus 10.
What is the problem?

When I download and install the drivers for Nexus 10 for Android 4.3 (JWR66Y) form the drivers web page, the device stucks at the Google logo.

It seems that Google put the wrong drivers in their drivers web page for Nexus 10 for Android 4.3 (JWR66Y).  You can get the correct drivers from this page. For more details, see this post.


text:
Why does my phone split long text messages into multiple messages?
I have a galaxy s6 on verizon.
My friend has an iPhone 5 on sprint.
When I send him long text messages, they appear as one message on my screen. On his screen they're broken up into multiple messages.
I Googled it and it said that's just a problem with cross carrier messaging.
He said no because his other friend has verizon and sends him long texts on on a s6 edge and that doesn't happen.
Why does my phone split texts into multiple messages instead of keeping it one long message?
I use the default sms app and I tried using Googles messenger app and it still happens.