text:
Which driver is in charge of headset buttons on my tablet?
I have recently bought a Lenovo Tab3 710F tablet (product page) and I'm trying to control the music playback externally with a small electronic circuit.
The idea is to reproduce the same behavior as the buttons that one can find on a external headset which plugs into the mini-jack port.
There is a page in the Android documentation which specifies this interface: 3.5 mm Headset: Accessory Specification. In brief, each button should be connected in series with a resistor of a given value with allows the android device to detect which button was pressed and trigger the corresponding action.
The problem is that my tablet doesn't really respond according to that specification (ex button B triggers next song, instead of vol+). Also, the wiring on this tablet seems inverted between GND and MIC. I have tried opening the tablet to find the audio or headset detection IC model, but to no luck as everything is sealed.
Thus, I was thinking that maybe I could get some info from "software": how can I know which driver is handling button actions?
The idea would then to look at the source code (available on Lenovo website), to find the various capabilities coded in the driver, and maybe even an IC reference that would help me locate the IC datasheet for further information.

OK guys, I'm a bit surprised that I didn't get any answer, but I guess that's because it was more of a stackoverflow question...
Anyway, I continued my research and I found the answer myself, in particular thanks to this PDF which describes in detail "The Android Input Architecture".
The PDF provides all the details, but basically each driver registers input_devices with the Linux Kernel and a device file is created for each event under /dev/input/eventXX. Then there is an Android mechanism to route those events to the applications, but that is not the concern here.
One can use the command getevent to get more information on these events (see also Android documentation):

getevent -li provides a list of the registered input devices with the possible events for each device
getevent -lp prints a new line for each event received (the -l flag displays the events types and names in plain text rather than number)

So for example in the case of my Lenovo tablet, we find that:
add device 6: /dev/input/event1
  bus:      0019
  vendor    0000
  product   0000
  version   0000
  name:     "ACCDET"
  location: ""
  id:       ""
  version:  1.0.1
  events:
    KEY (0001): KEY_VOLUMEDOWN        KEY_VOLUMEUP          KEY_HANGEUL
  KEY_NEXTSONG
                KEY_PLAYPAUSE         KEY_PREVIOUSSONG      KEY_STOPCD
  KEY_SEND
  input props:
    <none>

NOTE: This is only an extract from the complete output, limited to the headset buttons detection.
Thus, the headset buttons handling seems to be done by some "ACCDET" component. Now, I still haven't figured out the "formal" way to know which driver registers this event, but by using the ACCDET and KEY_XX keywords in a source code search, I was able to find the corresponding source file (accdet.c), which contained the other information I was looking for (namely the voltage thresholds for each button detection).
Finally, it is also worth to note that one can simulate events using the sendevents command. So for instance, to simulate pressing (and releasing) the play/pause button, one would use:
sendevent /dev/input/event1 1 164 1; \
sendevent /dev/input/event1 1 164 0; \
sendevent /dev/input/event1 0 0 0

Hope it can help someone else...


text:
Is it possible to reinstall S Notes after flashing Lineage OS 14.1 on Samsung Galaxy Note 8?
I'm a beginner with rooting, flashing and so on, but I'd like to try to flash Lineage OS 14.1 on my Samsung Galaxy Note 8 (GT-N5100). However I often use S Note for taking notes using the S Pen. Does anybody know if it is possible to somehow get and reinstall the S Note App after flashing the new OS? If yes, how?

S Note is tightly integrated with Samsung's framework and thus can't be ported to non-stock-based ROMs.
In the meantime, try Squid as an alternative. Lots of available pre-defined notes, export to PDF, and best of all it makes use of the spare button on the pen that LineageOS doesn't use.

Squid works well for me too. No issues on my Note8 N5100 tablet.

Just created an subaccount here to say that this is actually nicer than the stock... Nice suggestion. Loved it :) - And it even has official support for the S Pen, letting you choose what to do when pressing the button, etc

source: Stack Exchange

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

sort: votes


text:
Every time I connect my Android to my Ubuntu it asks me to allow the connection, can I change that?
I have a Galaxy J7 and Ubuntu 16.04 on my Linux box.
Every time I connect the phone to the computer, it asks me to ALLOW the connection.
Is there a way to add an authorization for that one computer to connect automatically and without an ALLOW each time it connects?
I found a couple of answers to similar questions, but from like 2010 and 2012. The answers on those did not seem to make any sense for the J7.

Do I have to install something to get these "developer options"?

Ah, wow! Clicking 7 times... Ha! Ha! It says "Build Number" btw, I'll see next time and disconnect/re-connect, but that has been annoying me quite a bit! This time it asked me to authorized only once. Much better already.

Okay, so that solution works good enough. It looks like I just have to click ALLOW once. Before it would require me to click it over and over again until Ubuntu and Android were in sync. or something of the sort...

Revoking USB authorisation in developer settings (enabled by tapping "Build number" 7 times ) fixed the problem for OP and they needed to authorise only once and not on each time it was connected, as earlier
Probably it was because of authorisation being "forgotten" on the device or a handshake issue between PC and device

Yeah, most certainly a handshake issue with Ubuntu... Unfortunate. I hope it gets fixed one day, in the meantime I can use the developer mode.

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


text:
How can I export the list of open Chrome tabs?
Chrome's sync feature isn't picking up all of the tabs open on my Android phone.
Are the tabs stored in a file somewhere that I can access?
My intention is to export the list of tabs so that I could run a factory reset on the device.
Running Android 4.3

chrome://history/syncedTabs for anyone whose sync feature is working btw

You can use the Remote Devices feature in the Chrome debugger to connect to Chrome on the device and access the tabs. Just expand the list of tabs visible to get the full list and then highlight & copy everything shown (including the URLs) to the clipboard:
https://developers.google.com/web/tools/chrome-devtools/remote-debugging/
I just managed to export ~400 tabs this way.

wanted to mention that the chrome debugger list will shorten the urls if they are too long, so instead of copy-pasting, you can get the url's directly using the method in Louis Maddox's answer

@woojoo666: It looks like things in Chrome have changed and now Louis's answer also truncates the end of many URLs. Looks like any URL over 100 characters -- which in my case it about 50% of all my open tabs -- will be missing its ending.

@peterflynn still works for me. Just exported a url that was 432 characters long. Just to make sure, you're opening the dev tools in a pop-out window, going to the "remote devices" pane, then using ctrl-shift-J to open a second dev-tools window, and then using the script provided here, correct?

What is the minimum required Android version to do this?

Update October 2022: As per Remote debug Android devices, the chrome://inspect/#devices page has replaced the Remote devices debugger panel, breaking the JS in this answer and similar ones.

Just joined this StackExchange to show some appreciation for Jeremy's answer above, and also add the few lines of JS I used to export the tabs list (since copying with the cursor isn't ideal!)
As Jeremy said, select Remote devices under More tools on Chrome devtools ⋮ icon (top right of the panel):

set up USB debugging on your phone (under Settings⇒Developer options, root not required)

note that you must enable the Developer options menu, it's hidden by default to protect users
on my phone this required tapping multiple times on the build number under Settings⇒About Device

once this is done, plug your USB in and allow MTP connection
when the Chrome devtools remote device panel is open, the phone will then request to allow USB debugging

you can opt to always trust the computer

Now the device is connected,

open a 2nd devtools view on the devtools view from which you selected Remote devices to be able to retrieve the list of tabs using JavaScript

note that you must have devtools in pop-out mode (use the vertical ellipsis symbol in the top right of the panel) to be able to get this up, otherwise Command+Option+J(MAC) Ctrl+Shift+J(WINDOWS) will just close the first devtools panel.

expand the list from the first few items to all tabs by clicking 'Show more'
to script against the list, use the following few lines of code [entered in the console of the 2nd devtools window]

To export a list of all URLs open on Chrome for Android, I chose to just make the list into a markdown formatted text string and copy it to the clipboard
let bookmarkList = Array.from(document.querySelectorAll('.widget>.vbox'))
  .map(e => e.shadowRoot)
  .map(e => e && e.querySelector('.device-page-list'))
  .find(e => e);

let bookmarks = Array.from(bookmarkList.querySelectorAll('.vbox'))
  .map(e => `[${e.querySelector('.device-page-title').innerHTML}](${e.querySelector('x-link').innerHTML})`);

copy(bookmarks.join('\n'));

