text:
Can I make Google Play show me ALL reviews for an app?
Google Play on the phone has for long been showing me reviews for the country I reside, which many times aren't really helpful, or sometimes there is simply no review at all to show, for my country.
I used to have a workaround which is to go on the browser, and there it was showing me all reviews.
However, just recently, they completely updated the Google Play interface on the browser too, and the Reviews now appear to behave the same way as in the phone app.
I can't really understand what's the problem or showing ALL reviews, even if they prioritized my country's reviews and show the rest after, but no... they have to completely HIDE many reviews that could be helpful to me...
Is there a way I can force showing all reviews for an app?

On the browser, you still can target specific language for reviews by appending to the URL in the address bar &hl=<languagecode> like &hl=en for instance
If that doesn't work, try gl=<countrycode> instead of hl, as detailed in How to explore web-based Google Play in another country?

Thank you! It really helped my.
I had hl paramete set to my country. And nobody is using this app here.
Setting it to hl=en  solved the issue!

No, you can't. Google's policy changed from Nov 21 and AFAIK, there isn't a workaround (VPN doesn't help). Reviews are shown depending on the place you registered (see last section of answer)
Making Ratings and Reviews better for users and developers gives the logic:

We’ve heard from both Play Store users and developers that ratings and reviews could be more helpful. This is especially true when ratings from one area unfairly impact another — like when a bug that only impacted a single country negatively affects the app’s rating everywhere; or when positive improvements in a tablet experience are overlooked because of the number of users on phones. So we’re starting a multi-quarter program of improvements to make ratings more personalized and indicative of the experience each individual user can expect, and to make them easier to navigate and use for developers

(Emphasis supplied)

That’s why, starting in November 2021, we’re going to change the ratings that individual users see based on where they’re registered, and later in the year what device they’re using.

Ways to overcome this limitation, I can think of a) developer gives you access to developer play console b) Using sensor tower or some such service and paying for it. Both are not options for an average user

Open an incognito or private tab and view the store without signing in. On my Android phone this works in Firefox but not Edge or Chrome; on my PC it works in any browser.


text:
/system/xbin/sh high cpu usage
I'm using OS Monitor to look at CPU usage because I've noticed a drastic performance decrease lately. The app shows that system/xbin/sh is consuming anywhere from 10% to 70% of the CPU. This happens constantly, the process never stops appearing at the top of the list. I have a two questions:

What is system/xbin/sh?
What could be causing it to utilize so much of the CPU?
Is there a way to track which apps make calls to system/xbin/sh?

More Info:

Android version: 4.1.2
Phone: Motorola DROID RAZR MAXX HD
ROM: Droid Nexesque v3.8 (AOSP-based ROM) (through safestrap)
Rooted: yes
not running any anti-virus or the like

adb shell top output:
PID PR CPU% S  #THR     VSS     RSS PCY UID      Name
6214  0  97% R     1 182528K  92452K     root     /system/xbin/sh
...
6211  0   0% S     1   1428K    448K     root     /system/xbin/sh
6212  0   0% S     1  53500K  52596K     root     /system/xbin/sh
...

adb shell ps output:
USER     PID   PPID  VSIZE  RSS     WCHAN    PC         NAME
root      1     0     544    404   ffffffff 00000000 S /init
...
root      6211  1     1428   448   ffffffff 00000000 S /system/xbin/sh
root      6212  6211  53500  52596 ffffffff 00000000 S /system/xbin/sh
root      6214  6212  293976 214156 ffffffff 00000000 R /system/xbin/sh
...

cat /proc/<pid>/cmdline output:
"level 1" process: /system/xbin/sh /system/bin/debuggerd
"level 2" process: /system/xbin/sh /system/etc/init.d.loader
"level 3" process: /system/xbin/sh /system/etc/init.d.loader

/system/etc/init.d.loader contents:
#!/system/xbin/sh
############# ############# #############
# init.d.loader by puppet13th@xda
# Version 0.7 19 June 2012
# to run script in background append .bgrun to script name
# example : "myscript.bgrun"
# ############# ############# #############
logfile=/data/init.d.loader.log
loglength=65536
bgrunsign='.bgrun'
if [ -f $logfile ]
    then
    log=`cat $logfile`
    currentloglength=`length "$log"`
    if [ $currentloglength -gt $loglength ]
    then
    rm -f $logfile  fi
fi
echo " * `date` * init.d.loader start . . .">>$logfile
echo " ">>$logfile
if [ ! -d /system/etc/init.d ]
    then
    echo "  creating init.d folder . . .">>$logfile
    mount -o remount rw /system >>$logfile 2>>$logfile
    if [ -f /system/etc/init.d ]
        then
        rm -f /system/etc/init.d >>$logfile 2>>$logfile
    fi
    mkdir /system/etc/init.d >>$logfile 2>>$logfile