You will then have a list on your clipboard looking like this:
[How can I export the list of open Chrome tabs? - Android Enthusiasts Stack Exchange](https://android.stackexchange.com/questions/56635/how-can-i-export-the-list-of-open-chrome-tabs)
[Get Started with Remote Debugging Android Devices  |  Tools for Web Developers  |  Google Developers](https://developers.google.com/web/tools/chrome-devtools/remote-debugging/)
[How To Enable USB Debugging On Your Android Phone](https://www.groovypost.com/howto/mobile/how-to-enable-usb-debugging-android-phone/)
[Configure On-Device Developer Options | Android Studio](https://developer.android.com/studio/debug/dev-options.html)
...

Chrome changed, tabs = Array.from(document.querySelectorAll('div /deep/ div /deep/ div /deep/ div /deep/ div /deep/ .device-page-list .vbox'), s => ({name: s.querySelector('.device-page-title').textContent, url: s.querySelector('.devtools-link')._href})) will work now

Note that using this technique, any URL over 100 characters long will have its ending cut off.

@peterflynn still works for me. I just exported a url that was 432 chars. Make sure you're using the script that diamotte provided

Can this be used to get a previous tabs state?

What is the minimum required Android version?

It changed again. For Chrome Version "73.0.3683.75 (Official Build) (64-bit)":
tabs = Array.from(document.querySelector('div /deep/ div /deep/ div /deep/ div /deep/ div /deep/ div /deep/ div.vbox.flex-auto').shadowRoot.querySelectorAll('.devices-view .device-page-list .vbox'), s => ({name: s.querySelector('.device-page-title').textContent, url: s.querySelector('.device-page-url .devtools-link').getAttribute('href')})) (I could not access the final shadow-root via a selector, but had to use the .shadowRoot property of its host element instead. Not exactly sure why, but hey, unsupported.

Just in case anyone else is having trouble, I was having issues running some of these scripts (it was hammering the kernel's USB stack with 100% usage over 10+ minutes before I stopped it). The best way I found was to select the parent HTML element in the chrome dev tools inspector (use the cursor button in the top left of the nested dev tools window to select a random item in the list and then select the parent element) and then right click -> "Edit as HTML" -> copy into another text file. Then it was easier and a lot faster to adapt the above scripts to work on that local HTML copy (or BASH)

The script was broken for me in Chrome 79 (/deep/ is deprecated and the way that CSS selects into shadow-roots has changed) so I updated it, using the least specific selector that got the job done. Hopefully it will work for several Chrome versions to come.

As of Chrome 81, "Remote Devices" is accessible from chrome://inspect/#devices instead of in Dev Tools. That makes it a bit easier, no need to open Dev-Tools-on-Dev-Tools.

To get the full names/URLs, not truncated to 100 chars (as in @priorincantatio's answer): Open Dev Tools on that Remote Devices page and edit the "inspect.js" source file in browser to remove the truncation code (currently it's text = text.substring(0, 100) + '\u2026';), save it, then [re]connect the device to [re]load the URLs.
Then copy the URLs list to your clipboard using the latest valid code snippet (currently it's in the Gist above).

Following @BenJ's idea — I added a line of code: window.savedPages.push(page) to save the page data directly to a global array, without going through HTML. The line is added in inspect.js, in populateRemoteTargets, right before const row = addTargetToList(page, pageList, ['name', 'url']);

tl;dr:

have the Android command line tools installed on a development machine, and USB debugging enabled on your device. The device does not need to be rooted
adb forward tcp:9222 localabstract:chrome_devtools_remote
wget -O tabs.json http://localhost:9222/json/list

Details:
If you have the Android command line tools installed on a development machine, and have enabled USB debugging on your Android device, then you can do the following:

Execute adb forward tcp:9222 localabstract:chrome_devtools_remote on your development machine.
Chrome instances expose access to a debugging protocol via a unix domain socket with the abstract address "chrome_devtools_remote". The above adb command forwards requests made to port 9222 on your development machine, onwards to that unix domain socket. (You can get a list of all the unix domain sockets on the Android device by typing adb shell cat /proc/net/unix.)
Using this, we can run wget or curl (or indeed, a browser) and retrieve information from the mobile device's chrome instance.

Debugging information is provided as JSON data over HTTP. A JSON file listing the open tabs can be got by executing wget -O tabs.json http://localhost:9222/json/list.
(Other endpoints of the API can be found at https://github.com/buggerjs/bugger-daemon/blob/master/README.md#api.)

See here for more details on enabling USB debugging, and here for an overview of how it works.
Edited to add:

Some chromium-based browsers may not create the "chrome_devtools_remote" Unix domain socket (for instance, Brave has considered removing it), and some users have reported that Chrome for Android no longer does. You can check what abstract Unix domain sockets exist by running the command adb shell cat /proc/net/unix | grep '@': if you don't see "@chrome_devtools_remote" somewhere in the list, then your browser doesn't create it. I can confirm that Vivaldi for Android does create the socket, as of 2024 (version 6.5.3217.103).

wget -O - -q https://git.io/Jvfzk | bash

THIS is the way. Be sure to have Chrome actually open on your device and displaying (i.e. don't let the screen go to sleep)

I've created a automated php script to take on this task. It saves the json for further processing and a markdown list of links to view. Find it at https://github.com/machinateur/android-chrome-tab-transfer. It saved me from copying about 450 tabs to my new phone.

For windows I downloaded the SDK (https://developer.android.com/studio/releases/platform-tools), extracted the zip from the download, the cd into the dir and used the adb.exe. Had to turn my device to MIDI and then press ok on the allow dialogue on my phone. Then ran the above commands in PowerShell and got the tabs file.

Once I got adb setup this worked a lot better than getting it from the devtools with the added truncated URLs issue.  It did take some effort getting a new setup on Windows trying the command line tools only rather than installing the full Android Studio.

I had to unplug and re-plug my USB cable to get adb to work (verify with adb devices).  Then this worked brilliantly.

I just ran "adb forward tcp:9222 localabstract:chrome_devtools_remote" from Android SDK adb shell on my laptop. Then loaded "http://localhost:9222/json/list" in my laptop chrome, copied the text to notepad and saved with ".json" file extension. Then opened that in MS Excel and filtered out just the url list from the json data. Worked like a charm. Thanks! +1+1+1

Created a PowerShell script that makes it sligthly easier to get the file with tabs and convert it to CSV.  Supports UTF8 encoding which is critical for Cyrillic, German, French, etc. Please find it here: https://github.com/ampil/export-android-tabs . Inspired by this thread!

I came across this solution when I was looking to recover tabs that had been permanently closed after my browser crashed one day. In order to access the information you require, your device needs to be rooted so you can run a file explorer app with access to the root files installed on your device. ES File Explorer or Root Explorer are my recommendations.

Navigate to the root folder of your device (the protected system partition) → select DATA → select com.android.chrome.
There are several places where you may find information about your current tabs.

The first folder to check is app_tabs, then 0. In this folder there should be a file called tab_state which contains a list of all your current tabs.
There are also other files in this folder called tab3, tab4, etc. that contain info about current tabs.
IMO, you need a special "text editor / sql editor" to read the content of some of these files as the encoding is different.

Next place to look is /data/com.android.chrome/app_chrome/Default/. In this folder you'll find a file called History. Depending on your situation, you may find a good list of recent site visits here.
Finally, navigate to the Sync Data folder. In here, you will find the information that's being synced to Google (and this should include all the tabs you currently have synced on other devices).

In the file SyncData.sqlite3, you'll also find a history of all your Google searches (which I sometimes find to be an interesting read).
You'll need an Sqlite3 data browser program on your PC in order to read this file.  The app should be able to export to a highly usable .CSV or .XLS file that you can open in MS Excel.

This could be helpful to someone I assume.

Re "special text editor" for tab_state0: strings tab_state0 | grep -oh "http.*$" should do the trick to give you a list of urls. I used that also in How to recover open opera tabs from backup data after phone bricked?.

The most recent answer by simonsan is not working on my current Chrome build 75.0.3770.100.
I don't have the vbox class that is used in every script posted, so I managed to write a code that is working now:
tabs = document.querySelectorAll('#devices div /deep/ div /deep/ div /deep/ div /deep/ .row')
str = '';
for (i=0;i<tabs.length;i++){
  if (tabs[i].querySelector('.name').innerText != null){
    str += '- ['+tabs[i].querySelector('.name').innerText + '] (' + tabs[i].querySelector('.url').innerText +  ')\n'
  } else {
    console.log(tabs[i])
  }
}

I've found  Louis Maddox's post and screenshots very useful to decipher his script  so here is mine with the updated tree.

Anyway the solutions proposed to overcome the 100 char cap didn't work for me therefore I decided to edit the inspect.js from the source following these steps:

Download the chrome-pak-customizer and unzip it.
From C:\Program Files (x86)\Google\Chrome\Application\75.0.3770.100 (where 75.0.3770.100 is the name of the build) make a copy of the resources.pak in your Documents folder, drag the copy and drop it on the unpack.bat in the unzipped folder.
In \document\resources_unpaked\ take the 11208.js and open it.
On the line 537 or by looking for 100 there are these lines

  let text = value ? String(value) : '';
  if (text.length > 100) {
    text = text.substring(0, 100) + '\u2026';
  }

changing the 100 to 300 should be enough, it may cuts some google search links but mine where still working.

Save the file and in the same folder drag the pak_index.ini and drop it on the pak.bat. now the resource.pak in \documents\ has been updated with the changes.
Make a backup of resource.pak because you never know, close Chrome and replace the orginal with the updated version.

Now the script will show up to 300 chars for the urls.

Really nice! How did you find out that was the file 11208.js that you should edit? I am using another version of chrome and I dont have this file...

I figured an easier way: just to edit the inspect.js direct on chrome.

@juanora: how did you manage to edit it directly from chrome? Btw I don't remember but I guess I've setup the file research to look for "100" inside the files, a this point few file should popup

thanks for you answer. I tried searching for 100, substring, etc... No success... Please check this to see how to change it directly: https://stackoverflow.com/a/5506786/3375218

Thanks!
Ok I'm sorry I don't know what was I as thinking: look for this '\u2026'

A rejected edit made a suggestion that 11208.js is no longer available in Chrome v80

Instructions for Brave! You can replace the code in the console from Louis Maddox with this one, this is working as of today Brave Version 1.0.0 Chromium: 78.0.3904.97 (Official Build) (64-bit).
Remark: You can open a new console window of the remote devices window if you activate the remote device window and press Ctrl+Shift+J
tabs = Array.from(document.querySelector('div /deep/ div /deep/ div /deep/ div /deep/ div /deep/ div /deep/ div.vbox.flex-auto').shadowRoot.querySelectorAll('.devices-view .device-page-list .vbox'), s => ({name: s.querySelector('.device-page-title').textContent, url: s.querySelector('.device-page-url .devtools-link').getAttribute('href')}))

str = ' ';

tabs.forEach(e => {
    str += '- ['+ e.name + '](' + e.url +')\n';
})
copy(str)

Then you can paste all your tabs in a textfile.
If you want to open all the tabs on your actual device replace the tabs.forEach-part with
tabs.forEach(e => {
    window.open(e.url, '_blank');
})

Don't try that with too many open tabs on your device, though.
I added this after the tabs part to manually synchronize opened tabs (brave still missing this feature and I had 650 opened tabs on my mobile device) in charges of 50 tabs:
i=0;
j=0;
tabs.forEach(e => {
  if(i<50){
    i++;
    window.open(e.url, '_blank');
  }
  j++;
})
console.log("Tabs overall:"+j);

This will open a batch of 50 tabs from your device into the opened browser window. It also shows the overall tab count. Don't close the remaining 'empty'-tab for those developer tools and the remote device though, if you want to open another batch.
With Ctrl + TAB you switch through the tabs, Ctrl +D to bookmark them and Ctrl+W to close active tab. That's the way I did it manually, feel free to propose changes to this code for making everyones life's easier.

Thanks for this! -- your code above didn't work as of Version 1.26.67 Chromium: 91.0.4472.114 (Official Build) (64-bit) BUT, still gave me hope that Brave would work.  Got it working, and posting my code below... Ok don't have the REP for it, but here is the console .js code for Brave on Android 11 as of 2021-June

You need to be root or Chrome to read /data/data/com.android.chrome/app_tabs/0/tab_state0
You can use this dirtycow exploit on vulnerable devices to become Chrome and get tab_state0 from an attached device:
make root
adb shell
run-as com.android.chrome
chmod 711 /data/data/com.android.chrome/app_tabs/0
chmod 644 /data/data/com.android.chrome/app_tabs/0/tab_state0
exit
cp /data/data/com.android.chrome/app_tabs/0/tab_state0 /sdcard/
exit
adb pull /sdcard/tab_state0

Once you have access to tab_state0, extract the URLs:
LC_ALL=C grep -a -o 'http[[:print:]]*' tab_state0

This workaround will give you a text file with individual URLs for all tabs you have open in Chrome for Android.

As mentioned in this answer by Michael, you have to grab the file that contains the current tabs. Using a root explorer on the device, grab this file and move it to your choice of folder in windows: /data/data/com.android.chrome/app_tabs/0/tab_state
Install GNU Tools for Windows
Sometimes there's a weird arrow-character in the file that screws up the script. If you run the script and it truncates part of the file, look at the last character and it'll probably be that weird arrow character. Find/replace it in the original file. Once it's gone, the script will run fine. It looks like this: -->
Go to command line prompt (go to "Run" or Win+R, and type cmd) and navigate to the folder which contains sed.exe (wherever you installed it in step 2.)
You'll probably want to move the original file (tab_state) to the same folder containing sed.exe. It'll make everything easier. Once you've done that, run this script:
sed -i "s/.\{6\}http/\r\n\r\nhttp/g" tab_state

This will modify the file with all of the URLs formatted correctly. Open the file as a text file and then copy and paste the contents into a Word document or some other location. For some reason, if you don't copy and paste the data out, when you save the file it erases all of the line breaks/carriage returns. If things screw up, just start over and do it again. When it's all said and done, you should have a file that contains a list of links to all the tabs you had open before.

Michael identified the tab_state file, it remains to decode it.  The following script worked for me (in kitkat KSH_VERSION='@(#)MIRBSD KSH R43 2013/02/19' or xenial BASH_VERSION='4.3.46(1)-release' on a tab_state file from Chrome 49.0.2623.105), it prints out the last URL first, between the URLs it removes any unprintable byte and all following bytes, and more if needed so at least 2 bytes are removed.  Following each URL it prints a space, then the removed contiguous printable bytes if any, then a comma, then the number of other bytes removed (&said bytes within parentheses).  To print the URLs only use the commented echo command instead.
tab_state=/data/data/com.android.chrome/app_tabs/0/tab_state
[[ $KSH_VERSION ]]||shopt -s extglob       #set if bash
(cat $tab_state;echo)|while read -r r;do b=
   while
      q=${r%http?(s)://*}          #chip off a URL
      [[ $q = *url= ]]&&{
         p=${r%http?(s)://*url=*}  #special case URL within URL
         [[ $p = "$r" ]]||q=$p;}
      h=${r:${#q}}                 #the chip
      h=${h%%[! -~]*}              #remove unprintable&following bytes
      u=$((${#r}-${#q}-${#h}))     #no of said bytes removed
      p=$((u<b?b-u:0))             #no of more bytes to remove
      [[ $h ]];do
         echo "${h::${#h}-p} ${h:${#h}-p},$u(${r:${#r}-u})"
      #  echo "${h::${#h}-p}"
         r=$q b=2
   done
done

In windows, to extract tab_state0 from a TitaniumBackup archive (that works over rooted phones)
7z e TitaniumB\com.android.chrome-20180918-001302.tar.gz -so | 7z e -si -ttar tab_state0 -r

To get the list of tabs from tab_state0
sed -b "s/^.\{20\}//g" tab_state0 | sed -b "s/.\{6\}http/\nhttp/g" > my-tabs.md

On windows I would install https://scoop.sh/ then scoop install busybox 7zip

Pitching in here that for those which run android with root,
it is possible to export all of the chrome bookmarks via adb:
# adb shell "su - -c cat /data/data/com.android.chrome/app_chrome/Default/Bookmarks"
The bookmarks file is in plaintext JSON format, but is permissions protected by app userid, therefore root is required to read it.
it is handy if you do not sync chrome profiles across devices \ use google login with chrome.
the location is pretty standard to all androids, the Default should be recognizable to those who tinkered with it in the past..
it has the encrypted* sqlite sessions and cookies stores.
in windows it's encrypted via DPAPI, but I have no idea about android..

I followed several of the suggestions over the years, thanks all. Currently, the remote debugging/remote devices/ chrome://inspect/#devices methods fail. At chrome://inspect/#devices  shows links with the code mutilated by = characters. But back to using the Chrome developer tools:

Open Chrome on desktop.
Go to the history manager > Tabs from other devices, at chrome://history/syncedTabs.
You have an option to 'Open all' from the upper right dots menu, but if you want to avoid that:
Open main browser menu > Developer tools > Elements.
Ctrl+f, search for element named tab-item-list
Right-click > Copy > Copy element.
Paste in a text editor an save as html.

This gives a pretty neat and clickable list. It might be a little bloated with favicon links (that don't show) etc. Sadly there is no trace of tab groups and the order can a little jumbled up.

You can now bulk-save all open tabs as bookmarks, which sync way easier and allow other export means directly on a PC'S Chrome:

Open Chrome on Android.
To the right of the address bar, tap Switch tabs.
Touch and hold any tab, or tap More and then Select tabs.
Choose the tabs you want to bookmark.
Tap More and then Bookmark tabs.

https://support.google.com/chrome/answer/2391819?co=GENIE.Platform%3DAndroid&oco=1#zippy=%2Cbookmark-tabs

That just bookmarks them.  It does not finish it off with hoe to export them.  Its best to make the answer complete.

Just a note that steps 3 and later won't work if Chrome's Accessibility setting "Simplified view for open tabs" is enabled.

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


text:
can't mount /data while installing LineageOS
I've rooted my Nexus 7 using the SO instructions How do I root my Nexus 7?.  I'm trying to install LineageOS using its instructions https://wiki.lineageos.org/devices/flo/install#installing-lineageos-from-recovery.  But steps 4 and 6 fail (making a backup, and wipe / advanced wipe).  Both failures include the messages Failed to mount '/data' (Invalid argument) and Unable to mount storage.
So /data may be corrupt.
From adb shell, ls /data shows that it's an empty directory;  mount /data fails with the same error Invalid argument.
From adb shell, the Nexus 7's /etc/fstab mentions /dev/block/mmcblk0p30 /data ext4 rw 0 0.  But when I try to repair that device with e2fsck, it finds no superblock, even with -b 8193.
From adb reboot bootloader, the screen shows SECURE BOOT - enabled and LOCK STATE - unlocked.  From that fastboot screen, if I select recovery mode, I see the teamwin TWRP 3.1.1-0 splash screen for 30 seconds, then I "swipe to allow modifications," and then I see TWRP's 8 big buttons.
Well, the backup and wipe buttons fail, so just for giggles, I tapped the button Install (LineageOS steps 7-10), and chose the lineage and open_gapps .zip files that I'd adb pushed to /sdcard.  To prevent the install from working, checked the checkbox "verify zip signature" without copying over the md5 files containing the signatures.  Besides the expected failure to verify the signatures, I saw these errors:
Failed to mount '/data' (Invalid argument)
Unable to recreate /data/media folder
E:Could not create /cache/recovery/
Unable to mount storage.
Can't open destination log file: '/cache/recovery/log'
Unable to mount /data/media/TWRP/.twrps
E:DataManager::Output_Version -- Unable to make /cache/recovery
Again, /data seems to be the problem.  I probably shouldn't attempt a real install before taking care of that.
How should I recover from these errors, to install LineageOS or, failing that, to restore the device to factory defaults?  (If it helps, I have another Nexus 7, unrooted.)

Can't you just reflash stock and try again? Head to go, collect 200M?

Thanks for the jargon "reflash stock!"  Searching for that and "nexus 7" finds dozens of recipes, which might get me unstuck.  But if I've learned anything in my recent adventures, it's that I'm not deep enough in Android culture to evaluate which recipes are trustworthy.  This n00b would like to buy a vowel from Vanna with his 50 rep!

Hahaha! I'm glad I loaded this site up for the first time in a while. "Stock" would be the default ROM-flashing it would be similar to what you are trying to do with lineage, but I think you use fastboot instead. Once you have got back to working, ye can try again. Mistakes are good, and so is stuff hitting the fan-just make sure you keep an eye on serial numbers, they are your friend ;p

OK, a proposed answer is: follow the recipe at https://developers.google.com/android/images to "reflash stock," and then retry rooting it and installing LineageOS.

I was about to suggest the same and this is the best bet IMO

Here's one alternative idea: use the "format data" option in TWRP's wipe submenu and format /data (don't boot anything afterwards, verify if it's working by doing another wipe). It's more than a wipe and is used to deal with an encrypted /data partition which TWRP can't recognize. I encountered just the errors you listed while setting up my Tab S2 a few days ago, and this was the key.

Andy: TWRP menu, wipe, format data, type y e s to continnue, "Formatting Data using make_ext4fs", back, "press back to cancel", back to the 8-button main TWRP menu, tap wipe aka "wipe / factory reset"; then my choice is tap "advanced wipe", tap "format data" (done 30 seconds ago), "swipe to factory reset."  So I swiped.  "You may need to reboot recovery to be able to use /data again."  Tap "reboot system."  "No OS Installed!  Are you sure you wish to reboot?  Press back button to cancel."  I pressed the back button.  I'm at the 8-button TWRP menu.

@beeshyams, yes, my TWRP is for my device "flo."  I even edited https://android.stackexchange.com/questions/37760/how-do-i-root-my-nexus-7/37761#37761 to that effect.

@AndyYan: doh, let's try adb shell.  That shows that /sdcard is indeed empty.  But /data now has /data/media and /data/lost+found.  Yay!  I redid the adb push,  and now the Install button let me queue my two zip's and "swipe to flash."  LineageOS says it's installed; OpenGApps too.  Tap "reboot system."  Tap "swipe to install TWRP App."  Google logo.  Then 5 minutes so far of a blue circle moving along a blue arc, then the LineageOS logo.  Next, next, and I'm configuring LineageOS.  Yay.

So do you mean my trick worked? If yes I'll submit it as an answer.

@DanBrown, although "reflash stock" would have restored the original OS, it wouldn't have helped to install LineageOS.  So I accepted AndyYan's answer.

Fair enough. Glad something worked in the end :)

These /data-related errors are likely because TWRP can't decrypt the current /data partition. This often happens with stock ROMs, since TWRP is only made to handle the encryption method of AOSP.
To work around it, in TWRP, choose Wipe - Format Data. This will wipe all data from the device, but at the same time remove encryption and allow you to start off fresh. You can then reboot to recovery again to check if there are still errors displayed, and if not (it shouldn't), proceed with any other flashing actions.

@beeshyams I only came to know that a few days ago when my Tab S2 arrived and I was having trouble setting it up. Just the right time to share :D

It isn't always necessary to wipe the data partition even if TWRP can't decrypt it. If the ROM you're going to flash able to handle that, it is possible to flash a ROM to the system partition from TWRP in spite of not being able to mount /data.

@Caleb Yeah, as you said, depending on the stock encryption and ROM to be flashed. AFAIK, for Samsung/Xiaomi at least, not the case...

Of course going from stock manufacturer ROMs to something custom, this is unlikely to work. But TWRP has trouble initializing decryption on on some AOSP based ROMs too (such as Lineage OS 15.1 on OnePlus devices) — the point of making a comment here for people searching for this problem is that the error decrypting /data isn't fatal to being able to flash a ROM if the ROM itself is going to be able to do that properly (e.g. in the case up upgrading Lineage 15.1 to 16). Finding this post on a search almost made be despair of my data, which in my case was easily recoverable.

@Caleb Fair enough. Blame the maintainer of your device's TWRP for not even supporting AOSP decryption.

I had this encrypted volume problem as @andy-yan decribes, but couldn't boot into TWRP far enough to wipe data and remove encryption.
I had to reinstall a stock rom from https://developers.google.com/android/images and confirm that encryption was disabled in settings -> security before trying again to install lineageos.


text:
Adjusting aperture, ISO and shutter speed manually? Huawei P9
I have a Huawei P9. The dual camera is good. The camera software (app) is also good and offers control over the hardware that most stock camera apps don't. BUT, in the pro mode, to control the exposure of a shot, I can manually play with the ISO and the shutter speed but not the aperture :S I don't know if I'm missing something here.
In brief, my question is:

How can I manually adjust the ISO, the shutter speed and the aperture for a single shot on my Huawei P9 whether using the camera app it offers or using a third party camera app?
OR, how to adjust aperture in pro mode?

Contrary to standalone digital cameras, most smartphones have a fixed aperture due to concerns such as device thickness. P9 is no exception, and is equipped with a f/2.2 fixed aperture lens. Under the "DoF control" mode in the stock camera app, different apertures are simulated using the data captured simultaneously from two camera sensors.
Since it's not a hardware implementation of aperture, it's unlikely any 3rd-party software will be able to make use of it (proprietary algorithm). As of now, unless Huawei themselves decide to add such feature to the stock camera through an update later, you're out of luck.

Additional speculation: the second camera sensor, being a black-and-white one, might not allow for sophisticated controls such as ISO and shutter speed. Imagine you were to shoot in Pro mode with aperture simulation available, but then the ISO and shutter speed tweaks are only applied upon the data of the main sensor - in this case I don't think the simulation algorithm is supposed to work properly at all. This is probably why it's not included at this stage, and probably never will.


text:
Why do Android create "Shell Folders" automatically? Can I change the shell folders?
Android automatically creates these folders in primary storage:
Alarms
DCIM
Documents
Download
Movie
Music
Notifications
Pictures
Podcasts
Ringtones

They are the default "User Shell Folders" of Android (USF is a concept from Windows). There's hardly any documents or discussions on the internet. Most discussions are about MediaProvider (and Media Scanner).
Is there something like a "registry key" that controls these folders? Can I change the default location and name of them?

Registry key is a windows concept in android these locations are handled as following
/**
 * Standard directory in which to place files that have been downloaded by
 * the user.  Note that this is primarily a convention for the top-level
 * public directory, you are free to download files anywhere in your own
 * private directories.  Also note that though the constant here is
 * named DIRECTORY_DOWNLOADS (plural), the actual file name is non-plural for
 * backwards compatibility reasons.
 */
public static String DIRECTORY_DOWNLOADS = "Download";

This code snippet is extracted from android / platform / frameworks / base / android-<version-tag> / . / core / java / android / os / Environment.java
So as you can see this returns a hard coded static string and I could not find any function to change it in AOSP code. So you can not change this location for all applications unless you modify the source code and build your own custom rom. For your application obviously, you can download it in its private folder also.
But some OEM had provided this capability in their rom. See this.
A work around to do so for Download folder is to download a 3rd party download manager like ES file manager. It will prompt you to choose download location for the file.

Good. Thought there would be something like /system/etc/usf.conf like Unix systems do.


text:
Remove preinstalled malicious software from smartphone
I bought a THL T9 Plus recently and get some preintalled apps on it, like YouTube. I thought, that this apps are original, because Google Play client recognised these too. My phone behaved strange in some cases, so I tested it with Malwarebytes Anti-Malware.
It found: Android/Trojan.Spy.Agent.YQ in system/priv-app/thl_YouTube folder.

You cannot remove that malware without rooting the device, but you can disable it though. You can do that via Settings -> Apps.

@Firelord: I already tried it, but after restart I got an error message, that this application stopped. I press OK and popup window comes back again and again. So I decided to allow it again.

Hmm....I wonder whether you could delete this by using a terminal emulator...

You could hide them via adb, what should work. But as far as I know just at and over nougat. Here is the video link to how you could do it. It's from xda

To remove or freeze pre-order installed apps you need to root your device - without rooting you cannot uninstall system apps (those that came bundled with the OS )

Use this guide to root
Install Titanium Backup to uninstall. There are other root apps that can do this as well but this app is highly recommended for this as also many other things it can do, which you can read in Titanium Backup

To freeze system apps
Convert you tube app into user app ( see Can I convert a system app to a user app, uninstall it, or move it to my SD card? ) followed by uninstalling it and installing from play store

Yet another alternative is to flash a custom ROM
, after due diligence

Custom ROM is problematic, because some applications need original ROM.


text:
How to disable notifications about phone being in DND mode?
I use DND mode a lot with my Galaxy S6 edge, every day at work to avoid getting interrupted by phone calls, messages, etc.
It has been working great, up until the most recent Android update (I got v7 a week or two ago).
What happens now is that 10-20 times per day, the phone shows a notification "your phone is in DND mode and you might miss calls". As if I didn't know that? That's the whole reason I put it in DND.
Anyway, this notification keeps coming back constantly and needs to be clicked on to make it go away. It is quite annoying.
I did some google searching but couldn't find an instruction for how to turn off this notification.
It seems to come back every 30 minutes or so, roughly.

Do you have Peel remote installed?

@xavier_fakerat Yes and I cannot remove it . I have tried.

Ok try disabling the its notifications, because it may be the culprit

This is usually caused by applications such as peel remote. As a solution try disabling the application.
Try disabling the app:

To disable an app, go to Settings √ Apps √ Applications √ Peel Smart remote then choose option.
Alternatively deactivate it in drawer; Go to the app drawer, tap Edit, you will see minus sign besides the given app at the top-right of the screen: When you select the minus sign, you will see the selected app no longer in the background. You will also stop receiving any updates which also stops unnecessary drain on resources.


text:
What is this icon that showed up on my android?
Any one has any idea what this notification icon means?

Thanks

https://android.stackexchange.com/questions/169883/3-4-circle-with-plus-in-it/170034#170034

That looks like the Data Saver Icon, a feature used to reduce your mobile data usage. Note that this is not set by your network provider but by the user (although there may be a default). Go into settings to check!


text:
Settings > Display > Navigation Bar > Background Color Options Suddenly Limited
Shortly after buying my Samsung Galaxy S8, my Settings > Display > Navigation Bar screen looked like this:

I retrieved that image from Android Central.  Now, it looks like this:

Notice the significantly limited color selections in the "Background Color" section.  Also, the first image has a color picker, but the second image does not.  I'm wondering if a recent update eliminated these options.  Could any Galaxy S8 owners tell me if their settings are more similar to the first or second image?  Also, does anyone have a suggestion how I could bring back the color options from the first image?  Thank you.

I don't own a Galaxy S8 device, but it seems the recent update has removed or limited the background colours option. From this article it is certainly the case:

Samsung is pushing out a new software update for the Galaxy S8 and
  Galaxy S8+ right now, and it looks like the company has decided to
  limit the customization options for the navigation bar. Well, at least
  when it comes to the choice of color for the navigation bar’s
  background, as there is no longer an option to choose a custom color
  from an RGB scale. In fact, Samsung has switched up the available
  background colors, and the worst of it is that you can no longer use a
  fully black navigation bar background.

Again here is the changelog of the update:

You could try other workarounds using apps to extend the range of nav colours as suggested with this app from play store. (NavBar App)


text:
Can you charge a Qualcomm Quick Charge device without a supported charger?
I have a laptop with a 20V 2.25A charger and a phone that supports QC 3.0. In theory, 3.0 has support for up to 20V, but I am not sure if I can use the laptop charger with the phone given that the charger is not necessarily QC approved. Both devices are USB C.
Phone
Charger

Quick charging is not just about Voltage or current in isolation. It is about varying both to deliver the right amount of power ( = product of voltage and current ) as required. Read more here Fast Charging by Qualcomm 3.0- impact on battery?
Besides, the device detects if the charger is quick charge or not. If it is not, then it acts as of it is connected to a normal charger, which is rated 5V, 2A , far lower than the one you want to try
To answer your question - NO, not advised


text:
Priority of the Nougat sound control
Is there any way I can change the priority of the Nougat sound control?
Every time I click the volume button on the side of my smartphone it prioritizes the volume of notifications.
The priority for my smartphone is as follows:

Notifications
Alarm
Media

And I would like to switch to:

Media
Notifications
Alarm

Is this possible?

Unfortunately, there is not a way to do this with stock Android.  There may be OEM (Samsung, LG, etc) features that allow this but I'm unsure if they exist.
There is an app that allows you to lock Media Volume, though.  It's called Rocker Locker:
https://play.google.com/store/apps/details?id=com.tomwandroid.rockerlocker&hl=en
[Edit]  The above app reports significant battery drain.  This app may be a better alternative, NGC 4388:
https://play.google.com/store/apps/details?id=catchpower.gogo.blackholeaddons
Of course, there's always the option of writing your own volume panel changes then compiling your own OS binary from source.  :)


text:
Ringtone set from a file reverts to default after reboot
When I set a ringtone from a file ("More ringtones"), after reboot it reverts to the default ringtone on the pre-set list. How to fix this?
When I choose a ringtone from the pre-set list, it does stay (does not revert to the default one).
The file I select is in Phone storage/Ringtones.
I tried Zedge to set a downloaded ringtone, same effect: after reboot, it resets to the default one. As a workaround, maybe there is an app that would check the ringtone after reboot and set its own one if it has reverted to the default?
Android 5.1 kernel 3.10.65, model Polariod P5025A, not rooted.
The phone has other issues, such as after reboot some downloaded apps (not always, but Opera almost always) disappear from the desktop, so that I have to bring their icons to the desktop again. The downloaded apps are on SD card (probably that's why), but my old phone (Android 4.4 on Samsung, a great deal better than 5.1) did not have any of these problems.

Is the new phone Samsung as well?

@WrichikBasu The ringtone I set is some .mp3 file which I found somewhere in Internet. (Motivation: this high-pitch beep-beep sound is loud to be well heard from another room and is clearly identified as a sound of a device. All the pre-set ringtones on this phone are songs or melodies, of low volume -- some are, say, noise of wind and bird's songs (!!), which are completely lost in a noisy environment with music from the street and other natural sounds.)

@WrichikBasu Ah sorry I misread the question. No, the new phone is Polaroid.

You  could have bought Samsung, as Samsung doesn't have these problems. Moreover, almost all Samsung devices on 5.0 android have been upgraded to 6.0 by official software update.

Apps such as Tasker can definitely set the ringtone after device boot.

Profile: Event → System → Device Boot
Task: Audio → Default Ringtone:

Type: Ringer
Sound: tap lens icon → choose File Manger app -> select your sound file.

File Manager app should be such app which allow a sound file to be selected as a ringtone. I'm aware of Solid File Explorer and ES File Explorer providing such feature.
If you don't get the option to use the File Manager app, then clear the defaults of Media Server from Settings → Apps → All apps (or three dots line → Show system) → Media Server → Open by default → Clear defaults.

Tasker did the trick. No need to install the intrusive ES File Explorer, I could directly set the ringtone using the built-in interface with the action "set ringtone", not "choose File Manager".


text:
Is there any way to watch Showtime shows on Samsung Gear VR?
Last night the revival of the TV show Twin Peaks started airing on the premium cable TV network Showtime.  I'm a Comcast cable customer who's subscribed to Showtime, and I would like to watch Twin Peaks in my Samsung Gear VR headset.  So my question is, is there any way to watch Showtimes shows using Samsung Gear VR?
As you can see in this web page, Showtime allows for streaming of their shows through a variety of devices and services, including through Android phones using their mobile app.  But they don't have a Gear VR app on the Oculus Store.
But is there still some way of watching their shows through Gear VR?  For instance, can it be done through a web browser (either the Samsung Internet VR Browser or the Oculus Browser)? I know that from a computer, you can stream Showtime shows via showtime.com, but when I try to visit showtime.com on my phone it redirects me to a page that links to their mobile app.

One idea is to use a Plex account to play the video from the web interface you can access from Oculus Browser or Samsung Internet (it also seems to be supported by PhoneCast).
Then can try to use this client whose Github page claims to be working with TV shows.
I have not tried it (neither Showtime), so I cannot guarantee anything, but you might want to try this solution.

I'm accepting your answer, but I ultimately solved my problem another way: you can watch Showtime shows through Hulu Plus, so now I use the Hulu VR app.

That's good to know too!


text:
ADB can detect devices but it can't detect device in recovery move
I am using mac.
I am trying to install twrp on my Galaxy Note 8.0 GT-Nn5120, via adb. ADB can detect the device when in normal mode but when i boot into recovery mode, it can't detect the device.. What do I do

Are you using the stock recovery? It's possible that you have to use another recovery such as TWRP to use ADB in recovery. From my experience you need to install the recovery using ODIN.

I'm using stock recovery, I want to flash TWRP but I'm using mac so I can't use odin, how can I do this?

You can't ADB in recovery mode, not with a stock recovery. You can only ADB Sideload which is used to flash zip packages (updates, gapps, etc). To install TWRP, you need to flash it in Download mode.

Download TRWP or here
Boot in Download mode (Hold volume down then briefly press the power button. Press Volume up to confirm).
Download and unzip Odin then launch it.
Click on PDA or AP button and select TWRP file you downloaded previously (Should be in .tar format. If in zip, unzip it)
Click on Start button
When you see PASS, disconnect the phone and power on (Hold volume up this time: you should boot in TWRP recovery )

As a side note, a stock recovery doesn't allow sideloading flashable zips that are signed by anyone other than the manufacturer.

how do i use odin if I am on mac?

On Mac you'll need Heimdall. It's the Mac equivalent of Odin (Windows). @L.Tommy

lol can't install heimdall because "not compatible with this version of OS". I give up, i'll just settle for nova launcher and icon packs

Oh, sorry to hear that


text:
Doing a search on the YouTube app
I use the YouTube app on my smartphone.
I want to know how I should proceed to search on a specific channel.
Because every search I make in the application takes into consideration all the internet sites.
And that's exactly what I do not want.

No there's no way you can search into a specific channel on YouTube. Basically YouTube does not provide that privilege.
But if you are considering a specific channel and want to search videos related to the channel only than you can perform relative search which includes the basic search attribute with the channel name. By doing so your search results will be narrow downed and you will find easily what you wanted.
For example:- If you like Luis Fonsi vevo channel and want to search within his creation than try something like this:- x+Luis Fonsi vevo(where x=your basic search attribute.)

You can use the YouTube Channel Search (web app) to search videos within any specific channel that you are subscribed to. (Disclosure: I created this app)


text:
Encryption state after changing PIN
I enabled device encryption but android didn't gave me the chance to choose a new password instead it used the lock screen's.
I came back to screen lock settings and changed the password and encryption password has changed automatically. But that happened instantly, my device didn't go through any process of encryption
Question is: Does changing encryption password require any kind of long re-encryption process? In other words, is my device still secure and data is encrypted securely?
Device: Xperia E4 Dual
Android version: 4.4.2 sony stock

From the Official Android Source:

Upon first boot, the device creates a randomly generated 128-bit master key and then hashes it with a default password and stored salt. (The default password is: "default_password").
  However, the resultant hash is also signed through a TEE (such as TrustZone), which uses a hash of the signature to encrypt the master key.
When the user sets the PIN/pass or password on the device, only the 128-bit key is re-encrypted and stored. (ie. user PIN/pass/pattern changes do NOT cause re-encryption of userdata.)

What this means is that, essentially, there are two keys to be understood:

The master key
The user_encryption key (or just 'key')

The master key is generated during the first boot only, and never ever changes (unless maybe a factory reset or wiping userdata partition is done). The data in the /data partition is encrypted or decrypted only using the master key. The master key cannot be stored as it is (it's not safe to do so, right?), so it is encrypted using another key said below.
The user_encryption key is the key using which the encrypted master key can be decrypted, because only using the master key, the encrypted data can be decrypted. (This key is computed based on your PIN/password/whatever.)
People often tend to think both these keys as one and the same, which is not the case here.
When you change your unlock PIN/password, only the user_encryption key changes, not the master key, so the data is not re-encrypted.

The statement "uses a hash of the signature to encrypt the master key" is confusing. If the master key is encrypted using a hash of the signature of the hash that was generated from the master key, a salt, and a password, then how can the master key be decrypted?

I agree, it's confusing, and the block-quoted text is still present in the Android docs verbatim.

This is my guees (augmenting my above explanation): the so-called user_encryption key which I have mentioned above is computed as hash_128(sign(hash(master_key_hash, password/pin, salt), TEE_key)). Now this key is computed on the go everytime you unlock the phone. This is the key using which the master key is encrypted. So, the same key is required to decrypt & get the master key and, use that master key to decrypt your userdata.

@Melab so to answer your question, maybe they also have the hash of the master_key stored somewhere (not the master_key itself). I maybe wrong, the only way to find out would be going through the source code. If you do so and find that my explanation is incorrect, please feel free to correct/edit it.


text:
Locked out of secure startup
Recently I encrypted my LG Tribute HD. I was doing something in recovery mode a couple days later, I accidentally hit the "wipe all data on phone" button. I pressed no. I rebooted my phone and all of the sudden secure startup was enabled and it had a password instead of a pattern. I tried a couple passwords but none of them worked. The attempts count only went down 1 time for some weird reason. I don't want to factory reset my phone. I just did a couple days ago, and I don't want to again.

Well I've ended in same place as you but with entering number in a dialer. White screen with only text box to enter password, and counter was going only to 29/30 tries left no matter how many times you enter password. This one?
One user said that this happened after he tried to clear dalvik/cache from stock recovery on LG (I think it was about K10). My guess that this action wipes the encryption key so when you try to boot after clearing it prompts you this, and you probably need to enter key which I'm sure you don't know for this user and me too factory reset was only way out.
See this and this and this

Repeating this action reveals that it did indeed wipe the /encrypt folder. Another interesting side effect is that it displayed the LG startup instead of the Sprint startup. It also claimed I had "LG" service, despite the fact that's not a thing. Factory reset was preformed.

I've read on a couple of forums where people have had the issue of their phone randomly rebooting and starting up to a lock screen that reads (something like):

Secure startup 1/25 attempts

If you use a pattern code to unlock your phone, the PIN number will be the digits that your pattern lock follows.
I don't know how else to word it. Say, your pattern followed the corners to 7391, then your secure startup PIN would be 7536951. So, if you use a very complex pattern, it will just be every digit used that the pattern follows.
The attached visual reference would be 1598753.


text:
How can I connect Android to my PC for backups?
When I plug in my Android into a WIn7 or Win8 machine, they tell me that the device is unrecognized.  Yet the manual that came with the Android clearly shows this being done.  This is an RCA Viking Pro.
Question:  Are there drivers that need to be loaded on the PC first?  If so, where can I get them?

This is a problem in Windows, you can do it manually. Check this website, http://windowsreport.com/windows-10-doesnt-recognize-android/ This should help!

The answer is found in this article:
Fix: Windows 10 Doesn’t Recognize Android Phone
Excerpt:


text:
How to Control Volume Changes in Smaller Steps and in Lower Region?
I have new wireless Bluetooth headset but I find that the volume control there is not sufficient with the current steps (much less volume is needed there). I would also like to have finer control of the volume band.
There appeared the sound control of Bluetooth device but it is not sufficient in the top bar as a scrollbar
Hardware: Oneplus 2
OS: CyanogenMod 13
Client: Spotify
Output client: Wireless 4.1 Bluetooth headset

Not possible at the moment in Android 6 - 7.
Proposal: External USB dongle with the phone. + Adaptive control with external sound exclusions.


text:
How to unhide a contact address in Google Maps?
I accidentally hid a contact on Google Maps, thereby removing his/her address on the map. How do I undo this action?

If you check your contact in question inside Google Contacts, is the address still there?  As far as I know, you can just add their address back into the contact card and it will show up on maps.

@CzarMatt Unfortunately, it doesn't seem to work.

Have you tried deleting and re-adding the contact, this seems to be the most recommended workaround

According to solutions given Google Maps Help forum, you can try deleting the contact and then re-adding it.

It is presumed that these settings are  stored in the Contacts App on your
  phone, not the Maps app.

Thus perfoming the above mentioned workaround will then override the "hide" option.
Additionally you may need to resync the information to Google servers.

My solution just recently when I hide contact by accident
Settings-Apps-Google Maps-Force shutdown- Clear memory + cache
Start maps again and the contacts should be back.

Open location sharing (from the menu in the top left corner of the Google maps app). You should see a list of everyone who has shared their location with you, including the one you accidentally hid from the map. Select that person, and an option should appear for you to "show on map". Select that, and they will again appear on your map.

Google Maps shows contacts on the map based on the address you assign them in your Google Contacts. Location sharing is a completely different feature, not related to hiding or showing a contact on the map in this manner.

on the maps app, click on your profile picture located at the right side of the search bar, then "location sharing", then click on the 3 dots in the top right corner and "hidden from map (1)" where 1 is the number of hidden contacts. Then, click on the 3 dots of the contact that you want to unhide, and click on "show on map". Now your contact's location will be shown on the map again.


text:
To list apps reading/writing contacts?
I would like to get the better overview of applications reading and writing my phonebook i.e. contacts.
TrueCaller incidence shows that I do not have sufficient understanding and full control of the phone itself.
Similarly, my recent OnePlus data collection incidence belongs to the same category.
I think the very basic feature of listing all applications that can access (read and write) your phonebook can be a good start to eliminate unnecessary apps there.
OS: Android 7.1.1 and Oreo
Phone: Oneplus 3T

There are several places explaining app permissions and their possible implications, or helping you find "privacy friendly" apps. One example for that is my own Android site¹:

the permission overview lists permissions and tries to shed some light on what they are intended for, and how they might potentially be abused
the app listings show the number of requested permissions next to each app name, and draw a red frame around that number if there could be any risk. Additionally, "monitor icons" show if an app contains trackers like ads or analytics modules (one monitor item per module detected²). Clicking the app name (Javascript required for that part) reveals details – including what I call "concerns" (combinations of permissions which might raise concerns).
being part of the app listings, the Permission Checker list shows you a few candidates you can use to check apps you've already installed on your device. They give different details on the permissions used and their explanations. Ad-Modules and Privacy Checker again give you details on what modules are used, what they are for, and sometimes also some background on the networks behind them (and their "trustworthiness").
the app search lets you search apps by categories and permissions – to eg. find dialer apps without Internet access, or inventory apps with NFC; you decide the combination. It also lets you filter out (or restrict to) paid apps, and more. Note it of course is restricted to apps listed on the site – which currently covers about 14k apps available on Google Play, F-Droid, my repo, Aptoide and/or the Xposed repo.
the article section gives useful background on things like above mentioned "tracker modules" and other privacy related issues.

Disclosure again in bold: that site is owned by me, was built by me, and still is maintained by me. Which somehow makes it a one-man show. I try my best to keep it up-to-date (applists update themselves automatically) and bring in new/fresh content, but I have my limits :)

Last but not least a general hint: to ensure as best as possible you only get "clean apps", use F-Droid as your app source whenever possible. They have very strict rules to ensure the quality (one reason their collection is not that big). My own F-Droid repo doesn't reach that level (always check with its web browser interface for details the F-Droid client app does not show here) – it's rather intended as a "stepping stone" for projects not (yet) meeting the F-Droid criteria fully.

¹ originally setup to redirect the off-topic "is there an app…" questions here with a useful hint
² a feature provided thanks to AppBrain who granted me access to their data

Is there any tool that does not require much permissions to do these checkups?

Depends on your ROM. LineageOS has a Privacy Guard built-in that can do that, for example. If your ROM doesn't feature such a thing, see my 2nd and 3rd bullet point again (and follow their links).


text:
Mobile Google Maps' setting for receiving location share notifications
tl;dr: Is there any specific configuration switch or setting that controls whether mobile Google Maps is or isn't showing notifications about someone sharing a location with me?

I've been sharing location with my wife and friends and vice versa for past few months. Every time someone wanted to share location with me, I've been receiving two kinds of notifications -- regular email sent to my Gmail account and mobile Google Maps' notification. Tapping the other one always led directly to mobile Google Maps application with shared location shown in map's center.
Recently I have turned off many of Google Maps settings, privacy switches, I have disabled most of, if not all, of suggestion tips notifications etc. One of those turned off was most likely responsible for Google Maps's notifications, because I'm no longer receiving them.
Right now, if anyone shares a location with me, I'm only getting a regular email sent to my Gmail account. Because my mobile Gmails (actually PC's one also) has a regular lag of 5-50 minutes in receiving emails (since they're actually sent) such notifications are pretty useless for me.
I'd like to re-enable mobile Google Maps' based location share notifications, but I don't know exactly which configuration switch, option or parameter is responsible for them. Can anyone help here?

First of all try clearing the cache of Google Maps application.
Secondly try changing the appropriate notification switch using the following steps:

Open the Google Maps application
Tap Menu Menu, go to  Settings >> Notifications >> People and places >> location sharing (get updates when people share with you on maps)
Next to the notification (location sharing), turn on the switch (if enabled already, turn the slider off and then on).

The location sharing switch is exactly what I was looking for / what is the solution in this case. Thank you for a perfect answer.


text:
How to Enable OTG Compability On my Samsung SM-T231
Yesterday I bought one OTG Cable just for my tablet but for some reason it isn't compatible or it doesn't Read my OTG cable..Any solutions??

It depends on your device
If it doesn't support then you have to deal with it


text:
How many type of video format supported in native android device?
Basically i refer the android developer site and also search on google but did not find any proper solution.

Basic supported video format are
3GPP (.3gp)
MPEG-4 (.mp4)
WebM (.webm)
Matroska (.mkv, Android 4.0+)
More Information on Developer site

Android Supported Video Format/Codec

H.263
H.264 AVC
MPEG-4 SP
VP8
 Supported Video File Types/Container Formats

 H.263 >               • 3GPP (.3gp)
                         • MPEG-4 (.mp4)
H.264 AVC >      • 3GPP (.3gp)
                             • MPEG-4 (.mp4)
                             • MPEG-TS (.ts, AAC audio only, not seekable, Android 3.0+)
MPEG-4 SP >     •3GPP (.3gp)
VP8 >                 • WebM (.webm)
                            • Matroska (.mkv, Android 4.0+)


text:
Oneplus 3 - Oneplus3 randomly shutdown with glitches in screen
My oneplus 3 got this problem from last 2 days, i have unbrick my phone with Magic Unbrick tool for oneplus3. Even after that problem still persists
.

Step 1: Unbrick Phone with mega unbrick tool for oneplus 3.
Step 2: After unbrick, start phone normal, if problem still persist, download lastest rom from oneplus store.
Step 3: Flash latest rom to oneplus device with side load.
Hope this works for you too!


text:
Repeated "Tabs" when editing contacts
I am using Android 6 on a Samsung J7.
When I edit a contact there are several "Tabs" that can hold information, e.g., DEVICE, VIBER, WHATSAPP, etc.
For some contacts, I see two or three DEVICE Tabs (which seems puzzling to me), and two WHATSAPP Tabs (equally puzzling).

Why is this, and how can I get rid of repeated Tabs? (I suspect I would like to do this, but I am not sure)
Morevoer, for one contact (say, George T.), one of the WHATSAPP Tabs holds a phone number that is not shown as George T. in Whatsapp itself. On the contrary, this phone number shows both in Contacts - DEVICE Tab, and in Whatsapp, as belonging to John W. (the number belonged to George before, but not anymore).
WHy is this, and how can I fix it?

You haven't mentioned wether there are two numbers saved under the same name, or not
If you have two numbers saved under the same name, all you have to do is unlink them.
In the above screenshot you'll see that i saved two numbers on my phone and then i linked them together and in that case when editing this contact I'll have two tabs for Google contact and two tabs for WhatsApp. This also explains why gorge is in the wrong place - because you have him saved twice.
To un-link them, simply press the "link" icon which appears under the orange envelope. And press on the minus.

It worked. I still do not know how this appeared in the first place...

You linked them at some point by mistake or on purpose. Happens to the best of us. Glad it worked


text:
Microsd card slots: shared vs dedicated - What is the difference?
When I look at detailed specifications of android devices sometimes it is possible to filter them by choosing if a microsd card slot is shared or is dedicated.
Unfortunately I am not able to find a resource describing what that means and what the difference is.

MicroSD storage will be shared between what?
MicroSD storage will be dedicated to what?

Internal / external storage? SIM-modules? Anything else?
And whats the pros and cons?

You're most likely looking at DualSIM devices. If they come with a dedicated SD card slot, you can use 2 SIMs and an external SD card. If it's a shared slot, it's either 2 SIMs or 1 SIM + SD card – i.e. the SD card slot is shared with the slot for the second SIM.

So I can plug in 1 SD card and at any time either a second SIM card or an SD card because there is this "shared" or hybrid slot and not 2 SIM card slots + one extra slot for SD cards, right?

Make the first SD card a SIM ("I can plug in 1 SIM card"), and that's it, yes.

Ups, of course you're right.


text:
Why is not every Android Modification Open Source?
Ok, this might sound a bit weird, but I am really wondering why not every manufacturer like Samsung or Oneplus has to make it ROM public under the GPL license? At least the kernel would have to be under the GPL 2 license because it is a Linux modification and the license includes that anybody has to make the changes public to anyone. Also the Apache license under which android is published should make it legal to edit and redistribute code, but you also have to give the source and state which changes are from you. So, my question is: Why is not every Android System sourcecode public to anybody?

The Apache license doesn't say that you have to provide source to code you modify. It says if you provide source, you must maintain the copyright notices.

Generally, most of the OEMs share the kernel source but there are some cases when they don't (XIOMI). The reason for not sharing it is present in the xda link.

I want to specify one last thing for those readers who are not familiar with the distinction: GPL is a license and not a contract. Some jurisdictions see key distinctions between these two, as contracts are enforceable by contract law and licenses fall under copyright. So breaking a license’s term is still judicable. The distributors who don’t accept GPL’s terms and conditions can’t copy and distribute GPL software under law.

So OEM who are not in American market does this more often.

Every part of the code cannot be kept publically available. Because it contains many patents bounded by the non-disclosure agreement e.g. Camera Software. Some developer friendly companies publish the binary blob for such parts so that it can be used in any custom rom for the device e.g One Plus provide dash charge firmware and probably camera too as a blob.


text:
Is it possible to have a media folder inside a .nomedia folder?
I have a folder with various folders and subfolders where I don't want my content to be scanned.
Inside that folder I have put a .nomedia file to prevent media scanning.
Now, I have a single folder (with music) what I do it to get scanned.
Is it possible to do something like writing a ".media" file or setting an exception on the .nomedia file?

Why don't you just take out the folder that you want to be scanned, and put it in a different location?

Because that would inviabilize my folder structure and force me to look into private and public folder trees when her I want to look at all files. My solution was to define on each subfolder whether it is or not a .nomedia. Not a perfect solution because I'll have to add nomedia files whenever I create new folders and because I always have to create multiple files on multiple subfolders of public folders. But I guess I can live with that.

Oh I get him now. If the .nomedia file exists in a folder containing the folders you have it will hide files in all those directories. For example having a .nomedia on /sdcard will definitely hide the whole sd card media. So ensure the folder you want media scanned isn't preceding the folder you don't want media scanned. Like:
/sdcard/myfiles/mediapublic/photos
/sdcard/myfiles/mediaprivate/photos

These are two folders. To hide media in mediaprivate and photos. Paste the .nomedia file in the mediaprivate directory. If it's photos folder only. Paste it there only. And ensure to remove the file from the folder containing that folder. There is another alternative you can use. Delete all .nomedia files. The folder you want hidden, just start it's name with a dot. Like
/sdcard/.myfiles/mediapublic/photos

To hide all myfiles
/sdcard/myfiles/mediaprivate/.photos

To hide only photos
Remember the .nomedia file is an empty file with no code even if you open it with text editor. It is 0bytes size and 0characters. So forget about editing it

In the future, you should edit your first answer instead of adding a new one

Thank you for your answer(s). This was not the solution I was hoping for. But apparently it is the the only one... What so have done was remove the nomedia file from the top folder and apply selectively to lower level folders.

Welcome always.


text:
In-app purchase got cancelled, but money debited from bank
Yesterday I was trying to make an in-app purchase (via netbanking as the payment option). After making the payment from the bank site, I was being returned to the app, when I was told "purchase cancelled". However, the money got deducted from my bank account. The transaction details in playstore web site shows that the purchase was "cancelled", and not "refunded". What do I need to do now to get my money back?
Please suggest.

I'm voting to close this question as off-topic because it is about billing issues.  Please contact Google Play support and/or the app publisher and/or your bank.

If it's banks payment error you get refund in around 6 days. Or later you can ask the developer for a refund. You can mail the developer to his email given in developer details


text:
Can't download from Play Store - need new ideas to try
I've had this Moto X (1st ed) for a few years. For the last 3 weeks or so I've been unable to use the Play Store to update any of my apps or to download any new ones. The store otherwise works just fine: I get notification of updates, I can browse the store...
Problem is, once I hit Update or Accept to update or install, the status shown is stuck at Downloading... indefinitely with no progress; even if I let it sit for hours, there is never any error message.  Here's what I've already tried:

Made sure there is enough space to install/update apps
Cleared the cache for Play Store and Play Services apps, and restarted the phone.
Uninstalled Play Store updates Settings >> Apps >> Google Play Store >> Uninstall Updates and restarted the phone. Even the old version of the store wouldn't download anything.
Used a mirror site to download and update Google App, Google Play Store, and Google Play Services to the most recent version (more recent than what I had before #3). I think these APKs were genuine since the signatures must have matched what was already installed or the update would have been blocked
Switched from WiFi to Cell data.

I've gone through the similar questions from the troubleshooting FAQ but didn't come across something else to try.  Any help would be welcome.

Moto X on Android 5.1
Google Play Services 10.5.53
Google Play Store 7.7.09.N-all

This sounds like a problem with the download manager (com.android.providers.downloads). Please check if this package is frozen/disabled. You need  to enable it then restart your device. You can be able to download again.

@xavier_fakerat This app was not frozen/disabled but you were on the right track!  After I cleared CACHE and DATA for the native Download Manager, then rebooted the phone, downloads began working again.  Please write up a solution to this effect if you want me to select it.

Glad you resolved this issue yourself :)

The issue is usually caused by some kind of corruption in the download manager (com.android.providers.downloads).
Sometimes the issue also occurs when download manager was previously frozen. ( I have experienced this issue due to this)
However as OP suggested the issue was fixed by clearing  the cache and data of the download manager and rebooting the device

Don't know whether this mattered but I rebooted after clearing cache/data. Thanks for your help

Thanks I edited it, sometimes its important to ensure full functionality of the playstore.

Reboot your device and open it again
If above steps fails,  please do clear data and cache in applications settings , and open it again for Google play store and play services
Or go for *Third party store for android * like Mobogenie

EDIT :
This step will stop the Play Store and clear data stored in a temporary area of device memory. This gives the app a fresh start and can help payments process properly. It won't delete any permanent files.
First, Force the Play Store to stop:

Open your device's Settings Settings. Scroll down and tap Apps or
Application manager (depending on your device, this may be
different).
Tap the Google Play Store Play Store. Tap Force stop.

Second, clear the cache and data for the Play Store:

Open your
device's Settings Settings.
Tap Apps or Application manager.
Tap Google Play Store Play Store. Tap Storage. Tap Clear cache. Tap Clear
data.

Next, reopen the Play Store:

Open the Google Play Store app Play Store.Try your download again.

I have found these steps from this link , i hope it will help you Click here

Thanks for your help. I had already rebooted the phone, and cleared CACHE for Play Store and Play Services. I didn't want to clear DATA because I don't want to lose credits for the apps I've purchased and I don't know whether clearing data would have that effect.

Please see my edited answer @BeetleJuice hope it helps you : )

+1 for trying to help me. My problem wasn't with the Play Store as I thought. It was with Download Manager app. Once I cleared its cache and restarted, the issue was resolved.


text:
Full Backup of non-rooted device in 2017
My Galaxy S7 has developed a problem with it battery (where it is continually turning off / rebooting) and so I need to get it repaired/replaced by my insurer.
The only issue is that, for data protection, they wipe every device before repairing.
Although I have back ups of most of my apps, all my photos, contacts & sms messages I have a lot of settings, multiple non-web based email accounts etc. set up on the phone so having to start from stratch would be a real hassle.
I therefore want to back up the entire phone, like a drive image, onto my Macbook so that I can simply copy the backup onto my new/repaired device once the battery issue is sorted.
I thought I had found a solution in this thread: Full Backup of non-rooted devices
However that is nearly 5 years old and so the instructions do not match the current version of Android SDK, seemingly now called Android Studio (the previous instructions ask you to locate a folder called 'platform-tools' but this isn't created by the current version of the SDK).
Anyone know of any updated instructions on how to do this?
Thanks!

Android Studio has nothing to do with it (that's a development environment). The instructions for adb backup remain the same (for the basic requirements, follow our adb tag-wiki to "minimal installation of ADB"). I'm not aware of any news in that sector, speaking of "full backup of non-rooted devices".

Nothing really crucial changed since then. Android SDK is now installed together with Android Studio, however can be installed separately. Platform tools, which contain ADB, are now delivered separately from SDK. Here is the link:
https://developer.android.com/studio/releases/platform-tools.html
After the installation you will find adb binary in platform-tools directory. All other points from those answer are still true.
Consider also TWRP backup possibility, which though, requires TWRP.

Where can I find the 'platform-tools' folder though? That was why I was thinking that the change to Android Studio had made the instructions invalid.
Doing a Finder search for any files or folders with 'platform' or 'tools' in the name doesn't bring this up on my Macbook...

Yep, platform tools now go separately. Updated the answer.

Did you try Samsung Smart Switch? You can easily make a backup of your entire phone: Contacts, emails, messages... including your apps, settings and so and save them to your computer and easily restore them when needed
You can find a list of some softwares that can help you backup your phone's content here


text:
Which app uses my GPS
I have discovered battery drain and it is caused by GPS but I don't understand how is that possible when my location is turned off and location permission is denied for every app installed and also any app I use don't need gps. I don't have any unfamous or pirated apps installed, and didn't get any new apps since 5 days, and problem started today. So is there any way to see which app is using gps since here is just blank name..?

Whatever have happened here it is solved by rebooting phone (d'oh). I hate this way of solving bugs on R2D2's.

Go to setting--> Location
Then you will see list of recent apps who requested location.
If you are still seeing apps there who is using location service then you can find which app is using your location service .

Nothing special here only google play services "low battery use"

May be Google Play Services is the culprit here. It drains a battery a lot, infact it uses wifi scan in the background too!. So turning permissions off for it might help with the battery drain.

I turned off all location permissions, however you can't turn off permission for play services since it's location provider, you can turn off location what I did, and it didn't helped. Also I turned off wifi and bluetooth scanning.

In the settings you can go to apps and there should be a menu where you can see which app has which permission, there you can click on location and you will see.
Sincerely
Rikvola

There is 14 apps that have permission but as I said none of them have it granted..

Now i have a good solution:
root your phone and don't install any google stuff. It will use your battery as well but not that much. This is always on for the system it isn't used by any apps.
And probably some apps have a "hack" to overrule the permissions.

authors: Једноруки Крстивоје


text:
What's the recommended procedure when you need to stop using the SD Card?
I have a ASUS Zenfone ZE520KL which has a hybrid card slot.
I've been using one SIM card and one SD card for some months and now I need to use two SIM cards.
I need to stop using the SD card so I can use the slot for another SIM card.
My phone's memory can hold all data in the SD card as of today.
So apart from physical procedure to exchange them what I need to do with some apps data on it?
Camera photos go to there and I know where to change but some apps deliberate use the SD card for some internal purpose and I don't know how to safely start to use all this data without corrupt anything.
How to proceed?

If you didn't used your card as internal storage using adoptable storage feature or apps like link2sd than you shouldn't worry about anything, you just pull out card. But if your photos, and some other files are on sd card and you need it on phone than you should transfer it to internal storage via some file manager. Only trouble you can get is that some apps requires sd card and they won't work I think that world of tanks is one of them..

I'm using as separate storage. I'm just afraid I can lose some data because there is an Android/data folder with a lot of apps data.

@Vitor Canova In that data folder is mostly cache from apps, and content downloaded trought that apps, however that data will still be on sd card if you need it and phone should work just fine without sd card.

authors: Једноруки Крстивоје


text:
up to which capacity an OTG capable phone could support external usb storage?
My phone (Sony Xperia M C2005) supports up to 32 GB SD Card and has OTG capability. I want to know up to which capacity it could support flash memory as external USB storage.

Compared to capacity, I think the current it draws is a much more important factor...

@AndyYan CZ88 128GB is the largest I've reached so far.

@iBug Hard drives go much larger than that, and there are plenty of successful examples around the web of hooking hard drives with OTG. Hard drives do draw much more power, so like I said, if OP is concerned with maximum capacity, he should also be aware of the current it will potentially draw.

TL;DR As long as you have a large flash drive.
Theoretically, infinite, as long as there's something to drive it.
There are many factors that affect this. One major being power supply. Your phone can't probably power a hard drive (well, tablets do, though), so flash drives are best for OTG. There are some special cables that have an extra "power cord" that you can plug into another power source, rendering it able to power up a portable hard drive. A flash drive usually doesn't exceed 64GB (although Kingston made a 1TB one, but who wants to buy it?), so a common upper limit for OTG is 64GB. (128GB models do exist, but fairly rare)
Another factor is filesystem. Modern Android phones support the FAT family, but only one of them supports volumes over 32GB. If you want to use a drive larger than 32GB, you have to format it into exFAT. No NTFS support on Android and EXT family will simply fail without extra tweaks.
So in all, you can use drives of any size with OTG, as long as your phone can handle it.

It always depends on the Mobile Device, never on OTG Cable. Because my ASUS T00J mobile supported 500GB External Hard Drive through OTG, but not other phones. It needs the certain amount of energy as well to get connected. and usually all the phones get connected till 64GB flash drive...


text:
Ad pops up on lock screen after charging
I know that others have complained about the same thing, but I have looked all over for this particular app and I cannot find which one may have caused the issue.
Issue:
When I turn on my phone, I am greeted by some sort of weather app that has an ad and some writing in a language I do not know.
More info:

I have not downloaded any apps in the last week
I have a google pixel (not rooted)
It starts every time I plug my phone in
This continues to happen about half an hour after the phone has been unplugged

Image of lock screen:

I think the lock screen App itself is providing Ads. Check for ES File explorer settings it may provide ads sometimes.


text:
How to make android prefer mobile data when wifi signal is very weak
When I leave home or the office there is a ring around it where I simply have no connection at all. This is because the WLAN network from my router at home or the one at the office is detected, but the signal is so weak that no useful data flow can occur.
Is there a way in which I can make android use the mobile data network when the WLAN signal strength is below a certain strength so that there isn't this annoying "dead ring of no connectivity"?
Googling this problem or searching the app store keeps giving me solutions for the exact opposite.
thanks in advance

From Android 5 onwards, there's a setting in the Developer options called Aggressive WiFi to mobile handover.
Enabling this setting makes your phone switch to mobile connection when the WiFi signal is too weak.
You can also take a look at a tutorial with screenshots.

Unfortunately this option has since been removed

You can do so by having your WiFi switched off when its signal gets weak. There are several apps available on the Playstore which can watch the WiFi signal, one of them being Tasker (which is what I use). Here you can define a minimum level and tell Tasker: If WiFi signal falls below this, switch WiFi off. Of course you can make it even more detailed, and letting it check every X minutes whether signal quality has improved. It might be a little tricky to set up first (especially when one is not used to Tasker) -- but once it works, and you figure out what else can be done with that app, you don't want to miss it. An example how this could look like can be found in What is Cell standby and how can I keep it from eating my battery? -- a little different topic, but a similar idea behind it.
You might also take a look at similar apps. Though Tasker is not free (you can get a 7-day trial on their website), it's worth every cent -- but might be hard for beginners. There are other automation apps around, as e.g. Llama, which might also able to do a similar job.

Thanks I will consider purchasing that app (which I was already doing anyway, but I was hoping for onX to become facebook independent).

If you either considered buying Tasker, that's the best way. It's a real powerful tool; I could answer almost every second question with "Tasker" ;)

Is it possible to have tasker to turn wifi back on when there is a strong signal again?

@MeyerDenney should be similar to this one. Of course requires to enable WiFi in intervals to check (how else should it know).

In Android 4.4, there is an explicit option for this:
Settings -> WiFi -> Advanced Wi-Fi -> Avoid poor connections
In Android 5, this option appears to have been removed. There is an Android bug/feature with many complaints on this.

Auto (or Smart) Network Switch now exists.

BestSignal seems like the perfect solution. It offers both default configurations and also advanced configurations.

Just bought this and it seems to fix the issue!

I just installed BESTSIGNAL on my HTC ONE M7 from the developer of the same name. It's the paid version but only AUD1.99 and it works well, simple yet highly functional GUI. However it was not compatible on my Google Nexus 7 (2012) nor my ASUS Transformer TF700T so be sure to check your device compatibility.


text:
Is there a way to hide account in Gmail?
I use two accounts for email, one for contacts. I see all 3 in Gmail app, but only want to see 2. Is there a way to only see my email accounts as choices?

According to Gmail support, accomplishing this without explicity removing it from device is not possible:

To remove the Gmail account only from the Gmail App isn't possible. If
  you do not want that account to be available in the Gmail App, the
  only way to do that is to remove it from your phone's device settings.

Ref:
Gmail Help Forum: Hide/remove a Google Account ONLY within the Gmail app

If your device has xposed framework, you can use xprivacy to hide any account to specific applications, there is no other way for hiding from official gmail Android client.


text:
How to reinstall Android on Polaroid PSPT350
Some months after i bought my cellphone it begans to download many apps by itself and now it simply doesn't work. Every time I turn it on, a think called "Mlhiw" don´t let me use it and turn off my cellphone. So I want to reinstall Android on it. It have Android 4.4.2. And I have no idea about how to reinstall it.

Pretty sure those are malwares! Your phone is infected by them. It's quite easy reinstalling the phone firmware

You'll need flash files and a flashing software. Your phone has a Mediatek (MT6572) chip, so you need SP FlashTool to be able to flash the phone.

Flash files and flashtool can be found here (Just sign up to the site otherwise you won't be able to get those files).
MTK VCOM drivers here

Unzip the files, go to SP Flashtool folder and run the exe file
Install the drivers.
Open flashtool the click on Scatter-Loading
Browse to the flash files folder
Select the MTxxxx-Android-scatter.txt
Now just uncheck the Preloader field the click on Downloading (Green arrow)
Now connect your phone (power off), drivers should be installed and the flashing process start.
Wait till the end: a big green checkmark should pop up.
Phone flashed and problems gone.

DON'T FLASH THE PRELOADER, YOUR PHONE MAY BE PERMANENTLY BRICKED (No powering on, no charging, no being detected by the computer).

Yesterday finally I had time to resolve this. I used the steps you described and it worked! Thanks

You're welcome. I'm glad I helped.

You don't need to reinstall Android in order to "clean" your device.
You just have to go to settings>Back up and reset>Factory reset the device (the names may vary from device to device) but are like this.
So when you do this, what really happens is that the device is restored to a new device (just as you bought).
Take in mind that all your data will be erased, so back up your data first.

How do you deal with sticky malware that install as system apps?

If that is the problem(I'm not sure if the problem AngeLOL reported is like that) you can root the device and uninstall the unwanted apps(try with kingroot which has a built in tool for that).

Sure, for an experienced user may do that, but he stated he can't use the phone because of (1) some app is not letting him to. And also  (2) His phone was downloading apps by itself. What do you think it can be? And you can't be sure if all the malware will be removed.

@esQmo_ Plus, both Kingroot and Kingoroot share a fame of being shady software.

We know that those rooting softwares send user activities to some servers in china

Anyway, I think that he has to give a try to a factory reset, and look if it helps (also I wouldn't advice to flash if he has no experience on that field, because he can easily brick the device).

I tried a factory reset, but "Wlhiw" and many others like "koala service" are still installed , thats the reason I want to reinstal

@AngeLOL So flash it! Or if you can, use ADB shell to manually uninstall them