mount -o remount ro /system >>$logfile 2>>$logfile
fi
echo " ">>$logfile
echo " i : running init.d scripts . . .">>$logfile
for script in /system/etc/init.d/*
do
    if [ -x $script ]
    then
    bgrun=`grep $bgrunsign $script`>/dev/null
        if [ $? = 0 ]
        then
        echo "  - running $script in background . . .">>$logfile
        /system/xbin/sh $script & >>$logfile 2>>$logfile
        else
        echo "  - running $script . . .">>$logfile
        /system/xbin/sh $script>>$logfile 2>>$logfile
        fi
    fi
done
echo " ">>$logfile
echo " * `date` * init.d.loader end . . .">>$logfile
echo " ">>$logfile

/system/bin/debuggerd contents:
#!/system/xbin/sh
#init.d.loader
/system/etc/init.d.loader
/system/bin/debuggerd.bin

Checking /data/local for things other tools might have left to "plug into init": There are four empty folders and a file named RootToolsMounts. /data/local/RootToolsMounts contents:
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
none /acct cgroup rw,relatime,cpuacct 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
/dev/block/platform/msm_sdcc.1/by-name/userdataorig /datamedia ext4 rw,relatime,user_xattr,barrier=1,data=ordered 0 0
/dev/block/platform/msm_sdcc.1/by-name/userdataorig /ss ext4 rw,relatime,user_xattr,barrier=1,data=ordered 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,relatime,user_xattr,barrier=1,data=ordered 0 0
/dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 rw,nosuid,nodev,noatime,nodiratime,user_xattr,barrier=0,data=ordered,noauto_da_alloc,discard 0 0
/dev/block/platform/msm_sdcc.1/by-name/cache /cache ext4 rw,nosuid,nodev,noatime,nodiratime,user_xattr,barrier=1,data=ordered 0 0
/dev/block/platform/msm_sdcc.1/by-name/persist /persist ext4 rw,nosuid,nodev,relatime,user_xattr,barrier=1,data=ordered 0 0
/dev/block/platform/msm_sdcc.1/by-name/modem /firmware ext4 ro,nosuid,nodev,relatime,user_xattr,barrier=1,data=ordered 0 0
/dev/block/platform/msm_sdcc.1/by-name/pds /pds ext3 rw,nosuid,noexec,relatime,barrier=0,data=writeback 0 0
/dev/fuse /storage/sdcard0 fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
/dev/block/vold/179:97 /storage/sdcard1 vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0

Looking at /data/init.d.loader.log (~50 MB file), it is running the init.d scripts approximately every  10 seconds. I'm not too familiar with the underlying components of Android, so I'm not sure if this is a lot or not. The two scripts in /system/etc/init.d./ are init.d.loader.test and minfree.
/data/init.d.loader.log contents:
The log file is filled with these entries repeating every 10-12 seconds
...
* Sun Feb 23 18:46:09 CST 2014 * init.d.loader
start...
i: running init.d scripts...
 - running /system/etc/init.d/init.d.loader.test...
 - running /system/etc/init.d/minfree...
* Sun Feb 23 18:46:09 CST 2014 * init.d.loader
end...
* Sun Feb 23 18:46:20 CST 2014 * init.d.loader
start...
i: running init.d scripts...
 - running /system/etc/init.d/init.d.loader.test...
 - running /system/etc/init.d/minfree...
* Sun Feb 23 18:46:20 CST 2014 * init.d.loader
end...
...

init.d.loader.test contents:
#!/system/xbin/sh
# init.d.loader tester
# check /data/init.d.loader.test
echo init.d.loader test >/data/init.d.loader.test

minfree contents:
#!/system/xbin/sh
echo "2469,4938,6584,33756,36971,40186" > /sys/module/lowmemorykiller/parameters/minfree

PS: Have you read this

@t0mm13b I have read that, but that wouldn't seem to help my problem. I added the ps and top outputs for /system/xbin/sh. I'm not sure if this will help. If this doesn't help, I'm probably just going to wipe the ROM and start over. It will be easier than narrowing it down app by app.

It seems like this script is getting into infinite loop or something like that. Can you check the content of the scripts's log file: /data/init.d.loader.log and observe it over the next five minutes whether or not the log file is changing or being written to.

For what the script is supposed to do, it should only run once at boot IMHO. Btw: the /data/local/RootToolsMounts looks like a form of fstab to me (but is definitely not causing the trouble here).

@StrangerLoop: Does your ROM comes with busybox, if it does can you use the tail <filename> command to check the show the last few lines in the log file, about fifteen lines should suffice for now. Tail command: tail -n 15 /data/init.d.loader.log

From the script, that looks very suspicious, if I were you OP, I'd chase up the guy over on XDA (puppet13th@xda) and find out exactly why is it looping over all scripts in etc directory, remounting the system as rewriteable without your knowledge and executing them in the background. My conclusion from reading the above is, this is a bogus script as part of maybe, a rooting process, that slipped through, looking at /proc/pid/cmdline, level 2 is of concern, inti.d.loader (was this pasted in or a typo?) That is unheard of.

@t0mm13b Definitely a typo, it should read init.d.loader. I have contacted the developer of the ROM on droidrzr.com (the thread on that site is the one that is updated by the developer). I will also try to get a hold of puppet13th on xda.

Glad that its a typo then so... :)

My current guess is that the script took a lot of CPU time because it uses a very inefficient way of calculating the log file length, which is to read the entire log file to memory and use length. This shouldn't have been much of an issue if the log file is small, but since you said that log file's current size is more than 50MB, this shows that the log file isn't getting trimmed properly. Another concerning issue is that init scripts are supposed to only run once at startup, but this script is obviously being run periodically.

If my guess is correct, you may be able to fix this temporarily by deleting the log file, but eventually the slow down will occur again when the log file is filled again. Check if you have the latest version of your ROM, maybe it's fixed in the latest version? Otherwise if it's an unmaintained ROM, you'll need to figure out a way to fix the script.

@LieRyan You were correct! That fixed the problem for now, but as you said, over time it's going to reappear. I am on the latest version of the ROM, unfortunately. I will get in contact with the ROM dev and the dev that wrote init.d.loader. Thanks for everyone's help. I appreciate it!

My current guess is that the script took a lot of CPU time because it uses a very inefficient way of calculating the log file length, which is to read the entire log file to memory and use length. This shouldn't have been much of an issue if the log file is small, but since you said that log file's current size is more than 50MB, this shows that the log file isn't getting trimmed properly. Another concerning issue is that init scripts are supposed to only run once at startup, but this script is obviously being run periodically.
If my guess is correct, you may be able to fix this temporarily by deleting the log file, but eventually the slow down will occur again when the log file is filled again. Check if you have the latest version of your ROM, maybe it's fixed in the latest version? Otherwise if it's an unmaintained ROM, you'll need to figure out a way to fix the script.

I'm only GUESSING  but have you tried lowering the log Buffer size? Feature is listed in Dev Options >Settings>Developer Options>Logger Buffer Size

Community wiki isn't for answers like this, it's for "canonical" answers that the whole community should contribute to.

source: Stack Exchange

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

sort: votes


text:
How Can I Root My GS4 Without Bricking It Again
So... I've rooted all of my devices in the past: tablets and phones and 2 months ago I tried rooting my Galaxy S4 and bricked it, even though I followed an XDA video on how to root.
I followed all of the steps exactly as instructed and still bricked my GS4.
So... Is there any way/video/method that can help me root my new GS4 without bricking it this time? Or should I just forget about it?
I have the T Mobile SGH-M919 I believe

Welcome to Android Enthusiasts! You might want to start with our rooting tag-wiki, followed by our rooting index: Galaxy S4 SCH-I545 / Galaxy S4 (Verizon, Android 4.3) / Galaxy S4 Mini

You cannot really root a bricked phone. However, assuming your phone is not currently bricked, there's a very straightforward tutorial by wwjoshdew that you can follow.

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


text:
No rotation lock icon in quick settings in Lollipop on Nexus 5
I've seen in several reviews that Lollipop comes with a new rotation lock icon in quick settings:
ArsTechnica:

But my phone doesn't have it:

Click image for larger version
How can I get the rotation toggle to show up?

It would help to know which phone you do have, and if you have any custom ROM, kernel, etc.

Found the solution
Goto settings-> accessibility-> enable AUTO ROTATE.... Then we have the toggle button in notification screen as well

Was turned on, but turning off and on again did the trick. Thanks!

Quick settings toggles in Lollipop are populated based on when you last used a setting. As a result, once you toggle a setting through the device's settings, it will automatically populate in the quick settings and stay there as long as you use it at least once every thirty days, which is why you had to toggle it to make it appear.


text:
How to remove old Android images/packages/apps?
The initial setup on my Android device was using 4gb of space. After several upgrades it's using 7.5gb and most of that is Android OS crap. Personal files and non-Google apps are on an SD card. I need to clean up internal storage. This is the equivalent of finding an old Linux image in synaptic and then remove completely.
Is there a tool similar to synaptic for Android?

Synaptic is a GUI tool over apt package manager that manages .deb packages built for  Linux distros. Android's package management is inside a Java environment, totally different from Linux distros. Android's Java apps are built as .apk (zip) files and are managed by PackageManager which may also be used from commandline tool pm.
What you are looking for i.e. the purging of old packages is not simply achievable on Android. You can uninstall user apps and their data will also be deleted from /data/app/<PKG-NAME>, /data/data/<PKG-NAME> and /sdcard/Android/data/<PKG-NAME>. You can delete any left over files from /sdcard yourself.
But there are a number of packages (system apps) that are part of Android core framework and they store their data on different directories under /data which also include your preferences, settings, databases, backups, contacts, messages, caches, logs etc. You can't remove them all because - unlike Linux - everything on Android isn't neceassarily a part of some package.
So what you can do easily is Factory Reset. It'll bring your device to clean state by removing almost everything from /data partition. However it will remove your settings, personal data & all user installed apps. So keep a backup before doing so.
If you don't want to start from zero, you need to analyze space usage manually, not possible without root access or at least custom recovery. If you have rooted your device, you can use a  GUI app like SDMaid to check space usage of /data (and even other format-able) partitions in detail. Or simply use du command from recovery or from terminal emulator within Android. See this for a practical example of space usage.

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


text:
How to find out which apps are creating *.space files in Internal Storage?
There is a folder at internal memory:  .space/
Inside it has one folder that is a big hash name (probably sha1sum), and inside that folder there are lots of files (also named as a hash something like 60b725f10c9c85c70d97880dfe8191b3.space) occupying 2.7GB of my smartphone precious internal memory.
In hexa/chars/bytes, thru X-Plore File Manager, I saw that they begin with "PK", which means they are ZIP files. So, after renaming them to .ZIP, I saw many pictures inside them that were all about games, and the manifest.xml was Uber annoying to try to read.
My conclusion, they were all unwanted, unasked, auto-downloaded .ZIP (.APK?) games.
Now I need to stop  the app doing that kind of thing on my precious cellphone's memory.

It is possible to monitor a certain path for file-system changes. Unfortunately it is not possible to get the information which process/app did perform the change :(

@Robert is there some kind of lsof (linux like) to catch the culprit in action?

Since Android is based on Linux kernel, you can make use of its Auditing System to find the process which is making changes to your device. For that you need to use auditctl tool for defining rules (root required), and you would get details about the changes in logs through dmesg or logcat. Fo more details on how to define rules, see this answer.

It looks like a malicious or spamming app. Did you download any app from a suspicious looking website in a date close to the date the .space files were created/modified, as mentioned in the explorer app? Then that downloaded app could be the culprit.
It is not usually possible to directly check what app downloads a specific file, but you can try checking Data Usage and look for apps using suspiciously large bandwidth amounts.
The location of the Data Usage statistics is sometimes different depending on the device and the Android version, but you can usually find the statistics in Settings > Wireless & Networks > Data Usage. If you can't find it there you can try typing "Data Usage" in the settings search box. You can choose to show Wi-Fi usage from the menu button on top right corner, and then you can look for any suspicious apps using large amounts of bandwidth and uninstall them.

mmm... data usage may give tips, but it didnt necessarily download it all in a short time :/, I forgot to check the files date time b4 deleting them! ahhhh dammit!! too late now! :(

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


text:
How to disable "logd" logging?
The /data/misc/logd/ directory is filled with 256 MB log files. Currently I don't need debug log files, so I would like to turn off logging.
Partial solution:
It seems I can turn off with the following command from terminal:
stop logd

But I think this will work until you restart the device.

Would this app do the same? See here: https://www.androidpolice.com/2014/09/04/stop-log-can-disable-all-android-logs-on-your-device-for-enhanced-privacy-and-performance-root-only/. Can be downloaded from here: https://www.apk4fun.com/link/19134/a/

Logcat is a reader of logs logd is Tue deamon process...as @irfan Latif stated disable or remove the init rc file

stop logd or setprop ctl.stop logd makes logcat completely unavailable (which may break some apps/daemons) and isn't persistent across reboots. For permanently removing logd you need to delete /system/etc/init/logd.rc file which defines this init service. But it's not recommended.
The /data/misc/logd/ directory is filled by logcatd which is a sub-service of main logd service. 256 MB is the default size but can be changed if required (1).
logd mainly covers the functionality of its desktop counterpart syslogd, but also includes klogd and partially auditd to get logs from SELinux subsystem of kernel. However logd just reads from (RAM) memory buffers and doesn't save to persistent memory (files) by default. Reason is evident, these saved logs are of no use to a majority of users (as you), but too many write requests for these logs reduce flash memory (eMMC) life unnecessarily.
If one needs these logs as files, a separate service named logcatd (logcat daemon  which itself reads from logd) can save them to filesystem (on userdebug and eng builds only since Oreo (2)). Going through the resources (3, 4), it's easy to control this service permanently (persistent across reboots) by setting property persist.logd.logpersistd (to logcatd or clear) or by using shell scripts /system/bin/logpersist.[start|stop].


text:
Does "Data Saver" also apply to metered Wi-Fi?
The section Use Android Nougat’s "Data Saver" (Android 7.0+) under this site How to Restrict Background Data for Metered Wi-Fi Networks on Android mentions:

Android 7.0 Nougat introduced a much more granular way to take the reins on your mobile data with a new feature called Data Saver.
Basically, this allows you to limit background data used by apps, but whitelist anything that want to have unrestricted access. This means background data is disabled for every app by default, then you can pick and choose where to grant unlimited access
And that’s all there is to it. It’s worth keeping in mind that this only applies to mobile data-all apps will remain unrestricted while on Wi-Fi.

My question is whether this Data Saver option applies to Wi-Fi that you set to metered, meaning metered WLAN?

Yes, Data Saver option applies to metered Wi-Fi. As quoted here:

From Android 7.0 (API level 24), users can enable Data Saver on a device-wide basis in order to optimize their device's data usage, and use less data.
  ...
  When a user enables Data Saver in Settings and the device is on a metered network, the system blocks background data usage and signals apps to use less data in the foreground wherever possible.

Android achieves this through iptables and I can confirm (tested on Pie) that REJECT rules are added for wlan0 interface when both conditions meet i.e. Data Saver and Metered WiFi.


text:
How to edit the list of reserved ports (under 1024) on Android?
Is it possible to edit list of reserved ports on Android (0 - 1023) to move lower port (under 1024) to higher port (equal or above 1024).
My mobile phone is rooted and I want to use lower port.
One option can be to reboot device so that to kill the process using some specific lower port.
Does Android provide any file in system files with table of reserved ports for edit?

Ports are not reserved by Android (or by any other OS) but are assigned by IANA for specific use. If a port is free i.e. no process is connected to or listening on that, you may use that with your program. But this may break the app's functionality for which the port is reserved. Otherwise you'll have to modify the source code and rebuild all the programs that are using a fixed port. It doesn't seem logical and practically possible.
For instance UDP port 68 is reserved for DHCP clients and the same is on Android:
# ss -up
Recv-Q  Send-Q   Local Address:Port   Peer Address:Port
0       0         192.168.1.11:68      192.168.1.1:67      users:(("system_server",pid=4521,fd=249))

So if you want to use this port for your program, your will have to modify Android source code to replace all instances of port 68 with some other unused port and then rebuild the ROM.
However you are free to use it when device is not connected to some network through WiFi or mobile data which obviously doesn't make much sense. Or you can configure static IP, Gateway and DNS so that DHCP is no more  needed and the port gets free for other usage.
Further reading:

Why are the first 1024 ports restricted to the root user only?
How do I reserve ports for my application?
Reserved TCP/IP ports


text:
How to record (photos and videos) directly to Samsung's Secure Folder?
Sometimes or usually I need to take photos or videos of my documentation with my Samsung mobile.
How do I configure Secure Folder (provided by Samsung) to record all I want directly into Secure Folder? I don't want to move them one by one manually.

You can log into Secure Folder before you take any photos and videos. Use the Camera that's inside of the Secure Folder. If it's not there, tap "Add apps" and add it.
You can also do this with a lot of other apps, it's kind of like having a second phone inside your phone but more secure.


text:
Attempting to brute force Android security pattern through TWRP via adb
Yesterday I somehow forgot the Android security pattern on my phone. Due to muscle memory I sort of know what it was, but can't figure out the true pattern. Therefore I'm attempting to brute force it to allow me to unlock the phone again.
Decrypt with pattern
Since I've TWRP recovery installed, I'm able to use the twrp decrypt 'passphrase' command for decryption attempts. I'm using a 4x4 pattern (OnePlus5, LineageOS, Android 8.1, TWRP clockworkx 3.2.3-1) for which each dot in the grid translates to a different character, you should concatenate to build your passphrase. I believe the 4x4 grid looks like this:
1   2   3   4
5   6   7   8
9   :   ;   <
=   >   ?   @

Having a line pattern from the top left to the bottom right would give a passphrase of 16;@, allowing you to decrypt your phone in TWRP using adb shell twrp decrypt '16;@'. (via)
Brute force attempt
Through this method I've attempted all possible patterns I believe could be it, but I didn't succeed decrypting it. The command always returns Attempting to decrypt data partition via command line. to stdout, and nothing else. I'm rapidly attempting each pattern one after the other with no delay, detecting whether any command output differs from the expected output (which hasn't happened yet).
Questions
Because I didn't succeed yet, I'm wondering if my implementation is correct. I don't have a phone to test with, so I have a few questions:

Does the twrp decrypt command output something else when decryption succeeds?
Does successfully decrypting create a block device at /dev/block/dm-0, which I can probe for?
Should I wait a few seconds after each attempt before probing for success?
Is there some sort of hidden timeout (required to wait 30 seconds after attempt)?
Is there another method I can use to probe for success?

Brute force tool
I did build the following tool for this brute force attempt, if that's relevant for what implementation I've used: apbf
I don't understand what is wrong with this implementation. It does not seems to properly decrypt the phone, making me wonder if the key could be corrupted.
I'm currently rebooting recovery after reach attempt, but that takes a lot of time for 1400 possible patterns. I'd like to be sure the attempt isn't useless.

Since I do know the approximate pattern length, am certain only the two right columns are used, and know that the dots in the pattern never have a distance greater than 1, I can greatly reduce the pattern search space and limit the possibilities.
Encryption is enabled on the phone, I believe it's file-based. When in TWRP, the /data/data and /sdcard directory seems to list encrypted file names.

Your doing something pointless...

Wipe the DATA of the Lock Screen application and your done.

@Zillinium sadly that doesn't work, it seems the encryption key for /data is protected by the passphrase. It worked back in the day, but not anymore. Correct me if I'm wrong.

Not sure actually... It sounds like part of the Oreo Forced Encryption...

This was extremely useful for me, as I am in the same exact boat.
For anyone else in the same area, here's how to do a bash loop over 0 to 9999:
adb shell # to get in to the device \n
for i in $(seq -f "%04g" 0 9999) \n
do \n
echo $i \n
twrp decrypt $i \n
sleep 30 \n
done \n
(EDIT: Replace \n with linebreaks to view this properly...)

After a while I figured out what the problem was, with a freshly flashed phone. Here I'll be answering my own question.

Does the twrp decrypt command output something else when decryption succeeds?

Yes, it outputs something like:
Attempting to decrypt data partition via command line.
Data successfully decrypted
Updating partition details...
...done

Does successfully decrypting create a block device at /dev/block/dm-0, which I can probe for?

No.

Should I wait a few seconds after each attempt before probing for success?

-

Is there some sort of hidden timeout (required to wait 30 seconds after attempt)?

Yes, very important! About 10 seconds. Consecutive attempts within that time frame fail with no warning whatsoever.

Is there another method I can use to probe for success?

-

So, consecutive attempts to invoke twrp decrypt must have at least 10 seconds between them or else they will fail. So, the only thing that was wrong with the developed tool, is that I didn't implement this timeout.

interesting workaround! did you successful decrypt your previous data?

Sadly, no. Because I had already been attempting for many hours I just wiped my phone, and tested the tool afterwards with a pattern I knew was right. That's when I discovered the timeout. If I'd known this before, I would have been able to decrypt the previous data, yes.


text:
How can I change the search engine from Yahoo in the "Firefox Search" search provider?
When I installed Firefox yesterday, I immediately set my default search engine to DuckDuckGo and removed Yahoo from the list. Today, I discovered that Firefox has a search provider built in for when you swipe up from the home button. I decided to try it out, but noticed that the search engine was set to Yahoo there. The settings only had an option to clear search history. I also tried tapping the Yahoo logo and the search icon, but it only started a search. Is it possible to change the search engine in this thing? Or is the Mozilla-Yahoo deal that far-reaching? Images:

Also, I did try tapping the Yahoo logo in the search bar, but it didn't do anything.

Perhaps you could put this additional information about the Yahoo logo in your question by editing it.

If you tap on one of the search engine, it should give you this dialog box which you can tap on "Set as default":

I tested it on a Nexus 6 and it does switch the search provider used in the Home-button swipe search.
If this dialog doesn't appear for you or if the "Set as default" here doesn't change your search in both the URL bar and Home Button search, then it would be a bug. You might want to report the bug in Bugzilla@Mozilla, with your device and OS version.

This did work, but I had to switch my default search engine to something else and then back.


text:
I deleted folder in / and I want to make the folder exist again. Does it start with Capital letter (SEE picture)
`I deleted the folder symlinking to /storage/sdcard0 and I want to restore the symlink but I'm not sure if I should make new folder starting with s or S
there should be folder named ?dcard does it start with S or s?

AFAIK, everything in root should start with a lowercase letter.  It helps to avoid things like rm -rf / oops, I hit enter instead of shift!

@Compro01 what do you mean by oops, I hit enter instead of shift!

Say you have a folder named "Rubbish" in your root.  You want to delete it and everything in it (It's rubbish, after all), so you type rm -rf /Rubbish, but when you type shift+r for the capital, you accidentally hit the enter key, instead of the shift key which is right below it.  And now rm is cheerfully running through your system deleting everything it can reach (probably starting with much of /bin) before you are able to hit crtl+c and stop it.

@Compro01 Im not sure I understand properly:so it will delete all files named rubbish in whole device or every file on whole device if I type in rubbish which doesnt exist but Rubbish does?

No, what I'm meaning is that because you accidentally hit enter instead of shift when you were trying to type the capital letter, is that you executed the command rm -rf /, which deletes everything.

It should be /sdcard, with a lower-case s.

I made a folder called /sdcard and wanted to ln -s /sdcard /storage/sdcard0 but I got ln not found or something like that.So I mount -o bind /sdcard /storage/sdcard0 which made me unable to access the sdcard in anyway on my phone. I was scared the sdcard got wiped because it was empty except it had a Root Explorer folder for a reason unknown to Me.
Being scared of wiped data I unplugged the cable and rebooted hoping it was a temporary error caused by the mount -o bind command.Fortunately it was and I also found out that the /sdcard has been restored properly automatically on boot (the restore wasnt cused by any command it is just how Android is made)


text:
what is the .config_p56 file in sdcard? And do you have this file too?
(sdcard is a symlink to storage/sdcard0)
because it starts with a dot it is hidden.To see it have viewing of hidden files enabled.It contents are empty and its properties say it takes 0bits space.Maybe my phone is compromised with malware?
Please tell me if you have this file too.

please note that storage/sdcard1 is my removable sdcard and that the only google result about this file revealed that the file on the persons phone contained a long string of random characters, possbily encrypted


text:
How to make chrome not swallow bluetooth play/pause event?
On my nexus 5, when listening to music, I can pause it on my headset by pressing the pause / play button.  It seems to work regardless of what app in focus.  Unless that app happens to be chrome.
The same follows for starting music (same button).  If I am browsing the web and hit this button it does not work.  It seems like chrome is swallowing this event somehow.
How can I prevent this from happening?

The foreground activity gets the first opportunity to handle the event. You've already observed that Chrome swallows it. What more do you want to know?

Hi @DanHulme I have reworded the question.  I want to know how to work around this problem.  I thought there might be a setting somewhere, but I have been unable to find it, if it exists.

I'm afraid I don't have a solution. I think the only answer might be "report it to Google and wait for them to fix it".


text:
reverse tethering : share laptop internet connection thru bluetooth
im rooted, nexus 5
I work in the middle of the bush, no cell coverage.  NO ROUTERS ALLOWED.
I would like to share my laptop's wired internet connection.  Either create a *hidden wifi hotspot that no one will be able to detect* or share my laptops internet thru Bluetooth
could someone pleaaaase help :)

Download and install Toshiba Bluetooth stack (don't forget to reboot)
Right click Toshiba Bluetooth icon in the system tray and choose "Option"
Turn on "PAN" service and "DHCP" option.
Open terminal (Press Win+R, then entering cmd). Go to the Toshiba installation folder (similar to this):
cd "c:\Program Files (x86)\Toshiba\Bluetooth Toshiba Stack"
And rerun the PAN service by entering:
TosBtPSS.exe /END
TosBtPSS.exe /NAP

Then you can share the internet by using ICS, Bridge Network or 3rd party NAT in Windows such as NAT32.
I also wrote a Bluetooth reverse tethering tutorial.

Why the downvote ?

Requirements:

Rooted Android device with "USB tethering" capability.
Windows PC with a working Internet connection.
USB cable to connect your Android to your PC.
Terminal Emulator on your Android. If you don't want to type
commands on your touchscreen with Terminal Emulator, you can use
your PC keyboard to enter commands with adb shell. adb is a part
of Android SDK which is available for download from Google. To use
adb, you need to enable "USB debugging" on your Android.
Optional, BusyBox on your Android.

Step 1:

Connect your Android to PC by USB cable and enable USB tethering
Windows will automatically search Windows Update and install driver
for you. You can skip Windows Update search and install manually an
already included driver from Microsoft.
In Install Driver window, click Browse My Computer, then Let me
pick..., select Network Adapters, uncheck Show Compatible
Hardware, look at Microsoft Corporation at the left column
Choose Remote NDIS Compatible Device from the right column. You can
also install or update a driver from Device Manager in Windows.

Step 2:

Open Network Connections in Control Panel. Right click on an
Internet connection that you have.
select Properties. In tab Sharing (or Advanced for Windows XP),
click Allow other network users to connect through..., then select
the USB connection in dropdown list below. Click OK.
Windows will automatically setup your USB network connection and
assign to it an IP address, default for Windows 7: 192.168.137.1,
default for Windows XP: 192.168.0.1.
You can see your Internet connection is now "Shared" and your USB
connection is now Unidentified network. Your PC setup is now done!

Step 3:
Open Terminal Emulator on your Android. Type:
su

netcfg rndis0 dhcp

(The name for usb interface inside Android may vary. It is usually rndis0 or usb0. Type busybox ifconfigto identify the name.
When automatical dhcp method does not work.
Type:
 ifconfig rndis0 192.168.137.2 (192.168.0.2 for Windows XP) netmask 255.255.255.0

 route add default gw 192.168.137.1 (192.168.0.1 for Windows XP) dev rndis0

If route fails, try:
busybox route add default gw 192.168.137.1 (192.168.0.1 for Windows XP) dev rndis0 dev rndis0

Some applications (download in Google Play, GMail, Facebook...) don't recognize Internet connection. You can try this way
Enable temporarily 3G connection on your Android and type
ifconfig rmnet0 0.0.0.0

(The name for 3G interface inside Android may vary: ppp0, rmnet0... Type busybox ifconfig to identify name)
Source: http://forum.xda-developers.com/showthread.php?t=2287494


text:
Will the new changes to Android 9 cause the VPN based firewall apps become obsolete?
Firewall apps use VPN to manage network (to allow or disallow apps to connect to the Internet via Wifi or Mobile Data), mainly is for phones that are not rooted.
However, this article mentions:

As XDA Developers explains, access to proc/net is going to be tightened up so that only designated VPN apps will be allowed to read TCP and UDP files (and in turn interpret network activity).

Even though I support that Android should have features to allow or disallow Apps to have Internet access, BUT this wonderful feature may not even applies to Android or Google apps itself. (Such as the data hungry Google Play Store and Google Play Services apps!)
Thus, if only designated VPN apps are allowed, this means that phones which are not rooted will no longer be able to use Firewall apps that use VPN to manage network! This is totally unacceptable!
If Android 9 (Android Pie) do not allow end-user to be able to control the network for the famous and notoriously data hungry Google Play Store and Google Play Services apps (that self update without permission from end-user), then it implies that Google and Android have fail the city by disregarding end-user's concern on network usage!
Therefore, I would like to know if Android 9 will result in such unfair and despicable behaviors.

Have a read of the commit on googlesource here. It states

Files in /proc/net leak information. This change is the first step in
  determining which files apps may use, whitelisting benign access, and
  otherwise removing access while providing safe alternative APIs.

[....]

Labels /proc/net/{tcp,tcp6,udp,udp6} as proc_net_vpn due to existing
  use by VPN apps. This may be replaced by an alternative API.
Audits all other proc/net access for apps.

I'm not a developer but I can try to put a simple picture of this scenario. The purpose behind restricting apps' access to /proc/net is to make sure that VPN apps should no longer be able to detect when other apps connect/disconnect to/from internet. It's justified as it was a security flaw. VPN apps have been accessing these files to detect device's network activity, which is possible through proper Android APIs. And that only designated VPN apps will be allowed to read TCP and UDP files was just for Pie release, giving some grace period to developers of VPN apps.
On Android Q:

Android Q removes access to /proc/net, which includes information about a device's network state. Apps that need access to this information, such as VPNs, should refer to the NetworkStatsManager and ConnectivityManager classes.

Coming to your concern:

it implies that Google and Android have fail the city by disregarding end-user's concern on network usage!

As quoted in my answer to one of your other questions, firewall apps which are based on VPN have become somewhat privacy protections apps just as a side effect of Android's VPNService API which wasn't intended for this usage. Such apps can do app filtering based on UIDs and/or SOcket_MARKs which Android uses to categorize the network traffic for different purposes. If they wanted to give users freedom of choosing which apps can access internet and which can't, they could simply set Protection Level of android.permission.INTERNET dangerous, but it doesn't favor their business model.
Consider the fact that Google is biggest search engine and ads are their prime source of revenue. Android is a world of targeted advertisement through online tracking and profiling, though no doubt they try to protect user's privacy and security from certain aspects. Device is yours, you must be given the right to restrict connectivity of even the daemons running as root. But it's not the case. That's why advanced users who want a more fine-grained control on privacy, usually root their devices and make use of lower level things like Linux kernel's builtin firewall iptables. Going further deeper there are mods like Xposed to Android core framework. Android's hidden permission manger AppOps is also helpful from certain aspects. Also some custom ROM have such features built-in, so that no third party firewalls are required:


text:
Is the Encryption Key for Adoptable SD card included in manual backup done over MTP?
I did a factory reset and then realized that I didn't decrypt my SD Card. I know that the data is probably lost, but I made a complete copy of the Internal Storage connecting the Samsung J5 mobile to a PC (drag and drop, i know this is not the good way). Now I can't find /data/misc/vold to locate the encryption key file like i read in other posts.
Is there a posibility to read this folders with a linux virtual machine installed in the PC and recover the encryption key file, or it has dissapear forever?
A use MTP for file transfer

Please edit your question and describe in detail how you performed the "copy of the Internal Storage".

Related: Does “adb backup” also backup /data/misc/vold - the Encryption Key for Adoptable SD card?

Unfortunately, what you have so far considered as the complete copy of Internal Storage is not true. You only copied (I suppose using MTP - "transfer files" option) your files which you had created or downloaded in that storage since last factory reset. The app and system specific private files are never copied in this fashion. /data/misc/vold cannot be copied directly using MTP. A user needs root access to access that file (includes copying it).
In conclusion, you have hit a dead end on this part.


text:
Why network activity is detected from apps after VPN firewall blocks them?
A few non-rooted (no rooted) Android 7 and 8 phones from (Huawei, ZTE, Neffos and Samsung) were tested in this simple firewall (NetGuard) experiment. A selection of apps (including apps from the phone manufacturer) was chosen to be blocked from accessing the Internet regardless using Mobile Data or WiFi, by using NetGuard.
Before the experiment, NetGuard and GlassWire for Android were installed. The GlassWire is activated to monitor if these apps still can access to the Internet. Throughout the experiment, GlassWire reported that some apps, that were blocked by NetGuard, had network traffic to the Internet.
Therefore, it seems that users who buy any Android phones are denied full control of the phone, even if they have installed privacy protection apps such as NetGuard. So, to make the experiment fair enough, this question is posted here, requesting help from experts out there, on whether what is the actual problem(s).
Is the problem caused because GlassWire reports false positives? Or NetGuard requires special configurations in order to block Internet for selected apps? Or Android phones disregard users and allow apps to access Internet even though NetGuard was installed?

Could we get some screenshots of the setup for both apps? Also perhaps some packets captured would be nice to see what kind of data is being sent (not sure if your app GlassWire does this or if you need to set up some kind of mitm proxy).

Is the problem caused because GlassWire reports false positives?

You are correct. This question appears to be related to the understanding of OSI Model. NetGuard is based on VPN which makes use of the TUN interface at OSI layer 3, while GlassWire collects data from NetworkStatsManagr which is something within Android's Java runtime e.g. the creation of sockets happens at top layers; Application or Transport. And the UID-based data usage is collected from qtaguid module of iptables which also operates at OSI layers above 3.
Making use of Per-app VPN configuration, NetGuard asks the OS to only send traffic from app XYZ through the TUN interface so that it can be forwarded through a VPN connection (which it never does). When we see apps from the top, it looks like the apps are sending network data which is moving out of the device, but in actuality, it's blocked at layer 3. So IP packets even don't hit the physical layer.
This fact is self-explained by the GlassWire app. It has a built-in firewall which is also based on VPN; no other possible way for non-root apps. When turning on this firewall, it warns that users will still get data usage stats for the blocked app. The reason is as stated above, data is measured on upper OSI layers, and blocking occurs at a lower level:

That's why sniffers work at OSI layer 2, or even better is to watch from outside e.g. using a proxy server or at the router.

Therefore, it seems that users who buy any Android phones are denied full control of the phone, even if they have installed privacy protection apps such as NetGuard.

Well, NetGuard and similar apps have become somewhat privacy protections apps just as a side effect of Android's VPNService API which wasn't intended for this usage. Such apps can do app filtering based on UIDs and/or SOcket_MARKs which Android uses to categorize the network traffic for different purposes. If they wanted to give users freedom of choosing which apps can access the internet and which can't, they could simply set Protection Level of android.permission.INTERNET dangerous, which doesn't favor their business model; consider the fact that Google is the biggest search engine and ads are their prime source of revenue.
Advanced users who want more fine-grained control of privacy usually root their devices and make use of lower-level things like Linux kernel's built-in firewall iptables. Also, some custom ROMs have such features built-in.
RELATED:

How to view network traffic requested by a specific app?
Are multiple-users protected from each other differently than apps?


text:
What's the difference in contents of `/odm` and `/vendor` directories?
I have a little idea about the /odm but no idea of /vendor dir. Can someone please explain in the best way possible?  I looked up on Google and it didn't help.
What I'm really confused is with whether OEM's make changes to the files underlying these directories or is it the Android's source.
Reference:

From /system, init launches and starts mounting all the other partitions, such as /vendor, /oem, and /odm

Is /odm a directory on your device? Please edit your question and only use full paths and also add your device name and vendor.

no i didn't find /odm dir in my device. a guy answered to my question regarding /proc dir. he replied https://android.stackexchange.com/questions/208792/adb-shell-directories-under-root so this kinda confused me .. can i get a brief explanation?

/odm contains files from Original Device Manufacturer. /vendor contains files from SoC manufacturer. I'll share my thoughts on this when I get some time.

odm contains all specific device librarues such as sensor HAL, etc.
But vendor contains SoC specific libraries. This is because for android 9 and higher the idea is having a general/same image for all devices and using product, vendor and oem for every device.

You could obtain this informacion in Source Android Documentation

ODM -> This partition contains original design manufacturer (ODM) customizations to system-on-chip (SoC) vendor board-support packages (BSPs). Such customizations enable ODMs to replace or customize SoC components, and implement kernel modules for board-specific components, daemons, and ODM-specific features on hardware abstraction layers (HALs). This partition is optional; typically, it's used to contain customizations so that devices can use a single vendor image for multiple hardware SKUs
Vendor -> This partition contains any binary that isn't distributable to AOSP. If the device doesn't contain proprietary information, you can omit this partition.


text:
Does a MIUI-Phone work in Europe?
I've just read about the chinese MIUI Phones (Mi Two), my question is wheter they work in Europe, or might there be some issues because of other phone networks? Might there be some other issues apart from that?
Bonus Question: Does the official MIUI-Rom has any other languages than Chinese?

China uses a variant of CDMA type of radio baseband IIRC (definitely not GSM that's for sure) Last I heard there was a MIUI distributor based in Germany.. :)

According to GSMArena, the Xiaomi Mi-Two supports the following frequencies:
2G Network: GSM 850 / 900 / 1800 / 1900
3G Network: HSDPA 850 / 1900 / 2100
You can check what frequencies your country uses here. It should work in most if not all EU countries though.
Also, it supports Chinese and English officially but there is unofficial support for other languages, located here.


text:
How to make camera start faster
Everyone knows that start Android camera sometimes is a pain, specially if you wish to take a picture of something that lasts only some seconds. What I want to know is: is there a way or an app that makes the camera start faster?
Note that I'm not asking about picture shot, though this is important too. I think that as soon as the camera is started, this is not a big deal.

Try InstaCamera Pro from Google Play Store. It starts very fast and has preferences to start camera and takes photo just by a single touch from home screen of your phone:

InstaCamera is the quickest way to take a photo with your phone.
There's no long process: just press the widget and it takes a photo, then closes just as quickly.

The paid PRO version is supposed to be faster than the free version.

Can't find this exact app, can you provide the link so I can be sure which app you mean?

If any app takes significant time to open, it means that app is heavy on resources and/or there's high load on system. Before bringing any app in memory, Android first makes room for it in memory (technically, it happens based on minfree value even if there's room for that app).
So, to solve the issue, do these things:

Reduce load from system. Less running apps in memory means less probability of minfree based ju-ju.
Use a lightweight camera app. Lightweight apps are loaded in memory faster and again there's less probability of minfree based ju-ju.
There are many lightweight camera apps in Play Store. Just, search "Fast Camera".

I have done a serious research on this topic and i found that all device has an opening lag and it is independent of your camera applications i.e, it is hardware dependent. It(the lag) will be keep varying depending on the memory and processor state. Some smartphones are successful in covering it with their high end hardware resources.
Consider a scenario : if we have a bundle of apps opened in memory and you opened camera with any of your camera application then you feel lagging more than before. Now you can understand easily that this lagging time is a varying factor.
i have even created an application for this called "camera opening lag checker" it calculates your camera lag time and allows you to compare it with  world's top devices real time.
Meizu PRO 5's camera opened in .17ms where Samsung s6,s7 are also performing great with .25ms, .26 respectively
Thank You

Jayakrishnan, do you still have that camera opening lag checker app that you could share? Perhaps a GitHub link?

@Scampbell now the app is not available in Google Play Store.


text:
Remap menu key to multitasking
I'd like to remap the physical menu key of my Xperia Neo V running Cyanogenmod 9 to multi-tasking, the way it is on phones that were launched with ICS or Jelly Bean to begin with.
Apps built for ICS would then display the action overflow. With older apps, I guess an on-screen menu key would appear -- I think there is in fact an ICS phone that does this as it has only two keys, but I don't remember the name. Alternatively, the menu key would stay a menu key in these apps but this might be more difficult to achieve.
Is there any way to configure or modify Android to behave this way?

Just as a point of consideration, on devices that have physical menu buttons the action overflow button will not appear. Granted, with CM9 I wouldn't be surprised if someone came up with a way to force it (or something similar), but remapping menu might be a little funky.

My thinking was that if my physical "menu" button is remapped, I don't have a physical menu button any more :)

It would be kind of interesting to see how Android handled that, as I don't know how precisely it makes the determination that you do (or do not) have a physical menu button.

I'm using HTC Desire which has physical buttons. This awesome guy has a patch which displays soft buttons on screen making my phone act as a phone without physical button.

I'm not sure if I'd want that but it might be good as a starting point for researching where these things are defined.

So, you want to use a mod that decreases available screen space with no change in functionality?

Yeah, "I totally want to do that" is exactly what I wanted to say with "I'm not sure if I'd want that".

As I have just discovered, the latest Cyanogenmod 10 nightlies have this feature. Unfortunately it doesn't ever display an on-screen menu key. As a workaround, I mapped long-press of the menu key to its old function.


text:
Change app page order
I have a Samsung Galaxy S3 running Jelly Bean.
I have sorted my apps in pages, by topic or whatever (not the home screens, but the app/widget pages). Now I would like to sort those pages, but I can't find the way to change the order of the pages. Can it be done? How?

I've found it! Pinch with two fingers on the Home Page, to enter the edit pages mode, then move them around.

Edited content to make the Swipe a Pinch.

@wbogacz It certainly works with a pinch, but also with a two finger swipe (works better with a vertical swipe).


text:
N7/4.2 Can't add lock screen widgets?
I was pretty excited to hear Android 4.2 brings lock screen widgets. But after updating my Nexus 7 tablet, I'm not able to do that: I just have a clock widget that I can remove (it reappears after sleep/wake), but I can't add any widgets in any way. At first I was able to swipe right and I got a "+" where I presumably could add them, but now that's gone.
Could it be because I have a corporate (i.e. exchange) account configured and because that forces me to have a password? Or is it some glitch? I have tried rebooting it.

I have the same issue, N7 with 4.2 with an Exchange Corporate Account that forces a password/pin.
You are correct that it has to do with corporate account.  I removed my corporate account and was able to add widgets, even with the security still set to "password to unlock".  I also changed to Pin and Slide to unlock and all of them worked as well.
I then re-added my corporate account and the widgets that I added were gone and I was unable to add any others.
That said it's not a huge issue for me as the only Widgets I had the option of adding were Clock, Gmail Inbox, and Calendar.  Clock is already there and I don't want my Email/Calendar displayed without unlocking the tablet.

Same here. I have added a second user to the tablet, who does not have a corporate exchange account, and that user is able to add lock-screen widgets freely.

Yup, it's probably because adding a corporate account makes the Email app a device administrator, and that restricts widgets on the lock screen (not just having a password). I wonder what will happen if I add a separate tablet account (Settings > Users) for my work stuff.

Felix: a brilliant idea!  I just set it up myself.  I was pleasantly surprised that I could use the same google account for both tablet accounts (I turned off sync on the second one).

In case anyone is wondering -- I did the above. I have two tablet accounts now -- one for personal stuff, one for work. When I select the personal one on the lock screen, I can add widgets.

I have Nexus 7 and now have JB 4.2.
Same problem with no additional widgets being visible, just the "+" box which does nothing if double tapped, held, dragged etc.
But I do NOT have a corporate account, as this N7 is my own personal device.  I bought the N7 from Google direct,  a couple of months ago.
I use Go Launcher EX but this is not the culprit either as disabling it made no difference.   Not happy!
Update!  Cracked it!  Disable screen lock PIN (set it to 'slide to unlock').  Next attempt at unlock and I can now access three widgets (only!  which is not impressive). I can now choose from Gmail, Calender and clock.  I selected calender.  Slide to unlock. Re-enabled 'PIN to unlock' in my settings menu, and relocked the screen.  Now I have Clock still as my first screen and slide left to right gives me calender, with a further slide giving me an other "+" which again does not allow additional widget, because I have 'PIN to unlock' enabled.

I have a pattern unlock, so when I press the + to add a new item, it highlights the pattern area for me to unlock the device before adding a new item.

In my case, running 4.2.1 on a Nexus 7, I started with calendar, clock and '+' widgets on the lock screen. I can scroll between these with a swipe.
Holding down on a widget shrinks it and brings in an 'X Remove' at the top of the screen; dragging the widget to it drops it from the lock screen. (This does not require authentication.) Removing the last widget will leave me with just the '+' until I cycle to sleep and then back to the lock screen again, where the clock widget now reappears.
Scrolling to the '+' widget and pressing it makes it ask for my unlock pattern, and then displays the available widgets to add, which for me are just clock, calendar and gmail. I'd certainly be interested in hearing about where to get others (in particular, a clock that displays UTC and something to do a better display of my "If found, return to..." information.)

This has to do with the accounts policies and it's not related to a specific device or version (so far). I have the same limitation on my Galaxy Nexus running 4.2.2, so don't expect that update to fix anything.
Actually, since the policy is enforced by the corporate account, we shouldn't see this as a problem but instead as an acceptable limitation. If you have a corporate account set on you phone you shouldn't be able to add widgets because if you can, anyone else could simple add another Calendar or Email (or some third party) widget and have access to the corporate data.

Android 4.2.2 fixes this problem - having a PIN lock code will allow adding widgets by pressing the "+" icon - it'll ask for a code and proceed to the add widgets screen.

Do you have a source for this information?

I may have just jumped to this based on other things in 4.2.2 working, but it personal experience shows it working for me. Sorry I can't provide more than that!


text:
Enable/Disable automatic SD card installations in android phone
i don't know why, but in recent 3 day, my memory card goes crazy! and sometimes (3 times in a day) notify me : "damaged memory card, do you want to format it?"and when i format sd card, some applications corrupted and can't run, because it says : "this application not installed in your phone!"is there a way to disable or disallow android from installing or storing any data related to application installed on phone?phone Specs:

model : samsung GT-I9100G
Build number : Gingerbread.JPKK1
android version : 2.3.6

What you describe is a mix of multiple problems. First, your apps becoming "unavailable" is most likely due to Apps2SD being used, and you installed those on your SD card. See:

How to undo Apps2SD

Second thing is your card itself (hardware, the "thing you put inside your device"). If it goes broke that often, this rises some hardware related questions. Most likely possibilities:

Your card is broken
Your devices card adapter is broken
Something with your card controller is broken

You can check 1. easily in different ways:
A. check whether your card causes problems in other devices
B. check whether other cards cause the same problems with your SGS
If (A but not B) => use a new card (case 1.)
If (B but not A) => have your device checked (for either 2. or 3.). Hopefully you've got some warranty left.
Other useful Q&As on this site which might prove helpful to you include (but are not limited to):

Why has my micro SD card suddenly stopped working in my Samsung Galaxy SIII?
Micro SD card physically damaged?
how to fix damaged sd card?
Fix a damaged microsd card?

i don't use app2sd application. About other things you said; i'll check today. Thank you.any relation between this problem and card class [A,B or C] ?

Not that I know of. Never heard of class A..C -- just numeric values. There's the higher the faster (and as a side effect, often less power hungry).

Yap,got it. Now number 2; why when i install app in phone storage, i see some data related to that application saved in sd card?! A directory named android.

That might be app data (data the app stores when used). And class 2 is ancient and slow. Even class 4 is quite slow. If you buy a new one, get a higher class (not a must, but a strong recommendation) -- class 6 or higher I'd say. I personally would go below that.

it's so bad. in galaxy sII 16Gb, you can install applications in 2Gb space, and other 11Gb is for your books or media. i want it, why just 2Gb! it's very low! i had googled it and no response, other users face this problem and no one solve this. forum moderators say that it's good think for stability ,but i don't!


text:
Does CM7.1 give a "low battery" alert?
I've been using CyanogenMod 7.1 since it became stable, and one feature I miss is the Low Battery alert. I've often come home from work, thrown my phone on the desk and forgotten to plug it in. When I try to check the phone for messages later, it's completely dead. The battery has run out with no warnings whatsoever.
On previous ROMs (stock and Darky's) I got a notification sound and a dialog that said the typical "your battery is running low" yadayada. Now there's not even a notification in the status bar.
Is this typical behaviour for CyanogenMod, or should I reflash?

I have 7.1 and I get it

I think it was in the settings somewhere ...

I get a notification in the status bar that it's low, but I do not get the dialog.

@Matthew Read: There's a setting for the sound on/off, but even though it's on, i hear nothing. It's the same with screen lock sounds.

@Ryan Conrad: I just get the notification in the lock screen, not even in the status bar...

@onik that could be where I get it, my phone is usually plugged in when ever i have the change, so it isn't very often that I get that notification.

Its in vanilla Android/AOSP in which this is derived from.

Summing up: CyanogenMod from at least v7 up has, as usual, alerts for battery low. It can appear in different places:

in the notification bar (Ryan Conrad)
on the lock screen (onik)

I rawly remember even having seen a toast displayed. According to onik, there should be a setting somewhere to toggle the alert sound for this event on/off -- and according to this CM Forum post...

Led lights are in CM settings, while low battery sound is in phone/sound settings.

I was able to find the sound at the end of the mentioned list with CM 7.2 (but not 7.0.3), but nothing in CM settings specific to the battery low event.
Though: If really needed, this should be quite easily established using Tasker...

Usually it would alert you with a dialog. You may want to reflash your phone.


text:
How to SCP files from a PC to storage in Termux
I can scp files from my Linux server to Termux directory on my Android smartphone but Termux directory is not accessible through file explorer. What exactly should be the destination path for scp so that it places the file in the storage, say in the Download directory which is accessible through the file explorer.

Possible duplicate of SSH client for Android with scp and sftp features

By design Android won't allow any other app to access Termux's data directory: /data/data/com.termux/files/home. However you can scp directly to SD card after granting WRITE_EXTERNAL_STORAGE permission.
As referenced in Termux wiki:

It is necessary to grant storage permission for Termux on Android 6 and higher. Use 'Settings>Apps>Termux>Permissions>Storage' and set to true.

Now to copy files to Download directory:
~$ scp <file_name> <phone_IP>:/sdcard/Download/

RELATED: How to run SSH/SFTP server for multiple user logins with password authentication on Android?


text:
How to find UID of an app installed on Android and use it as a shell user?
I am trying to find a way to determine the user name of the current shell user from within a shell / terminal on an Android device.
The Android environment that I have in /system/bin and /system/xbin does not have the unix user command. Overall, it appears that the concept doesn't quite exist on Android, but at least, on my rooted device, there is a user root and also there are groups such as shell and everybody, based on the permissions of files on the system.
The background is the following:
I want to run an ssh command (I installed a version of OpenSSH also) on the Android that uses a local private key. The key has file permissions and those are required to be restrictive by OpenSSH for good reason (the UNIX group of the file should not have permissions to access the key, only the owner).
Since I know only the user root, I can set the owner of the key to root and run ssh as root. However, I don't really want to run ssh as root.
I am issuing the shell command from within Automate which has that option. Apparently, it's possible to execute the command without root permissions. However, if I add the key file to the ssh command, it can't get access to the file that is accessible only by root. Thus I would like to set the owner in the UNIX file permissions of the key to the shell user used by Automate, but I do not know how to find out who that is.
EDIT:
~# grep automate /data/system/packages.list
com.llamalab.automate 10106 0 /data/user/0/com.llamalab.automate default:targetSdkVersion=24 3002,3003,3001

I assume 10106 is the UID, but is that a static value? If yes, could I add a line to /etc/passwd by using adduser command from busybox or Termux?

Android inherits from Linux the concept of shell, which is the core component of Linux login process. But there is no concept of Linux console login on Android (1) because it boots directly to GUI. However it makes use of Discretionary Access Control (DAC) of Linux kernel which is based on UIDs / GIDs and permission mode. Every installed app is considers as a *NIX user and is assigned a unique UID at install time. See this answer for more details on this.
You can get UID of Automate app from file /data/system/packages.list or by executing id -u from within app:
~# awk '/^com.llamalab.automate/ {print $2}' /data/system/packages.list
10106

Since you want a remote login from local machine using a ssh binary (built from standard Linux source) which is to be executed by Automate app i.e. with UID 10106, the key file must also be owned by UID 10106. The only place on device which is owned by UID 10106 is the directory /data/data/com.llamalab.automate, so this should be set as $HOME for ssh and where the key should be placed under directory .ssh owned by UID/GID 10106:
~# mkdir /data/data/com.llamalab.automate/.ssh
~# ssh-keygen -f /data/data/com.llamalab.automate/.ssh/id_rsa
~# chmod 0700 /data/data/com.llamalab.automate/.ssh
~# chown -R 10106.10106 /data/data/com.llamalab.automate/.ssh

Create file /etc/passwd with a single line: user:x:10106:10106::/data/data/com.llamalab.automate:/system/bin/sh where user is any username of your choice. You can also use adduser:
~# touch /etc/passwd
~# busybox adduser -D -H -h /data/data/com.llamalab.automate -s /system/bin/sh -u 10106 user

Also add -o StrictHostKeyChecking=no to ssh command so that new server is added to known_hosts without user interaction.
However if the ssh binary is built specifically for Android to be used with an app, it must have its $HOME already hard-coded which can't be changed using /etc/passwd. In this case you can try something like ssh -i <path/to/key> -o UserKnownHostsFile=<path/to/known_hosts> <user>@<IP>. Permissions must be set and both paths must be accessible by executing app.
PS:
Please note that UID 10106 must be member of group aid_inet (GID 3003) for ssh to be able to make connections. All apps with android.permission.INTERNET are member of this group. Or you can add a line to /etc/group: internet:x:3003:user. Or using addgroup:
~# touch /etc/group
~# busybox addgroup -g 3003 internet
~# busybox addgroup user internet

However this is useful only for programs which perform login (setgroups()) like su, sshd etc.
For more details on how Android lacks Linux's login mechanism, see this answer.


text:
How to create Android sepolicy based on the denial "execute_no_trans"?
I am trying to execute my script /vendor/bin/init.inmod.sh using below method:
Script init.inmod.sh:
#!/shebang???

/vendor/bin/test_disp hdcp disable

In vendor specific .rc file:
on ???
    start inmod_sh

service inmod_sh /vendor/bin/init.inmod.sh
    class main
    user root
    group root system
    disabled
    oneshot

My file context:
(vendor|system/vendor)/bin/init\.inmod\.sh    u:object_r:init_inmod_sh_exec:s0

And my init_inmod_sh.te:
type init_inmod_sh, domain;
type init_inmod_sh_exec, exec_type, vendor_file_type, file_type;
init_daemon_domain(init_inmod_sh);

allow init_inmod_sh vendor_shell_exec:file rx_file_perms;
allow init_inmod_sh vendor_toolbox_exec:file rx_file_perms;
allow init_inmod_sh self:capability { sys_module sys_admin };

allow init_inmod_sh system_file:system module_load;
allow init_inmod_sh vendor_file:system module_load;
allow init_inmod_sh debugfs_pvr:dir r_dir_perms;

allow init_inmod_sh ampservice:unix_stream_socket { connectto };
allow init_inmod_sh ampservice:unix_dgram_socket { sendto };
allow init_inmod_sh ion_device:chr_file rw_file_perms;

allow init_inmod_sh init_inmod_sh_exec:file { execute_no_trans getattr execute read open };
permissive init_inmod_sh;

I am getting below error:
02-14 00:31:34.580 221 221 I init.inmod.sh: type=1400 audit(0.0:4): avc: denied { execute_no_trans } for path="/vendor/bin/test_disp" dev="dm-1" ino=274 scontext=u:r:init_inmod_sh:s0 tcontext=u:object_r:vendor_file:s0 tclass=file permissive=1

Why am I getting the execute_no_trans denial even after I set .sh file to permissive?

Please complete missing parts of your question (highlighted with ???). Did you resolve the problem? If yes, you can answer your question yourself for future visitors. Btw development questions are off-topic here.

The apparent reason is that your script isn't getting the context u:object_r:init_inmod_sh_exec:s0, instead the general context of vendor partition: u:object_r:vendor_file:s0. Did you try restorecon -v /vendor/bin/init.inmod.sh or chcon u:object_r:init_inmod_sh_exec:s0 /vendor/bin/init.inmod.sh?


text:
Making use of the 2nd Partition on SD card (Link2SD)?
I don't know if I am just being stupid here or if I have infact gone wrong somewhere.
Basically. I followed the usual steps for using an SD card as App storage.
Connected 2GB Micro SD via a Card Reader, Used MiniPartition Tool to split off a 512MB section. Both Primary with the 512Mb Being set as Ext2 and the first Partition remaining as FAT32 for media usage.
Put the card back into phone and added Link2SD followed by the Select partition type Ext2 and rebooted etc etc.
Whole thing appears to have been done successfully as I can now move Apps to SD card. Obviously I still have the issue of a small % of data being on the internal but thats not an issue atm.
SO my issue I guess is this:
Why is that each time I add an App to the SD. Say for example the Facebook app at around 25MB.. Why does it deduct that space from my first Partition (the FAT32 Media part) and not the second partition (the 512MB ext2 partition) which was specifically created for this purpose?
I have the Samsung Galaxy Ace GT S5830 Running on Android Version 2.3.5.
Edit:
This is how my storage info looks:

Added a picture of the storage page. The space taken on the SD card is all app files :L the 2nd part is completely untouched and it shouldnt be. as far as I know.

You need to use Link2SD to actually move the app to the second partition. If you simply use the built-in Android way of moving it to the SD card, then you aren't taking advantage of Link2SD at all.
In Link2SD, you can select apps and move them to the second partition. You can even set it up so that any new apps installed will automatically be moved over. Any current apps that were moved to the SD card using the native Android method must be moved manually to the Ext2 partition using the Link2SD app (though I think you can select multiple apps and move all of them at once).

I didnt use the native settings to transfer the apps to the SD, I did it via the Link2SD yet they are still taking up media storage space as apposed to the Ext2 partition :/
Any idea why?

First of all, you need to upgrade from Link2SD to Link2SD Plus so that you can move everything, including the data.
Move the app to phone memory, then create link, then check everything, then press ok. Then, the whole app, including the lib files, data etc. is moved on to the 2nd partition.

You dont have to move the apps to sd card.  Just select your apps in link2sd and then from menu select create link option.  It will link your apps to sd card (ext2 partition) and not fat32.

And that should achieve the so called 'tricking the system' into thinking its got more internal memory than it actually has?
And if so.. won't I still get Internal Memory low messages frequently?

No you will not get internal memory low error


text:
How can multitasking experience be improved on Android tablets?
I have a 10 inch Nexus tablet that I like to carry around while traveling. I can also connect it to a bluetooth keyboard, and this almost allows me to do everything a laptop can, but there are some major annoyances.
For example, I want to do web development while traveling. I can SSH into a remote server and edit the code there, and open the page on the Chrome app. However, Android only lets me have one app open at a time, so whenever I need to switch between two documents, it's very inefficient since I'm constantly closing and re-opening my apps.
I would like to use my Nexus 10 as my primary computer for working. How can my multitasking experience be improved?

Android 7.x Nougat officially introduces multi-window. With this feature you can now run 2 apps side-by-side and drag the black interpolation bar to adjust the window size (3 tiers available).

With the aid of Taskbar things get even better - with proper settings you get Windows-like task bar and resizable, movable multi-windows.

Ultimately though, without the ability to natively open multiple instances of one app, document abilities will be crippled to an extent. Wired video output is also absent, making presentation difficult, though if you have Miracast-compatible devices this isn't much of a problem.
Get started loading your Nexus 10 with Nougat-based custom ROMs by visiting XDA-Developers.
Do note that, due to the age of the tablet, Nougat won't run very snappily and you can't expect to multitask heavily.


text:
How do I turn off Browser Messages in Moto G?
My phone keeps on receiving text messages with the Title as 'browser messages' every two hours. Is there any way to stop them?
Edit:
It is a proper SMS.

Are you actually receiving text messages (sms)? Or are you just getting a notification that has the title 'browser messages'?

I am actually receiving text messages.

There will be an app called BrowserMessage in your phone. To disable that go to Settings > Apps > All > Select the BrowserMessage app and Disable it.
Hope this helps you and whoever facing this irritation :)


text:
How can I install flashable zips in Android-x86
I have recently started running Android-x86 version 6.0-RC1 on my iMac, and I am considering making it on of my several daily drivers. There is one major issue however that is casting some doubt: I cannot seem to find a way to install flashable zip files. I have looked into a custom recovery, however apparently the directory structure of Android-x86 is too different from that of its mobile-device counterpart to run or even install one directly. I have attempted to use Chainfire's FlashFire, however it unsurprisingly does not work for similar reasons to the last method.
I've read on a very short conversation in the XDA-Developers forum discussing this topic that a recovery would be relatively unnecessary because "you could simply use a lightweight Linux distro as a recovery". I am assuming from the wording that you would do this by booting a small Linux distro on the same machine, mounting the main image for Android-x86, extracting the flashable zip and running the install script contained within, however I am entirely unsure as to whether or not this method would work in practice, as I cannot find any more info on it.
I need the ability to flash a flashable zip file as it is the only way as of current aside from using a custom recovery to install the Xposed framework on android, upon which I rely heavily for everything from personal conveniences to more manually configurable security functions to ease of development. Given Android-x86's inherent compatibility with virtually anything compiled to run on an Intel Atom or Celeron based android device the lack of Xposed is the one factor stopping me from being able to attempt custom ROM development, as well as starting to port several already under development projects that have been until now exclusive to BSD/Debian distros over to rooted Intel based android devices.

UPDATE: I've managed to mount the Android-x86 fs from a live GParted CD, and chroot to it, but when running  flash-script.sh  it starts the installer, and output the following error log:
******************************
Xposed framework installer zip
******************************
-Mounting /system and /vendor read-write
/tmp/META-INF/com/google/android/flash-script.sh[102]: can't create /dev/null: No such file or directory
/tmp/META-INF/com/google/android/flash-script.sh[103]: can't create /dev/null: No such file or directory
/tmp/META-INF/com/google/android/flash-script.sh[104]: mount: not found
/tmp/META-INF/com/google/android/flash-script.sh[105]: can't create /dev/null: No such file or directory
-Checking Environment
/tmp/META-INF/com/google/android/flash-script.sh[112]: head: not found
/tmp/META-INF/com/google/android/flash-script.sh[112]: sed: not found
/tmp/META-INF/com/google/android/flash-script.sh[114]: cut: not found
*Continues till line 121*
 Xposed version:
! Wrong platform: arm
! This file is for:
! Please download the correct package
! for your platform/ROM

Now I'm assuming the reason this happened is that the Linux version I'm using is too lightweight and doesn't include the required programmes, however that does not explain the fact that the error log reports the system as ARM and claims the x86 version is incorrect for my platform given that I'm running a copy of Android-x86, so if anyone has insight, please supply!

I have a question for you: if you booted from a live media, would you be able to see Android-x86' entire filesystem (root directory included)?

Yes, Android-x86 uses a single .img file in which is stored the entire root filesystem, as well as the /storage/emulated/0/ user directory, however to emulate an SD card you have to create a 'data.img' file, store it in the same location as the system.img and specify it to be used in grub.cfg. It is also noteable that Android-x86 comes pre rooted, with Superuser embedded into the SecSettings.apk, so I already have full Read-Write root access from within the OS itself. Also that Xposed only has to be installed via zip, not overwrite sys files, so I could do it manually, I just don't know how.

Thanks for the clarification. Did you already try to extract the contents of the flashable ZIP and examine the syntax and operations performed by the update-binary and updater-script?

I just did so, it seems that the updater-script file is a dummy file, and it infact relies on flash-script.sh in the same directory, however the files contained look to be specific to Xposed, no system files appear to be overwritten, and the flash-script.sh file seems to rely on the zip first being extracted to a specific location, so I'm assuming my best bet (after confirmation that no sys files are overwritten) is to move the files manually, reboot and see what happens. Will do that and update with result.

Upon looking a second time it appears several system files are overwritten during installation.

Exactly. Manually performing the actions described in the update-binary is the way to go. And yes, there will be modifications in the /system partition.

I mounted the system from a live linux disk, and there was no trace of system.img, only the efi boot programs and grub. In light of this I attempted to install it manually and Android-x86 went into a bootloop, will try debug version to see if it boots, otherwise will be reinstalling.

Idk if the android x86 is a root version i assume it is if your using xposed download flashfire and try to flash.zip with it .

Yes, it come pre rooted with Superuser integrated into settings. I have tried FlashFire however it lists my device as unknown, and when it attempts to restart the device under a linux recovery distro to do the actual flashing it says Loading... but when the screen goes black, rather than staying black for about 30 secs and loading up the flashfire recovery UI, it just stays perpetually black, and the machine has to be hard-rebooted. I should also say, running flash-script.sh from a linux distro with chroot boot loops Android-x86

This is caused by the install script incorrectly detecting your platform as ARM.
In order to fix this issue, which is specific to the Xposed ZIP file, you must hack edit flash-script.sh.
Search for:
if [ -z $XVALID ]; then
  echo "! Please download the correct package"
  echo "! for your platform/ROM!"
  exit 1
fi

Comment out the exit command, by adding a # before it.
At least in the current version of Xposed (v86), this is line 162 of the flash-script.sh file.
The resulting block will be:
if [ -z $XVALID ]; then
  echo "! Please download the correct package"
  echo "! for your platform/ROM!"
  #exit 1
fi

Source: How to Install Xposed on MEmu Lollipop Beta

[Edit] Since you are having a great deal of trouble, I'm going to provide detailed fool-proof steps for successfully installing Xposed on Android-x86:

Download Xposed to your computer
Extract the contents of the compressed file somewhere
From your file manager (Finder | Windows Explorer | Nemo | Some other), open the directory where the file contents have been extracted to and browse to: META-INF \ com \ google \ android
Select the entire contents of this directory and Control + C
Go back to the directory containing the resulting files (same as Step 3) and then Control + V
Among the files you have just copied is flash-script.sh. Now you must edit this file with a text editor of your choice, according to the previous part of this answer.
Save and close the file. Make sure it is actually saved.
Make a new .zip file with the updated contents, including of course the flash-script.sh file which you have edited.
Send this new (make sure!) zip file to your Android-x86 environment with a method of your choice. ADB, e-mail to yourself, some anonymous temporary file upload service, etc.
From Android-x86, extract the contents of this new zip file.
Launch Terminal Emulator.
Type in su and hit Enter
If you are asked for Super User privilege, confirm (i.e. hit "Allow")
Type sh "flash-script.sh" and hit Enter
Reboot your phone and launch the Xposed APK to confirm whether it's been successfully installed.

I have tried doing the above and it still failed with the same error, I even seached for and changed every related variable to ensure that the install would work, to no avail.

@AlisonE.E. The proposed solution does not prevent the error messages from appearing. Instead it makes the script run to the end in spite of the error. You should see Placing files and Done after the error messages. Did that happen? If yes, just reboot your phone and then install the Xposed APK to make sure it's enabled.

No, I did not see either of those messages. It is also notable that as stated above this is not a copy of Android running on an ARM  handheld device, it is a copy of Android 'x86' running on a Mac, and using a live Linux disc to run the script with the mounted Android 'x86' filesystem set to the root directory via 'chroot', so in the event that it is for some reason installing ARM binaries it will break/bootloop the installation. The real problem however is that it is the 'x86' binary, so it shouldn't be stating that is it meant for ARM devices, it should just install.

@AlisonE.E. I know, I'm also an Android-x86 user (I use it in VMware, however). The error message is due to an apparent bug in the install script, and I managed to successfully install Xposed on my system by following the steps provided. The only difference is, I'm running sh install-script.sh from the Terminal Emulator. No need to boot from a live Linux environmnent. In fact, this is probably the reason why it's not working for you.

I can certainly try this again, I don't believe I had tried running it directly in the terminal. One final note just in case it makes a difference: I am currently running the x86_64 build of Android x86, not the 32-bit version. I had heard talk of rovo89 compiling/releasing a version of Xposed for 64-bit, and had even volunteered to test it for him, however I never heard back, and have no idea whether or not this was released or incorporated into new versions.

@AlisonE.E. Oh, that's important information. Actually, that won't work, unfortunately. Xposed is not available for the x86_64 platform at this time, oficially or otherwise. I once wanted to compile it myself, but dropped the idea due to lack of time, and settled with the 32bit flavor anyway. In fact I found it has a ridiculously lower bug count than the 64bit version.

@Macr.2377 I figured as much. Is there any possible way run Xposed x86 under a 32-bit sandboxed userspace in the x86_64 build, or will I simply be stuck waiting until someone builds a 64-bit copy?

@AlisonE.E. It's theoretically possible, but certainly not worth the trouble. Consider that Xposed operates at a very low level in the Android architecture.

True, and I suppose systemless is out of the picture as well seeing as there also isn't a 64-bit version of that for x86. Well, the extra RAM would have been nice to keep but I guess i'll be switching over to the 32-bit version, at least until rovo89 announces a 64-bit version or gets back to me on testing one. Thanks for the help, an I'll be sure to try the above fixes when installing it to 32-bit.

I have an update: I've switched to 32-bit, however after making the change you referenced in the above post it still claims I am using an ARM device. I have tried using both the debug console, Terminal Emulator and Termux, none of which have gotten further than the notice claiming I am using ARM. I have changed the script's ARCH variable's default value from "arm" to "x86" yet the error still reports ARM. I have commented out the exit line as you mentioned and it still reports ARM. I am at a loss at this point.

@AlisonE.E. Did you type su and hit Enter before trying the command?

Yes, as I said I tried the debug console which is perpetually root. I realzed that the changes I made to the script were not being saved for some reason. I've corrected this but am now dealing with a new issue, its impossible to remount the system read-write in-OS, it has to be done during boot for sone reason, so I have to modify the boot entry to boot in RW mode, however to do that I need legacy grub, and the drive I'm using only has Windows Bootmanager. So I'm having a bit of trouble installing grub.

@AlisonE.E. I could explain to you how to remount the system partition as read-write, but that deserves a new question, and in fact there's no need for that. And not only because it's been asked already, but really it's not necessary. I have updated my answer with the exact steps I used myself. Good luck :)

I was also looking for something like a custom recovery for android-x86. But,  it seems to be quite unnecessary for android-x86 in the way they are as in mobile phones.
Gladly i found something related called GearLock. Also found a bunch of flashable kernels and some other good stuff. Surprisingly it got some sort of recovery mode and flashable zip support.
Leaving the link below in case it sounds interesting.
https://supreme-gamers.com/resources/gearlock-custom-recovery-replacement-for-android-x86.40

Why can't you unzip the file on Windows and simply do
adb push apk\purenexus-gapps-mm-mr1-x86-leanback-20160202-signed\system\. /system


text:
Obtaining root by modifying default.prop(ro.secure)?
To get a privileged shell you need to modify the following lines to the given values in the default.prop file
ro.secure=0
ro.debuggable=1
persist.service.adb.enable=1
I have the extracted the recovery image of my phone model :
So is it possible to modify the following values in the default.prop file, repack the image and flash it using fastboot(bootloader is unlocked) to get a privileged shell, and then copy the su binary after remounting system as read/write?
Do I need to change any other values in any of the files? And will it work, theoretically at least?

Before you reinvent the wheel, did you check xda-developers for an official root method for your device?

Yes I have, there are no "official" methods and I wanted to do it by myself for once, its a re-branded Chinese device, so not much support there,

Which device do you want to root?

@Flow Karbonn A9/K-Touch W680. Update: The above approach did not work, either because the image wasn't stock recovery in the first place or it isn't that easy. Phone is rooted now.

default.prop is located in ramdisk, which is "reset" every boot

Can you link to or explain how to extract the recovery.img or boot.img from the phone (without already having root)? Thanks!

@user29020 This was quite some time ago, I can't remember.

This approach will work (provided there are no proprietary funny locks in place anywhere), but the recovery partition is no party to it from the very beginning. The default.prop is overwritten on bootup, copied from the boot partition, which is not a directly accessible file system. You need an image of the boot partition, which you will then unpack, make the change, and repack.
Assuming you know how to go about doing all that (since you say you tried it with the recovery), I must warn ahead that often times it is necessary to include the base address when making the image with mkbootimg. There is no way to know when it is required, so it is safe to always include a base address. You can follow a tutorial here:
www.freeyourandroid.com/guide/extract-edit-repack-boot-img-windows
The script includes the od command with which you can get the base address, in case you want to make your own script. For more on the manual steps (for reproducing on GNU/Linux):
android-dls.com/wiki/index.php?title=HOWTO:_Unpack%2C_Edit%2C_and_Re-Pack_Boot_Images
I do not recommend use of the unpack/repack scripts, as they have hardcoded lines not portable across cases. Use split_bootimg.pl, then gunzip and cpio extract it, after which you will again use cpio and gzip it, followed by the mkbootimg command. The only exception is for MTK65xx devices, where you will need the relevant unpack/repack tools (because they have very different offsets; you will also skip the mkbootimg as the repack script does it for you):
github.com/bgcngm/mtk-tools
And here is an on-going example of a Chinese rebranded phone going through the same thing to finally get root:
forum.xda-developers.com/showthread.php?t=1818146&page=5
I'm sorry I have to strip off proper links, but I am apparently considered potential spam. Also, I've not been rather thorough because I'm not really sure you'd want more verbosity.

Can you link to or explain how to extract the recovery.img or boot.img from the phone (without already having root)? Thanks!

The above approach did not seem to work.
Either because the stock recovery put up wasn't meant for the device or the method isn't this easy and may involve making other changes. The phone wouldn't go into recovery mode, which is the only mode in which you would get a privileged shell to perform the necessary operations to obtain permanent root.
Another method would be to modify the build.prop in the boot image itself, repack and then flash it and adb to get a privileged shell in normal operating mode.
Better to follow someone else's procedure when you're not too sure about your own.

This is not working because the shipped ADB version is not supporting root. (I looked up the make file and the ADB source, I know what I am talking about)

@Orri Though this may be years later, I'm pretty sure Chainfire's insecure ADBD app was around when the answer was posted.