text:
Help an idiot gain confidence / know what to do after a TWRP Data wipe
I rooted my phone sometime mid-2018 or something, just followed some instructions somewhere on how to root. Right now I have TWRP and Magisk on this phone.
Currently, I have a strange dilemma with the phone lagging on certain apps that my other devices like an Asus Zenfone 5 would not. I figured that it might be time for a reset.
Before I rooted my phone, this was pretty easy; backup everything, use the OS' Factory Reset functionality, wait for everything to boot up again, then put only what you want back in.
Now with root however, I've been doing a bunch of reading throughout my free time for the week and I still have a bunch of questions unanswered. But I really wanna unclog this device as soon as I can.

Is my understanding correct that, because I'm on TWRP, I should use TWRP's Wipe -> Data instead of just the Android OS' Factory Setting Reset functionality?
After I wipe the Data, can I just do the same thing I did unrooted and wait for the OS to boot up and set everything up again? If no, then what should I do (flashing, etc)? If yes, then do I automatically get Magisk back as part of the OS' 'reinstallation' or is there another set of instructions that I have to follow to get Magisk again?
Before I do anything, I understand that I should crated a Nandroid backup. But I don't have an SD card for this. After creating the backup, should I then transfer the backup to a separate storage away from the phone before performing the data wipe, or can I keep it wherever TWRP saves it?

Thanks in advance.

Alright, to downvoters: please say why you downvoted, Its more useful. As for the question itself, what phone is it?

It would be much easier to find an image (zip) of the Rom you have now, wether it's the stock one or a custom one (Use xdadevelopers to find your phone in the advanced search, and then head to android development for your phone)
At this point you should also grab a new (updated) zip of magisk.
[Stock roms are usually found in the general forum for your phone, in a stickied (pinned to the top) post]
Make a TWRP backup, which will only backup your system and apps, not your data. Move that to your computer either by rebooting back to android or enabling adb in TWRP.
Move the selected Rom, gapps and magisk zips to your phone storage, and select WIPE > selecting both caches, system and data. Not the internal storage. You should also use the inbuilt file manager to nuke the Android folder.
After that completes, follow your Rom installation instructions on the xda forum post (usually flashing Rom + Gapps (which they should specify, if not get opengapps the minimal version like pico or the one above it). Sometimes you'll have to flash a patch with the Rom too). When the Rom+Gapps install finishes reboot into system. This will help you diagnose if the system fails to boot at the end of this reinstall. If everything is good go back to TWRP and flash magisk. You are done now. Don't forget to open the magisk app when you reboot to finish the setup.
If you fail to boot after Rom+gapps, go back and wipe both caches, system and data (leaving internal data), then try installing just the Rom. If it fails, find a new Rom. If the Rom is good, then you need a smaller gapps package, or a different one. I think slimgapps are good too, but I've never had opengapps fail on me.
Gl


text:
Android Pie on Pixel 2 keeps wanting to restart
I bought a Pixel 2 a few weeks ago and upgraded it to Android Pie, but about every three days it comes up with a notification asking me to restart (I forget the exact wording of the message). Have done this about five times now. Any idea why this is happening and if there is a fix?

It could be just your regular OTA updates. Pixel phones receive updates every month. And sometimes there can be more than 1 update in a month. These are monthly security patches which are delivered and installed to your phone automatically. The device then needs a reboot to finish installing the update.
Depending on what software the device shipped from the factory, you'll receive several updates to come to the current build.
For example, if your phone shipped with the September 2018 security patch, the device will install October, November, December, January and February before resting on the latest release. After that it will be one security patch update every month.
The updates are incremental. So, you'll have to install all updates one after another. You cannot skip directly from September to Feburary unless Google pushed the full packages each month. The Pie update was pushed in August 2018. So it will be with August security patch. Now your device needs to update from August to Feb. I believe it should be almost done, if not, a bunch of more updates will finish the backlog.
You can probably finish all updates one after another by checking in Settings > System > Advanced > System update after each reboot to ensure that you have finished installing all available updates.

Many thanks, I think you are right. Since I posted this message it hasn't happened again.

source: Stack Exchange

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

sort: votes


text:
Whatsapp very slow, ads show up randomly every 10 minutes
Since 2 days ago my whatsapp is very slow.
Every message needs 30 minutes.Maybe 1 hour.
Internet is fine. I can surf the web and stuff. However, look at this screenshot. Nothing gets sent. If I restart Whatsapp, things works again.
Let me show you a screenshot.

Also there are ads that often show up randomly. Here is another annoying ads

The screenshot I took have a file name called Screenshot_2019-02-07-15-30-44-985_com.game.flowoneline.png.
The thing is those annoying ads still show up even when flowonline game is gone.

Please mention your device name and android version. Have you enabled data usage for whatsapp application?

I don't understand what the  title: are the ads showing inside WhatsApp?

Unless things have changed, Whatsapp does not show ads. Backup those games, then remove them (not playing for 1-2 days won't hurt). Check if there are not returning. If you dont want to remove them, install a firewall & block them. Allow Whatsapp & other important apps to go through the firewall.

From the screenshots that you posted, it looks like you are using MIUI. Is it true? I have a solution that will work for MIUI (thanks to its great permission controls) and you don't have to uninstall the game.

However, I would always advise you against using using such apps/games which show such intrusive advertising. In your scenario, it is definitely not WhatsApp that is showing advertisements (It has never done that yet). Moreover, I would always suggest you to download apps from the play store because Google usually gets rid of such apps, very often, which reduce the quality of user experience.

how do you do it? Settings and change permission control for flowline?

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


text:
Manually create A/B partitions
I have a Xiaomi Mi 6X which is the Chinese version of A2. There is a way to convert it into A2, but OTA updates won't work because 6X has only A partition. I'm not sure, but I've read, it is possible to create/delete partitions on an Android device.
So I want to create A/B partitions manually, but I have no idea how it looks like.

Android uses GUID Partition Table (GPT) as its partitioning system which is possible to modify using tools like parted and gdisk. But there are a few constraints I can think of, other than the OTA problem you have already mentioned:

Android devices with A/B partition scheme have many partitions in (_a/_b) pairs including system, vendor, aboot, sbl and modem. New partitions require space which obviously isn't available on flash memory (eMMC) and needs to be freed from your userdata partition. So you will get short on your /sdcard space.
Since all the partitions to be created aren't adjacent to userdata partition (which is usually the last one), you may need to delete and create dozens of partitions. Exact details depend on the order of partitions in your partition table. So there are bright chances of bricking your device. :)
Application bootloader (aboot) on A/B devices is different than on non-A/B devices. On A/B devices, there are two boot partitions and no recovery partition. So the process of making choice from where to boot the device is different than on non-A/B devices.
Also the other functionality of aboot that depends on partition names such as fastboot update will also break. And since bootloaders are closed source, you can't modify it to be compatible with your new partition table (unless you are lucky as well as an expert at hexediting binaries).

So it seems practically impossible to convert a non-A/B device to A/B device.

I recently analyzed some abl images and it's has a/b slot support even on a-only phone. But of course, it's very dangerous and needs to understand what you are doing.
Qualcomm abl sources:
https://source.codeaurora.org/quic/la/abl/tianocore/edk2/tree/?h=LA.UM.8.2.r1-04300-sdm660.0

@Axifive interesting. Did you reverse engineer abl? If yes, were you able to find hard-coded addresses particularly for boot_[a|b]?

Xiaomi A2 has the same hardware as Mi 6X and actually, Mi 6X is the Chinese version of A2. Why not fully flashing Mi 6X with A2 ROM, including GPT structures from the firmware? The problem will be fastboot itself, as you can't write on GPT there or change the name of the partitions as it brokes the existing fastboot in the current ABL (Android BootLoader), but it should work if ABL itself is changed to the one in A2.
You will need to use EDL mode to fully write A2 ROM on Mi 6X with A2's partition table, or at least write both GPT structure and ABL.elf with other bootloader partitions like XBL.elf and then use fastboot (which will be flashed from A2 so it must recognize and respond to the name of the partitions from A2) to flash the remaining partitions.
This should be possible only if both devices are typically the same in hardware and SoC firmware and there isn't Secure Boot eFuse provided by Qualcomm in the Mi 6X SoC, as this will prevent a modified or different ABL (Android BootLoader) from being loaded in the first place (even if the bootloader is unlocked) which will bring you again to EDL mode with boot error. So first, check if you have secure boot enabled or not by something like fastboot oem SecureBoot GetFuseStatus if your device supports this command, or by directly flashing different A2 ROM with its GPT structures and see what will happen.
You should also know that what you do is risky and you have a pretty high chance of bricking your phone, so do it at your own risk.

The a/b partitioning scheme doesn't eat into internal storage—on a Google pixel 1, the a/b scheme takes only 320MiB more than the a-only scheme. Source:Android Developers https://source.android.com/devices/tech/ota/ab/ab_faqs

How does this answer the question? // How would you halve the size of the system partition without recompiling your ROM with changed source code? You need to be a ROM developer for that so that to create a customized OS to save space on /system_a by putting .odex files on /system_b and then move them to /data on first boot. But anyway, space is not the only problem. Other problems need more serious consideration.

can you also suggest any tools for creating AB partition on a smartphone?

@IrfanLatif there is already a ROM with A/B partition from Xiaomi A2. I'm wondering if I can create an A/B partition on a Mi 6X (which has the same hardware).

@ArayKarjauv you can use parted or gdisk for partitioning. // You won't lose much space if system on Mi 6X equals in size to system_a+system_b on A2. But as I said, the core problem is not space, but that the bootloader on Mi 6X must support A/B partitions. You can also try using A2's BL on Mi 6X but (among other requirements) bootloader must be signed by Xiaomi with the same key (which is highly unlikely). ABL won't boot if signature verification fails. Also the pre-ABL BLs (SBL, XBL etc.) and SoC firmware might also be different on both phones, so may not work with different ABL.


text:
Unlink system and ringer volumes
Does anyone know of a way to unlink the system and ringer volumes on Android oreo or pie? My goal is to have a loud ringtone while keeping the system sounds minimal or off altogether. If someone has a different solution for the desired goal that would also be appreciated.

Is the phone rooted? GravityBox xposed module can do that for you.

Thanks for the suggestion. Are you sure there's a way of unlinking the ringer and system? I can only find reference to unlinking ringer and notification. I'm also reluctant to install GravityBox just for one setting.

Definitely sure. https://i.stack.imgur.com/SbKON.jpg


text:
Cannot rate apps on Google Play
I just found out I cannot rate apps on Google play. Any app. And yes, I have them installed. But the rating 5 stars or 'Rate' button are missing.
Am I missing something? Anyone else experiencing the same issue or know why is this happening / How to overcome this?

Were those apps sideloaded or updated without Play Store?

I have had this issue for many years on my "apps for business" Google account (or whatever they're calling it these days). No solution in sight.

Quite weird, but looks like this is happening because I'm a G Suite user.
When I switch to a different, regular gmail address user, I can rate my apps again.
Looks like this behavior is rather new and undocumented (started around June 2018).
I found this article: G Suite users can't review or rate Play Store content anymore.
But haven't found any official evidence from Google to support that.

Yes, that seems to be exactly what's happening. Google docs say: You can only review apps you've previously downloaded and installed. When you download an app, it's linked to your Google Account. If you downloaded the app but don't see the option to write a review, make sure you're signed in to the right account. But that's incorrect, I installed the app with a G Suite account -no review available- and changed to another Gmail account and it let's me write the review.

Try the workaround below.
 I found this trick mentioned in one of the support threads that Google
 stubbornly ignore

Go to the Play Store page for the app you want to rate, e.g. https://play.google.com/store/apps/details?id=net.osmand
Copy the app ID (after ?id=) from the URL bar - here that is:
net.osmand
Go to https://play.google.com/store/ereview?docId=, adding the copied
ID: https://play.google.com/store/ereview?docId=net.osmand
You should now see a blank page with a small text box in the middle.
Just write your review and click Submit. You can then edit or delete
the review the usual way, from the store page.

Not working any more

Did just work for me; March 2023

@Erhannis Were you able to see your review afterwards?

@plu Yup; if I go to the app in the Play Store app, I can see my review.  I don't know whether other people see it, but I'd assume so.

@Erhannis I tried the method and pressed "submit"; it greyed out and didn't give any confirmation that the review was submitted. I also could not see any such review on the review section of the app, even after a couple of weeks. Perhaps it is still related to my account being a "G Suite" one; I tried with a different non-G-Suite account and there were no problems.

To resolve the issue JUST sign out of your Google account on your phone (remove account), restart your phone, and then sign in to your google account again. (It might also work without restarting your phone.)
To do this, go to settings, user accounts. (On different devices these names might be a bit different.)

I'm able to switch accounts right from the play store.

I just restarted my phone and the problem was gone. It seems the problems roots are from the G+ extermination. Some accounts were affected in this regard. You don't need to delete and then add your account again; it's more like a re-login and since every time you restart your phone you login with your credentials is enough.

Doesn't work. Tried it multiple times.


text:
How to get around block of unknown apps when "unknown sources" is enabled?
I just bought a Samsung Galaxy Tab A and I want YouTube Vanced on the tablet. But it won't let me install it because it's an "unknown" app.
Yes, I have enabled "unknown sources" and it still won't let me install the app.
A side note it's not blocking only YouTube vanced, it's blocking all unknown apps.
What can I do to get around this?
Here's a screenshot of the message:

If you bought a pre-owned device, the device may be enterprise/work managed, see View policies your admin is enforcing on your device Check under Settings > Security & location for Managed or any indication that the device is under management.

@MorrisonChang can't be... I bought this tablet brand new from Wal-Mart

I also checked and it doesn't seem the tablet is being managed... Another thing to note though is that Google play itself seems to be blocking the installation because when I see all the tabs it says Google Play

Are you able to side-load install F-Droid. Just wondering if Google is testing ways of blocking YouTube Vanced as it gets around their ads.

I turned off Play Protect & went to Settings > Security > More Security Options and cleared the credentials and was able to successfully install YouTube vanced and other apps!


text:
How to play FM Radio app without earphone?
I would like to play my default FM Radio app. But it always asking to connect an earphone.
Is it possible to play FM Radio app without an earphone ?

No. You need an earphone, or anything that can plug into the earphone jack, with a trailing cable.
This is to provide the phone with an antenna. Because space inside the phone is highly limited, it's usually insensible to have a built-in FM antenna.
Usually, you can still instruct the phone (or at least the FM app) to output audio to its speaker, even when earphone is plugged in, as it's primary function is to serve as antennae.

I use Tecno LC7 and I don't use antenna to listen to radio. So it's possible to have it as built-in

Is the app FM radio (that the stations' availability depends on the current location), or digital radio?

Looking at the Tecno specs online it appears that you do need an antenna.  Or am I missing something?

I never knew the phone was like that until I started using it, it even came with an earpiece

@Andrew. Yes, It's depends on the current location


text:
How to have microG works on Havoc OS?
Long story short, microG is supposed to take advantage of signature spoofing in order to do his magic. But I couldn't make this happen.

Context :
I just did a clean install of Havoc OS (Android Pie) on my Oneplus 3 using this thread.
This distro is supposed to natively support Signature Spoofing, as it claims in its features list (twice). And migroG is officially supported. But there's no support provided on SourceForge (official website for Havoc OS) and the way to contact the dev is Telegram (which I don't use).

What I've tried ?
There is a switch available in the Settings app, and according to the terminal, it's working : settings get global allow_signature_fake returns 1 or 0, depending on that switch.
However, when trying to check with microG or with this checker I get a negative answer.
You can see it on these screenshots :

Over the 600 pages of the official thread, I saw other people having issue with this but noone really have a working solution.
Some said they used a Magisk module called NanoDroid, but in its today's version, this one detects that the distro already allow it and do nothing.
Plus, I read this override on distro natively supporting it is not recommended anyway.
According to this thread :

LineageOS for microG since December updates refuses sigspoof to work when the permission is not defined in privapp-permissions, this is now the case (on all ROMs with native sigspoof support)

As Havoc OS is based on LineageOS, I've tried that too.
I've then installed a magisk module called [Terminal] App Systemizer and use it to swap both apps (Checker and microG) to /system/priv-app.
Then after reboot I've got some progress : Signature Spoofing Checker still says "Disabled", but microG show one more checkbox filled (System grants signature spoofing permission). See the screenshot :

Now I'm stuck and have no clue were to go next. Any idea ?

Have you tried Xposed method, if you already running xposed, (not sure about compatibility with Pie), but on my device Android 4.3 runs perfectly with signature spoof

@xavier_fakerat : this is android pie, not supported by Xposed framework. it's not even stable on oreo...

oops my bad. You are right

Havoc Os v2.2 is out, (see on xda thread for Oneplus 3/3T)
This version correct the problem and everything works as expected now.


text:
Is there any way to mass background restrict app battery usage?
My Pixel 2 has been experiencing severe standby battery drain (last night it went from 95-30 while I slept), and I'm pretty sure it's one of my apps' faults since it doesn't happen when I reboot the phone in Safe Mode. So now I'm trying to restrict most of my apps from using battery in the background, but it's a huge pain going through 50+ app battery usage pages to toggle their "Background Restriction" property. There's a page to disable app battery restrictions in Settings > Battery > Adaptive Battery > Restricted Apps, but there's no way to add apps to that list. Is there a mass app battery management settings page/developer option I'm missing, or maybe an app that provides this functionality?

Look in background and replace them with ones that do not drain your batter.

I don't think there's anything else because all you have to do if you want to restrict background battery usage is to toggle the slider on all 50 apps which barely takes a minute. But if you want help for a longer lasting battery you should search for "Battery" on the google play store and you will find a lot of apps to help you.


text:
Second Google Account for Phone
I have a second Google email address for business.    I would also like to be able to upload business photos / media to the HOA account with photos: can this be done and how?
I have added the 2nd Google account to the phone successfully, but attempts to share photos (via Google-Photo app) presented only the one (the original) Google account.

You have to add the second Gmail account to the Google Photos app separately. You can upload photos to this account by switching to it from within the app.
To add the account just open the hamburger menu from the left of the Google Photos app, click on the downward facing arrow next to your user name and then select the Add account option.


text:
Android Terminal: Vibration command?
Which command in the Android Terminal can be used to vibrate? (for a custom length such as 50 milliseconds)
I would like to integrate vibration feedback into a shell script.
Maybe I need permission first. How do I manually grant the Android Terminal permission?

Should this maybe be moved over to StackOverflow?

Shell scripts/command-line questions are on-topic here. No need to move or repost there. Are you open to app based suggestions? For e.g., you can set up a task in Tasker that would vibrate the phone the way you want, and you would be able to trigger that task from shell script as well.

@Firelord Sure, if I can integrate it into the shell script, an app-based solution also will be fine.

@FireLord: https://stackoverflow.com/questions/51418054/turn-on-vibration-by-terminal-command does already mention a command (echo 200 > /sys/class/timed_output/vibrator/enable), but the Android Terminal unfortunately has no permission to use it.

Sorry about Tasker. It has introduced some changes so it won't be possible to use it this way. As for the command you mentioned. I've tested it. It works well, but requires root access.

Hmm… @Firelord Maybe there is a command to request vibration engine access via the terminal. But the vibration feedback should be immediate and not delayed by 10 seconds, otherways that would make it less purposeful.


text:
Workaround for aux socket partial damage
So basically, I must have damaged the jack socket of my Redmi Note 3 (OS: Android 6.0.1 MMB29M) - now with any kind of headset (I've tried many!) I can only hear some audio channels, while the rest is almost completely cut out (plays at extremely low volume - it can be barely heard). For example, I can typically only hear instrumentals, and not voice, while listening to music - irrespective of the audio player I'm using.
Plus, my phone does not really detect headphones when I plug them in, so I had to resort to the LesserAudioSwitch app that, if I understood it correctly, forces the phone to use the "headphones" audio out even if it detects no plugged device.
To try and understand what the problem is, I downloaded the app Stereo Test for speakers & headphones and run a test. What I get is that I can hear perfectly clear sound when I test the L channel, and the same when I test the R channel, BUT I only hear extremely low and distant sound when I test them Both.
This makes me think (but I could well be wrong) that these three choices correspond physically to three separately wired channels in the jack, and that one of them is not working properly. I would like to know if this is true, and if there would be any way to redirect audio from one channel to another in order to be able to properly listen to music - even at the price of sacrificing stereo sound.
Bonuses:
1 - Actually my Bose PC speakers are recognized correctly by my phone and with them none of the described issues takes place; they just work perfectly. I cannot understand why (???).
2 - I DON'T have any option for balancing or switching between mono/stereo mode on my phone, not in the accessibility settings nor anywhere else (if there's something, it is incredibly well hidden...).
Thanks in advance for any help!
EDIT: A possible practical solution, at least for music, that in my case worked is to leave the phone as it is and pre-process (via Audacity, for instance) all music to be put in it splitting stereo tracks in two mono tracks and balancing them such that one is "full L" and the other "full R". This way I can hear sound from both speakers without issues apart from the fact of having sacrificed stereo sound. It's not a cost-efficient solution, I would say, but it does the job.

Just to add the obvious alternates: have you tried with different wired headphones? and bluetooth headphones?

I did! All headphones give me the same issues; the same is true for aux connections to my home stereo or my car stereo; for some reason the only successful aux connection I can make is with my Bose speakers. Bluetooth outputs (car,  speakers, headphones)  always work just fine.


text:
Phone turned off for empty battery. Now it gives "No command"
My non-rooted phone (Morotola MOTO G5s Plus, bought just 2 months ago) just reached the 1% battery and automatically Powered Off.
I charged it for some hours. Tried to turn it on but just the flash icon of charging kept staying.
Disconnecting the charger didn't make the icon disappear.
So I pressed the Power button for 10 seconds till it turned off.
It automatically restarted, but now it doesn't load anymore. I wait for a while and the I get just the "No Command" recovery mode.
I tried to "Wipe cache partition" already. No luck. I tried to "Run the Graphics Test", but it gave quickly *"Installing system update" -> Error -> "Erasing" -> "Installing system update" (and a really graphical animated logo; so graphic looks fine) and then comes back to the menu. After that it still doesn't load, and running the test again does the exact same thing.
What just happened? Did my phone broke just because of empty battery?
How do I resolve? How do I prevent data loss?

I didn't really solve the problem, but I just tried to be sure that the phone was rebooting really from scratch (the purpose of resetting).
I went in recovery mode and I tried choosing "Power off" this time. After that it didn't try to reboot automatically as all the previous times.
I waited a little and then powered it on. Magically it booted correctly and without any issue


text:
Avoiding incoming calls taking over the active app?
Can we avoid incoming calls taking up the full size of the display while we're in the middle of stuff in other apps?
I appreciate that was a natural feature 10 years ago, but right now displays are large and I fail to see why it's not possible to just have a notification (or an overlay of some 30% of the size of the display, without switching away from the active app) while one continues using the app they are currently using, as an optional alternative to this historical behavior? Is this supported in any version of Android?
While I appreciate audio calls are a special form of event and notification, phone calls are so 2000! :-)

So to be clear, you want to avoid the phone app from normally taking over the screen and the user hit the multitask button to switch back to whatever that person was working on before the call?

Yes. To avoid the phone app taking over the screen, or at least not taking over the screen very entirely in a way making it as cumbersome to keep using the previously active app.


text:
Can I consume a consumable In-App purchase as a user?
As a developer I let my app's users buy in-app purchases (IAPs) and then the app lets Google know that the IAP is consumed so it can be purchased again.
Is that possible for me as an app user? That is, if the app is stuck somehow not consuming the IAP and I want to force it to do so, is there somewhere on my Google account where I can see all of the outstanding IAPs and consume them?


text:
Recording Facebook Messenger Video call on Android
Hi All,
I am trying to record a Facebook messenger video call on Android 9.0.
i used many application but the issue is when i open the app then start the v-call the other side can't hear me -but i can-
and if i open the app during any normal v-call and go back to the recording it would be without sound !! even though the call was fine.
any one can help ? or explain what happening so we can solve this ?

note: if i use Whatsapp video call is that going to make any
  difference ?

Thank you


text:
Where is my tablet mounting?
I inherited a slight old Lenovo Tablet, an A2107A-F and I am trying to figure out what directory I'm looking at when I mount it as USB storage.  I don't have an sdcard currently.
The folder list I see includes:
100ANDRO
Alarms
Android
com.zinio.mobile.android.reader
DCIM
documents
Download
factory
kindle
LazyList
lenovo
LOST.DIR
Movies
Music
My Pictures
My SugarSync Folders
My Videos
Notifications
ooVooCache

But when I try to find "Movies" or "My Videos" in the file manager I don't see them. I see these files and directories:
acct
advanced_meta_init.project.rc
advanced_meta_init.rc
cache
config
d
data
default.prop
dev
emmc@android
emmc@cache
emmc@ebr1
emmc@fac
emmc@fat
emmc@sec_ro
emmc@usrdata
etc
fac
init
init.aee.customer.rc
init.factory.rc
init.goldfish.rc
init.project.rc
init.rc
init.setcc.rc
init.usb.rc
meta_init.rc
mnt
proc
res
root
sbin
sdcard
sys
system
ueventd.goldfish.rc
ueventd.rc
vendor

I expected the mounted folders to appear in "data" but the ES File Manager says that /data/ is empty.
Not that the ES File Manager launches with a warning that I'm missing my SDcard (true. I am.)

You need to browse into sdcard directory there. That's where the user accessible file system exists. Your file manager by default should not be opening the root directory. Since it is ES file manager you can choose to bookmark the location of /sdcard for easy access. Long press the sdcard directory to get such an option.

I don't have an SD Card. So when I browse to /sdcard/ it just tells me SD Card empty, unmounted, or not present

You mentioned USB Storage. Are you using Jelly Bean or an earlier Android version? Furthermore, are you trying to access /sdcard from that file manager when the USB Storage is mounted already? It wouldn't work in that case.


text:
VR Compatibility: Moto G6 vs E5 Play
I hope this is the correct place to ask this (they directed me here from Meta Exchange).
I'm starting to program in VR with Unity (for Android) and I'm looking to get a low-cost smartphone with VR support. My phone company offered me free either a Moto G6 Play or a Moto E5 Play.
According to their specifications, both are VR capable (gyroscope and motion sensor included). However, I've read mixed reviews online, so I would like to confirm if both are really VR compatible and which would be best for testing gaming related media.

This is partially on-topic. The part about VR confirmation is on-topic, but what would be best is opinionated, so such questions are usually closed. I suggest you edit that out. XDA and Reddit are better platforms for opinions.

Thanks. That's why I asked in meta exchange if this question was allowed and they told me that I shouldn't have a problem.

Did you delete your question there? I can't see a question for your account on Meta SE.

Neither device is supported by Samsung Gear VR or Google Daydream
One of the requirements for Daydream certification is to have motion to photon latency of 22ms-25ms.
Curiously the Motorola Moto G6 is supported by Google ARCore which is expected to have sensors be calibrated in a similar fashion to Daydream
For everything else there is
Google Cardboard which takes advantage of accelerometer/gyroscope on phone. As the sensor measurements/screen latency aren't strictly calibrated the experiences are more static and for brief sessions to avoid motion sickness.


text:
What does it mean when appears a no Sim/SD Card when I turn on internet
I got a Lollipop 5017 A, and sometimes when I use the phone internet it appears a little ícon close to the internet one that shows a card with a diagonal risk as if the phone can't find the SD/SIM card (one of the two, I'm not sure which).
When I go to Settings > Storage the option to activate SD card is grey and I can't click it.
My question is: is this SD card (the one mentioned in the Settings) a external one (the black one that we can plug in PC) or is it a reference for the SIM card, like in the folder /storage/sdcard0 ?

It would help if you shared a screenshot of the same. But I'll try to answer your question,

The SD card mentioned in the Settings is mostly external
The icon that appears close to the internet icon is usually a sim
card icon
The option to activate your SD card might appear grey if the SD card is not detected(if you have one) or not available.


text:
Cannot install / update apps
Since a short time ago, I cannot update / install apps.
E.g., if I try updating a given app, it is downloaded and shown as installing.

But as soon as the installation finishes, it shows again as available for updating, and I keep having in my phone the same "old" version.

What can be the cause, and solution for this? (I mean not to factory reset my phone...)
Could it be related to some setting in
Settings -> Apps -> Special Access -> Apps that can change system settings ?
Using Samsung J7 Prime, Android 8.1.0

These kind of bugs are usually because of old play store service. Try updating those first.

Comment above and answer posted are both valid. In addition, clear the data of Play Store if these don't work (you will have to set up again)

@Supars - What is the procedure for "updating old play store service"?

@beeshyams - What is the procedure for "updating old play store service"?

Follow steps in answer and you should be able to update or simply search for "Google Play Services" in your chrome browser and the app will show up . click on that and if it shows updates available, update it

Here is a detail step by step that will hopefully keep you from doing a factory reset. There's a couple things to touch on before beginning. Placing your phone in airplane mode will ensure updates don't start until you finish the entire process. If you are rooted disable all applications that require root (Task & Scripting Apps, Firewalls, Adblockers, etc) Also anything of that nature for non-root, any 'run at boot' type App. Feed Readers, Podcast Apps, basically anything that wants to sync on reboots and/or connection changes.

First be sure that you have plenty of storage to proceed. More than 1 Gb at least should be free on your internal memory
Also be sure your SDcard is working correctly.
Eject & remove your SDcard, then re-insert it.
Reboot before starting this procedure, we're trying to get everything in the freshest state possible.

1) Turn Off & Reset Networking
 1. Turn ON airplane mode.
 2. Open the Settings App.
 3. Under the "Wireless & Networks" header tap More > Reset Network Settings.
 (Samsung: Settings > Connections > More Connection Settings > Reset Network Settings.)

2) Remove Google Account
This will remove Information linked to your account until you re-add your account Make sure you backup important information before this step
 1. Open the Settings App.
 2. Under the "Personal" header tap Accounts. (No header on Samsung)
 3. Tap Google > Select the account you're using with Google Play
 4. Tap More > Remove Account.

3) Clear Cache & Data from Download Manager
 1. Open the Settings App.
 2. Under the "Device" header tap Apps. (No header on Samsung)
 3. Scroll to and tap Download Manager.
 4. Tap Force Stop.
 5. Then tap Storage.
 6. Tap Clear Cache.
 7. Then tap Clear Data.

4) Clear Cache & Data from Google Play Services
 1. Open the Settings App.
 2. Under the "Device" header tap Apps. (No header on Samsung)
 3. Scroll to and tap Google Play Services.
 4. Tap Force Stop.
 5. Then tap Storage.
 6. Tap Clear Cache.
 7. Then tap Clear Data.
 8. (if available) Tap Uninstall to uninstall system updates.

5) Clear Cache & Data from Google Play Store
 1. Open the Settings App.
 2. Under the "Device" header tap Apps. (No header on Samsung)
 3. Scroll to and tap Google Play Store.
 4. Tap Force Stop.
 5. Then tap Storage.
 6. Tap Clear Cache.
 7. Then tap Clear Data.
 8. Tap Uninstall to uninstall system updates.
 9. Repeat these step for all other existing Google apps. **Backup your data**

6) Things to check in the Setting App before rebooting
  Use the Search in the Settings App, some of these may not be found in every Android version.
 - Reset App Preferences in the Apps settings menu.
 - Reset Permissions in Privacy Guard and set it to OFF.
 - System Profiles are set to OFF.
 - Developer Options are set to OFF.
 - Under the "System" header tap Accessibility, Switch all to OFF.

7) Reboot, Connect & Sign-In
 1. Power on / Reboot your Device.
 2. Open Settings > Display > Screen Timeout. Set it to Never.
 3. Plug your device into a power source.
 4. Allow a couple minutes to pass then turn OFF airplane mode.
 5. Turn Data off.
 6. Open Google Play.
 7. Choose your network.
 8. Sign into your Google Account.
 9. Tap the Home button.
10. Set your device down for 10-15 minutes and let Google process updates, sync, etc.
11. Reboot and access Google Play as you normally would.

All information can be found in the Play Store Help: extra steps to fix Google Play Issues

+1 for a detailed answer.

The answer is long, but it has some pieces of misinformation:

"More than 1 Gb at least should be free on your internal memory". The lower limit I found needed to install apps is 500Mb available space.
The options should be listed in order of "severity". Removing the Google Account should certainly be listed after clearing Caches.

the steps described are the order listed on Google's site. see https://support.google.com/googleplay/answer/7512202

Please clear your cache and then try updating the apps. More specifically you will have clear the Play Store app cache.
Go to Settings, Apps, Google Play Store app, and click on storage. There you should have a option to clear the cache.
Do let us know if that helps.

Taken from:
Play Store won’t open, load, or download apps

Open your device's Settings > app Settings.
Tap Apps & notifications and then See all apps.
Scroll down and tap Google Play Store.
Tap Storage and then Clear Cache.
Next, tap Clear data.

Re-open the Play Store & try your download again.

Restart your device once.


text:
Is it possible to Unlock bootloader at phone with MIUI without registration?
Is it possible to Unlock bootloader at phone with MIUI without registration at:
https://en.miui.com/unlock/

Most of the Xiaomi phones have a bug that lets ROM or boot.img be flashed through EDL mode without unlocking bootloader.

I found this method, but I am not sure if it is exacly unlocking bootloader: https://www.youtube.com/watch?v=vzfAQRcJxmE

No, it is not possible. You must register.

That may be so, but how did you come to this conclusion, except by searching on Google and failing to find an alternative.

@Firelord I'm own and owned several Xiaomi phones. If OP is not afraid to brick his own phone, trying to flash phone without unlocked bootloader - it is his decision. But for standard user - better to use methods provided by manufacturers. Unless we want to answer to a tons of questions like -"Why Kali Linux is so hard?"

That still doesn't answer my comment.

@Firelord sorry, eng is not my native language, but questions should have ?(question mark) at the end, am I wrong?

Okay, I think I gave a wrong impression to you. Let me try this again. When we try to answer about a possibility of something, we don't answer yes or no because a reader cannot differentiate technical yes/no with opinionated yes/no. We try to have that yes/no be backed up with reason, technical or practical, with experience and whatnot. Furthermore, an answer is not supposed to help just the OP but also future visitors with similar problem. In your case, one cannot find out "why" and any alternative, if possible.

@Firelord why I need to explain obvious things if my answer is valid? No is the answer. KISS (keep it simple, s*****), no reason to explain why, because it would not change anything - the answer will still be No.

Let us continue this discussion in chat.


text:
Is there anything malicious with "play support libraries"?
I was doing my daily stuff on my Android Nougat.
And then something started downloading, "play support libraries". I think OK right. But the moment downloading stopped, and installation started my mobile's screen started showing a black screen for 2 secs with of an interval of about 5 secs. It continued for about 2 mins. And then the black screen was no longer appearing. But, now my phone started lagging.
So, I was thinking if that was indeed Play support libraries or something else.
I'd also noticed that the first character of any word was not capital, i.e. "play support libraries".  Which is a small mistake lazy developers often make while making vulnerable apps with the name of any system app, e.g. "phone" / "settings", so the user doesn't notice, after the app gets installed silently, and can do its work without interference.
So, is there anything I can do to check if my mobile's safe or not?

What are the Android Support Libraries?

The Android Support Library is a set of code libraries — resources that can be used to build features and/or functions into an app — that provide things like features or widgets that would normally require an actual Android framework API to include in an app.

The article goes on to state that:

There are generally two types of support library packages. One set enables features of new versions of Android on devices running an older version and the other provides standalone features for all versions of Android. Because these aren't part of Android proper, they can be improved and updated without waiting for a major Android platform release.

Why are the Android Support Libraries important?

we don't have to wait for the next version of Android to get an update if a feature is provided by the Support Libraries. This allows developers to add and improve how their apps work, especially on phones that don't run the current version of Android, whenever the libraries are updated.

Your device is not infected by a virus or something else. It is just Google deciding to update your device (even when did not want the update to add more features).
That said, on this thread from Google, there are other users who have noticed lagging the first few minutes after the update.
Source: What are the Android Support Libraries and why are they important?

Around 30mn before seen this question, my device was updated with 'play support libraries', I was looking to know what it was and then your question appeared.

Nothing like that happened to your device? Like lagging, etc.

I didn't not notice any lagging mainly because i went straight looking what 'play support libraries' were, but other have noticed like you. See edit

One thing I have noticed is that since the update, I get  the msg 'Google Playstore has stopped`. I guess that because I use a modified version of the Playstore.


text:
Add WhatsApp contacts in bulk
I want to save 1000's WhatsApp contacts that were not added to the contact list in bulk.

Which is the fastest way to do it?

Store all the numbers in csv file and than
On your computer, go to Google Contacts.
On the left, click More and then Import.
In the window that appears, choose how you'd like to import your contacts
Check that you saved your contacts as a .csv or .vcf file. Then click CSV or vCard file  and then Select file.
Click Import.
Than let the contact sync with your mobile


text:
Zenfone 2 Deluxe custom rom - question about model variants
My phone went dead and a friend gave me his old Zenfone 2 Deluxe, which comes with the terrible ZenUI and a million asus apps that are a pain in the ass. I wanna throw it away and install a custom rom, something as clean as possible.
When googling, however, I find a lot of custom roms for Zenfone 2 laser, and for Zenfone 2 Z00A. According to Google, Zenfone 2 Deluxe is ZE551ML, however in the settings it says the model number is Z00AD. I'm very confused about this.
Of everything posted on xda's zenfone 2 forum, it's very hard for me to understand which roms I can install and which I can't\shouldn't. Please advise, how do I proceed?

ZE551ML, Z00A, Z00AD and Z00AD* (A/B/C) refers to the same device, as evident on ASUS' support page:

The custom ROM community would refer to this device as Z00A. Look for ROMs targeting this codename.
On a side note, the "Laser" variants have Qualcomm SoCs (SD410/SD615), vastly different from the regular/Deluxe variants.


text:
Reinstalling a package after uninstalling it using adb shell uninstall with the k option
I connected my Android device and used adb shell and while I intended to uninstall the stock music player app I instead uninstalled com.android.providers.media package using this command: pm uninstall -k --user 0 com.android.providers.media. Now I would like to reinstall it back.
I tried downloading and installing the apk file but got INSTALL_FAILED_UPDATE_INCOMPATIBLE error.
? .\adb.exe install com-android-providers-media-1580000075-39331427-4b5d0d066aef0e9e03a79b5dcd83005b.apk
adb: failed to install com-android-providers-media-1580000075-39331427-4b5d0d066aef0e9e03a79b5dcd83005b.apk: Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package com.android.providers.media signatures do not match the previously installed version; ignoring!]

So, what's the fastest and/or the easiest way to get it back? I guess because of using the k option (and from the error message I got while trying to install it from the apk file) that the package is already in the device and I can install it again easily.
--Update
I tried to completely uninstall the package but also that didn't work:
> adb uninstall com.android.providers.media
Failure [DELETE_FAILED_INTERNAL_ERROR]

have you tried the -r option for reinstalling the apk?

I tried adb install -r com_android_provider_media.apk but got INSTALL_FAILED_UPDATE_INCOMPATIBLE error.

@BrijeshJoshi How should I type it? Is the way in my previous comment right?

yes it's correct. As this was saying that UPDATE_INCOMPATIBLE that majorly because of the different signature used. Still try your luck using -d option, which allows to install a downgrade version.

push package(s) to the device and install them with following options.
-l: forward lock application
-r: replace existing application
-t: allow test packages
-s: install application on sdcard
-d: allow version code downgrade (debuggable packages only)
-p: partial application install (install-multiple only)
-g: grant all runtime permissions


text:
Galaxy S9 + Turn off text notifications while on call
How do I stop getting the vibration notification of a text message while on a call.  I have already turned off "Notify during calls" but the notifications still buzz through.


text:
Rear camera and flash tourch is not working!!on Nokia 3.1
I am not able to use Rear Camera and Flash Light in My Nokia 3.1. Front Camera Works Well. When I open Camera App, by default it Opens with Front Camera. Rear Camera Option is Not Found. (Front Camera works Perfectly Fine)
Even when i opened WhatsApp and Take a pic, only front camera is shown. No Button to switch To Rear Camera. (Front Camera works Perfectly Fine)

Seems like an hardware defect with the camera. If a restart doesn't fix it, then you can should bring it to a Nokia Care point.


text:
Unicode chars not displaying despite font updates
Social media users are increasingly using unusual Unicode chars to stylize their display name.

eg ,

On my 7.1.1 device these display as ▯▯▯▯▯ which is a bit of an annoyance.
I've installed the latest 8.1 version of Google Roboto along with other fonts as the system font. The changes apply ok in launcher and apps but the problem chars still appear as the glyph box.
In testing the same usernames on other devices (such as a P20Pro) there is no issue.
Suggestions?

It might help to know which device (manufacturer/model) and which social media / messaging apps you are seeing your problem.

With a problem of this nature probably not, but its a Robin and it will be any app that doesnt bring along its own font store (eg all apps). For example: Keep, Twitter.


text:
Problem displaying apostrophes (')
I'm currently experiencing a strange bug on my device: Whenever an apostrophe (') would be displayed, it shows an ampersand (&) instead, and the rest of the text that would be after the apostrophe is cut.
This only happens in one app, but the app is not the problem, as it doesn't happen in my friends's phones, I even tried installing the app on an emulator and it works fine.
I'm using a Xiaomi Mi A2 Lite, it's got Android One and is up to date (Android 9, Jan 5 patch), no custom roms or anything.
On the left, how it looks in my phone; and on the right, how it should look.

UPDATE: After tinkering with the database I found out that the text that is being displayed is actually stored in html format that is latter interpreted and rendered by the application.
Also, these apostrophes are being stored as a numeric character reference (&#39 ;) which leads me to believe that the ampersand I'm seeing is actually the first character of the NCR.
I still don't understand why is this happening though, as the rest of the html code is being interpreted correctly.

Both characters are important in software and need to be "escaped" so the code knows whats something to calculate and whats something to show (simplified). I suspect I know whats going on here. A: ' B: ʹ - These look the same or similar but are not. If the app dev included an apostrophe look alike Xiaomi may not have handled it properly. With english as a 2nd language they are less likely to spot such nuances. If rooted you can try a different font just in case, if not its something for Xiaomi to patch out.

@Linef4ult I don't have the phone rooted so I can't try that. Also I don't have access to the app source code, but I do have access to the database where the text is stored and the apostrophes causing the problem are standard apostrophes (U+0027).


text:
Unlock Bootloader from EDL mode via MSMDownloadTool
Problem
I'd like to know the proper process of "hacking" emmc_appsboot.mbn in order to flash already an unlocked bootloader from start.
I didn't want to ask for a file from an already unlocked phone because I'm interested in the process and how it works.
What I did
I tried myself editing with a hex editor the line after ANDROID BOOT! and changed the hex from 00 to 01 but the phone was perfectly bricked :D and I had to spend some times with the drivers (Qualcomm 9008) and learning how to put it in EDL mode with the phone not even fastbooting, afterwards I was able to "msmdownload" it again reflashing everything. I can now in fastboot and recovery.
I also tried replacing the recovery, with twrp, and actually it failed when going to recovery because of the md5 checksum.
I hex-edited both md5.img and md5sum.md5 files replacing the md5 of recovery.img with the one of twrp (renamed recovery.img of course) but still, it failed nonetheless the md5 checksum.
I suppose there is some other file where these hash's are stored and are checked during boot.
Is it safe to assume that emmc_appsboot.mbn as well is checksumed and if it fails it doesn't load at all?
What's the correct process in:
1) Editing emmc_appsboot.mbn in order to unlock the bootloader
2) Making the system actually boot and work after we edited those files (probably security checks / hash's are involved).
IMPORTANT:
Please do not suggest "how to unlock the bootloader" with usb-debugging etc, the well known methods that are well known, kindly
Reference : You can download here the MSMDownloadTool with all the ROM / OP3 related files.

Application bootloader's (aboot) source is proprietary content, not open source. So the bits to be changed in a compiled binary (.mbn file) may differ for different OEMs, different phones and even for different firmware versions of same phone. If there are proper methods available to do such things, this is no more "hacking" :)

Here’s what anyone should do if it’s in a similar situation:
Do a full unbrick method 1 from here
Download OxygenOS 4.0.0 (Android 7.0) , OnePlus3Oxygen_16_OTA_035_all_1612310359_e10cadfb2af7.zip.
adb sideload the file above when in recovery. Why this version? Because it’s vulnerable to CVE-2017-5626 and CVE-2017-5624.
    Weirdly enough, my phone turned back from the dead after this; however if it didn’t work (as I was expecting) , I would go into fastboot mode and unlock the bootloader from there with:
fastboot oem 4F500301
Which will completely bypass the oem mechanism and will unlock your bootloader even if you can’t boot the system and go to the developer menu.
This backdoor was removed by OnePlus with OxygenOS 4.0.2 (“patched”).


text:
How to run DNSCrypt as a background service on Android?
I've installed an unofficial lineage OS 14.1 ROM on my phone and i want to have dnscrypt used on boot by default.
There is what i have done:

Download arm binaries from: https://github.com/jedisct1/dnscrypt-proxy/releases
Push dnscrypt-proxy in /system/xbin
Push dnscrypt-proxy.toml in /etc/dnscrypt-proxy/
Created the following script: /etc/init.d/99dnscrypt
#!/system/bin/sh
log -p i -t dnscrypt "Starting dnscrypt-proxy..."
dnscrypt-proxy -config /system/etc/dnscrypt-proxy/dnscrypt-proxy.toml &
log -p i -t dnscrypt "Changing dns with iptables..."
iptables -t nat -A OUTPUT -p udp --dport 53 -j DNAT --to-destination 127.0.0.1:53

Reboot

Now if i launch 99dnscrypt as root from adb it works like a charm
But on boot it does not.
On logcat i see this errors:
02-07 01:00:22.369   267   267 I sysinit : Running /system/etc/init.d/99dnscrypt
02-07 01:00:22.540   275   275 I dnscrypt: Starting dnscrypt-proxy...
02-07 01:00:22.878   278   278 I dnscrypt: Changing dns with iptables...
02-07 01:00:23.236   277   277 W dnscrypt-proxy: type=1400 audit(0.0:28): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:23.236   277   277 W dnscrypt-proxy: type=1300 audit(0.0:28): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=274 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:00:24.238   277   277 W dnscrypt-proxy: type=1400 audit(0.0:45): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:24.238   277   277 W dnscrypt-proxy: type=1300 audit(0.0:45): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:00:28.242   277   277 W dnscrypt-proxy: type=1400 audit(0.0:82): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:28.242   277   277 W dnscrypt-proxy: type=1300 audit(0.0:82): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:00:29.233   277   277 W dnscrypt-proxy: type=1400 audit(0.0:94): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:29.233   277   277 W dnscrypt-proxy: type=1300 audit(0.0:94): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:00:30.234   277   277 W dnscrypt-proxy: type=1400 audit(0.0:105): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:30.234   277   277 W dnscrypt-proxy: type=1300 audit(0.0:105): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:00:31.235   277   277 W dnscrypt-proxy: type=1400 audit(0.0:121): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:31.235   277   277 W dnscrypt-proxy: type=1300 audit(0.0:121): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:00:32.236   277   277 W dnscrypt-proxy: type=1400 audit(0.0:145): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:32.236   277   277 W dnscrypt-proxy: type=1300 audit(0.0:145): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:00:33.247   458   458 W dnscrypt-proxy: type=1400 audit(0.0:146): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:33.247   458   458 W dnscrypt-proxy: type=1300 audit(0.0:146): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:00:34.248   458   458 W dnscrypt-proxy: type=1400 audit(0.0:147): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:34.248   458   458 W dnscrypt-proxy: type=1300 audit(0.0:147): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:00:35.249   458   458 W dnscrypt-proxy: type=1400 audit(0.0:148): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:35.249   458   458 W dnscrypt-proxy: type=1300 audit(0.0:148): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:00:36.250   458   458 W dnscrypt-proxy: type=1400 audit(0.0:149): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:36.250   458   458 W dnscrypt-proxy: type=1300 audit(0.0:149): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:00:37.251   458   458 W dnscrypt-proxy: type=1400 audit(0.0:150): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:37.251   458   458 W dnscrypt-proxy: type=1300 audit(0.0:150): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:00:38.242   458   458 W dnscrypt-proxy: type=1400 audit(0.0:151): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:38.242   458   458 W dnscrypt-proxy: type=1300 audit(0.0:151): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:00:39.244   458   458 W dnscrypt-proxy: type=1400 audit(0.0:152): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:39.244   458   458 W dnscrypt-proxy: type=1300 audit(0.0:152): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:00:40.245   458   458 W dnscrypt-proxy: type=1400 audit(0.0:153): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:40.245   458   458 W dnscrypt-proxy: type=1300 audit(0.0:153): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:00:41.246   458   458 W dnscrypt-proxy: type=1400 audit(0.0:154): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:41.246   458   458 W dnscrypt-proxy: type=1300 audit(0.0:154): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:00:42.247   458   458 W dnscrypt-proxy: type=1400 audit(0.0:155): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:42.247   458   458 W dnscrypt-proxy: type=1300 audit(0.0:155): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:00:43.248   458   458 W dnscrypt-proxy: type=1400 audit(0.0:156): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:43.248   458   458 W dnscrypt-proxy: type=1300 audit(0.0:156): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:00:44.249   458   458 W dnscrypt-proxy: type=1400 audit(0.0:157): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:44.249   458   458 W dnscrypt-proxy: type=1300 audit(0.0:157): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:00:46.251   458   458 W dnscrypt-proxy: type=1400 audit(0.0:185): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:46.251   458   458 W dnscrypt-proxy: type=1300 audit(0.0:185): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:00:47.252   458   458 W dnscrypt-proxy: type=1400 audit(0.0:186): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:47.252   458   458 W dnscrypt-proxy: type=1300 audit(0.0:186): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:00:48.243   458   458 W dnscrypt-proxy: type=1400 audit(0.0:187): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:48.243   458   458 W dnscrypt-proxy: type=1300 audit(0.0:187): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:00:49.254   458   458 W dnscrypt-proxy: type=1400 audit(0.0:188): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:49.254   458   458 W dnscrypt-proxy: type=1300 audit(0.0:188): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:00:50.255   458   458 W dnscrypt-proxy: type=1400 audit(0.0:189): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:50.255   458   458 W dnscrypt-proxy: type=1300 audit(0.0:189): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:00:51.256   458   458 W dnscrypt-proxy: type=1400 audit(0.0:190): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:51.256   458   458 W dnscrypt-proxy: type=1300 audit(0.0:190): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:00:52.257   458   458 W dnscrypt-proxy: type=1400 audit(0.0:191): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:52.257   458   458 W dnscrypt-proxy: type=1300 audit(0.0:191): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:00:53.259   458   458 W dnscrypt-proxy: type=1400 audit(0.0:192): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:53.259   458   458 W dnscrypt-proxy: type=1300 audit(0.0:192): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:00:54.260   458   458 W dnscrypt-proxy: type=1400 audit(0.0:193): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:54.260   458   458 W dnscrypt-proxy: type=1300 audit(0.0:193): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:00:55.261   458   458 W dnscrypt-proxy: type=1400 audit(0.0:194): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:55.261   458   458 W dnscrypt-proxy: type=1300 audit(0.0:194): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:00:56.262   458   458 W dnscrypt-proxy: type=1400 audit(0.0:195): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:56.262   458   458 W dnscrypt-proxy: type=1300 audit(0.0:195): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:00:57.253   458   458 W dnscrypt-proxy: type=1400 audit(0.0:196): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:57.253   458   458 W dnscrypt-proxy: type=1300 audit(0.0:196): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:00:58.254   458   458 W dnscrypt-proxy: type=1400 audit(0.0:197): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:58.254   458   458 W dnscrypt-proxy: type=1300 audit(0.0:197): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:00:59.255   458   458 W dnscrypt-proxy: type=1400 audit(0.0:198): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:00:59.255   458   458 W dnscrypt-proxy: type=1300 audit(0.0:198): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:01:00.256   458   458 W dnscrypt-proxy: type=1400 audit(0.0:203): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:01:00.256   458   458 W dnscrypt-proxy: type=1300 audit(0.0:203): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:01:01.257   458   458 W dnscrypt-proxy: type=1400 audit(0.0:204): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:01:01.257   458   458 W dnscrypt-proxy: type=1300 audit(0.0:204): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)
02-07 01:01:02.258   458   458 W dnscrypt-proxy: type=1400 audit(0.0:207): avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0
02-07 01:01:02.258   458   458 W dnscrypt-proxy: type=1300 audit(0.0:207): arch=40000028 syscall=281 per=800008 success=no exit=-13 a0=2 a1=80802 a2=0 a3=b674a934 items=0 ppid=1 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 exe="/system/bin/dnscrypt-proxy" subj=u:r:sysinit:s0 key=(null)

What is the difference between executing this as root after boot and launch it from init.d? Any idea how i can solve this?

Pardon me if I fail to sum up the vast subject in a brief answer :)
SELINUX AND AVC DENIALS
Android is based on Linux kernel that makes use of Discretionary and Mandatory Access Controls (DAC, MAC) to restrict access to system resources such as files on a certain filesystem. DAC includes classic UNIX RWX file modes, owner/group or UID/GID, Extended Attributes and Access Control Lists. XATTR and ACL are rarely used filesystem related attributes, though MAC also makes use of XATTRs. Root user (UID: 0) is the super user (administrator) within DAC mechanism which can bypass all permission checks imposed by kernel. To make controls more fine-grained, authorities of root user are further divided in subgroups called capabilities.
Coming to MAC, SELinux and AppArmor are commonly used Mandatory Access Control mechanisms. In SELinux model, every file/process is labeled with a context and rules are defined to allow a context access the other.
Say, we want to run command ls with context my_process on a file with context my_file, rule must be defined to allow this access:
allow my_process my_file file { getattr read open }

Otherwise access will be denied with error something like:
avc: denied { open } for pid=... comm="ls" path=... scontext=u:object_r:my_process:s0 tcontext=u:object_r:my_file:s0 tclass=file permissive=0

* File SELinux labels can be changed with chcon while processes can be started with a given context using runcon command.
SELINUX IN ANDROID
Android uses SELinux as part of its security implementations. When a ROM is compiled for a specific device, thousands of SE Policy rules are defined to allow all possible desired accesses. These rules are compiled into a binary file /sepolicy which is placed at root of initramfs in boot.img. This file is loaded during early boot process by init; the very first process that starts all other processes.
Init also starts different processes/services with different contexts as defined in their init *.rc files.
All filesystem labels are stored in multiple files saved in rootfs or at /system/etc/selinux/*_contexts, /vendor/etc/selinux/*_contexts etc. These labels can be restored by restorecon command.
ROOTING AND SELINUX
Now if you want to start a process with different context that hasn't been explicitly allowed in SE Policy, you need to define new rules. However that's not possible under normal circumstances as DAC, MAC and capabilities together won't let you do that. Here comes rooting the phone; let's take example of Magisk.
Magisk starts a daemon as an init service that lets any non-privileged process ask for super user rights. So the problem of UID 0 and lack of capabilities is resolved. In order to address SELinux denials, Magisk defines two new contexts: magisk for proccesses and magisk_file for filesystem. Then rules are defined to allow all access attempts from/to these contexts and /sepolicy is replaced with modified policy file. From now onward any processes running with Magisk rights won't be disallowed from doing anything. This could be really dangerous.
Now coming to your question,
You are starting a process with context u:r:sysinit:s0 which isn't allowed in policy to access all resources it needs. So what you can do is:
OPTION 1:
Run init.d scripts with root's privileges and forget about denials; DAC or MAC. Magisk, for instance, executes scripts placed in /data/adb/*.d directories on boot.
But as a common practice, processes shouldn't be given unnecessary privileges.
OPTION 2:
Set SELinux permissive:
/system/bin/setenforce 0
# OR
echo 0 >/sys/fs/selinux/enforce

But it disables SELinux for whole device which isn't recommended. So instead:
OPTION 3:
Set only sysinit to permissive:
/sbin/supolicy --live 'permissive sysinit'
# or let sysinit do anything without logging denials
/sbin/supolicy --live 'allow sysinit * *'

* supolicy tool is part of Magisk to manipulate SELinux policy. You can also use sepolicy-inject or similar tool.
All of the above solutions are a quick workaround but if you don't want to leave anything loose, go ahead.
OPTION 4:
We can define SEPolicy rules for sysinit context and save that as our default policy to be loaded on boot. For instance, avc denial in your log:
avc: denied { create } for scontext=u:r:sysinit:s0 tcontext=u:r:sysinit:s0 tclass=udp_socket permissive=0

can be converted to an SEPolicy rule:
allow sysinit sysinit udp_socket { create }

sysinit is an init service added to some custom ROMs that executes scripts under /system/etc/init.d/, but it's not a standard AOSP service and the UID, GID, supplementary groups, capabilities and SELinux contexts that this service runs with may differ on different devices.
So in a more general perspective, let's create a new dnscrypt-proxy init service with desired context and additionally with desired UID/GID/groups/capabilities to grant least required privileges.
HOW TO ADD CUSTOM INIT SERVICE TO ANDROID?

Place executable binary at /system/xbin/dnscrypt-proxy

Create directory /etc/dnscrypt-proxy, configuration file /etc/dnscrypt-proxy/dnscrypt-proxy.toml and optionally /etc/dnscrypt-proxy/blacklist.txt if needed.
 listen_addresses = ['127.0.0.1:55']

 [blacklist]
   blacklist_file = '/system/etc/dnscrypt-proxy/blacklist.txt'

 [static]
   [static.'cloudflare']
   stamp = 'sdns://AgcAAAAAAAAABzEuMC4wLjGgENk8mGSlIfMGXMOlIlCcKvq7AVgcrZxtjon911-ep0cg63Ul-I8NlFj4GplQGb_TTLiczclX57DvMV8Q-JdjgRgSZG5zLmNsb3VkZmxhcmUuY29tCi9kbnMtcXVlcnk'

I'm using here port 55 because otherwise dnsmasq server will fail to listen on pre-occupied port 53 when tethering is turned on, causing hotspot to fail.
Private DNS (DoT) feature introduced in Android Pie doesn't use port 53. To enforce dnscrypt-proxy, Private DNS should be disabled.

Create /etc/init/dnscrypt-proxy.rc.
 # define service
 service dnscrypt-proxy /system/bin/logwrapper /system/xbin/dnscrypt-proxy -config /system/etc/dnscrypt-proxy/dnscrypt-proxy.toml
     seclabel u:r:dns_crypt:s0
     user 999
     group 999 3003
     disabled
     capabilities NET_BIND_SERVICE

 # start dnscrypt-proxy after netd daemon
 on property:init.svc.netd=running
     start dnscrypt-proxy

 # redirect all DNS queries to dnscrypt-proxy
 on property:init.svc.dnscrypt-proxy=running
     exec u:r:dns_crypt:s0 root root -- /system/bin/iptables -w 60 -t nat -I OUTPUT -p udp --dport 53 -j DNAT --to 127.0.0.1:55
 on property:init.svc.dnscrypt-proxy=stopped
     exec u:r:dns_crypt:s0 root root -- /system/bin/iptables -w 60 -t nat -D OUTPUT -p udp --dport 53 -j DNAT --to 127.0.0.1:55

Process doesn't need to be run as root. Use non-privileged UID 999 or any other UID not used by Android OS.

In order to access internet, process needs to be in group aid_inet (3003) or have the capability NET_RAW (create socket), and should have capability NET_BIND_SERVICE (bind to socket).

If you are using a firewall (like AFWall+) to block outbound traffic, you need to explicitly allow UID 999 on every boot:
     ~# iptables -I OUTPUT -m owner --uid-owner 999 -j ACCEPT

To forward hostpot traffic through dnscrypt-proxy:
     ~# iptables -t nat -I PREROUTING -p udp --dport 53 -j DNAT --to 127.0.0.1:55
     ~# echo -n 1 >/proc/sys/net/ipv4/conf/all/route_localnet

Define SEPolicy rules:
 ~# supolicy --live 'create dns_crypt'                  # create new context
 ~# supolicy --live 'allow init dns_crypt process *'    # let init handle the service
 ~# supolicy --live 'allow dns_crypt dns_crypt * *'     # allow mutual love

In the same way:
    # allow access to files under /system
        allow dns_crypt system_file dir { read open }
        allow dns_crypt system_file file { lock entrypoint execute_no_trans }
    # allow creatig/connecting to net sockets
        allow dns_crypt node tcp_socket { node_bind }
        allow dns_crypt node udp_socket { node_bind }
        allow dns_crypt port tcp_socket { name_bind name_connect }
        allow dns_crypt port udp_socket { name_bind }
    # allow reading /proc and /dev filesystem
        allow dns_crypt proc_net file { open read }
        allow dns_crypt proc_stat file { read }
        allow dns_crypt properties_device dir { read }
    # allow writing to logcat, logging to file requires different AVC rules
        allow dns_crypt devpts chr_file { open read write }

That's what works for me on AEX Pie ROM. However the labels and contexts may slightly differ on different Android versions and on different phones.

For testing, you can set SELinux permissive on boot by adding a line temporarily to dnscrypt-proxy.rc file:
     ...
     ...
     on property:init.svc.netd=running
         exec u:r:magisk:s0 root root -- /system/bin/setenforce 0
         start dnscrypt-proxy
     ...
     ...

Then use dmesg to see avc denials and define any further rules.

Save and load policy file.
 ~# supolicy --save /etc/selinux/sepolicy

Live injecting a large number of rules to policy takes longer. Since these rules need to be loaded on every boot, save them as default sepolicy file.

Unpack boot.img and replace the /sepolicy file with yours. In this way the service will work even if the phone is not rooted.

However if you don't want to modify boot.img, you can take support from Magisk to load custom policy on boot before the dnscrypt-proxy service is started. It's because even init on its own can't load any custom policy once SELinux is set enforcing after loading default policy.
     ...
     ...
     on property:init.svc.netd=running
         exec u:r:magisk:s0 root root -- /system/bin/load_policy /system/etc/selinux/sepolicy
         start dnscrypt-proxy
     ...
     ...

Set permissions and fix contexts:
 ~# chmod 0755 /etc/dnscrypt-proxy /system/xbin/dnscrypt-proxy
 ~# chmod 0644 /etc/init/dnscrypt-proxy.rc /etc/dnscrypt-proxy/* /etc/selinux/sepolicy
 ~# restorecon -Rv /system/xbin/dnscrypt-proxy /etc/*

Reboot.

You have a harmless, innocent-looking dnscrypt-proxy service running on your device.

Hi, this seems very promising! however in my rom (based on lineage OS 14.1) adding /etc/init/dnscrypt-proxy.rc does not seem to start the process (file permissions seem right). How can i verify its working? Furthermore i have no supolicy command.

Set SELinux permissive for testing initially. May be you need to define extra AVC rules. Once everything is in place, switch to enforcing mode. logwrapper writes to Android's logcat, so you can confirm by logcat | grep dnscrypt. supolicy comes with Magisk.

Thanks for all the help, i will give it a shot when i have time. In the mean time i have installed magisk and i have found this module: https://github.com/Magisk-Modules-Repo/dnscrypt-proxy. It does exactly what we are trying to accomplish right?

Yeah seems so, but I haven't given it a try.

Thanks for this very detailed write-up.  I'm testing with both lineage OS + omnirom, and set:
echo 0 >/sys/fs/selinux/enforce
It still throws:
avc: denied { read } for name="ttyS0" dev="tmpfs" ino=1500 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:serial_device:s0 tclass=chr_file permissive=1 app=com.licheedev.serialtool

@TimNuwin that's expected. Note permissive=1. In permissive mode: "denials are logged but not enforced".

@ Irfan - the more I try wrap around SeLinux I realize there could be  a typo out there & it ought spelt  "Sea-Linux" ...too many places to get you lost in. I used your guide here        https://android.stackexchange.com/questions/217741/how-to-bind-mount-a-folder-inside-sdcard-with-correct-permissions but with bindfs the bind mount appears "transparently" as a folder compared to standard mount command where mount point appears as a "link" ..
A non root file explorer can rename existing file w  bindfs but it cant create new files aka WhatsApp downloads fail
any clue ?

in context of the above ls -Zd /data/sdext3 gives u:object_r:unlabeled:s0 /data/sdext3 I tried chcon as root ( /data/sdext3/WhatsApp is chowned by root & its the  target to my  mount pt (/sdcard/WhatsApp ---> /data/sdext3/WhatsApp... functionality that is). I tried to chcon -Rh u:object_r:sdcardfs:s0 $DIR/WhatsApp   & got a permission denial. Where are things goin  wrong mate ?


text:
Oem unlocking not allowed
I am getting an error while trying to unlock the oem.
The error reads as Oem unlocking is not allowed.
I have yu yuphoria 5010a. And in oem device-info fetting as device tampered - false.
Please help asap.
Thanks,
Dev

You need to enable the option "OEM Unlocking" in the developer options. Provided YU allows you to unlock the bootloader, the switch will be enough for you to go back to fastboot mode and issue the OEM unlock command.

Just to clarify.
You need to enable OEM Unlocking in Development Options

Steps,

Open Settings
Open About ( or more, then About )
Locate Build Number
Tap Build Number 7 times
You should see, You are now a developer.

After that, you will have a new option in settings, called Developer Options.

Open Developer Options and look for OEM Unlocking.


text:
Does adb backup store all applications?
On my non-rooted phone first I did adb backup -all -apk -obb -f lenovo.ab and bit later adb restore lenovo.ab (both commands had no errors). Surprisingly I did not find quite a lot of apps after the restore. There are two options: these apps were not stored in the backup file in the first command or they were not restored in the second. To check the first option, I made a tar file from backup with
dd if=lenovo.ab bs=24 skip=1 | openssl zlib -d > lenovo.tar (advice taken from Is there a way to look inside and modify an adb backup created file?) and did not find the missing apps there. So adb did not store them.
The question is why? Probably many of the missing apps (or even all of them) were not updated for a long time. Can this be the reason to discard the app from backup?

# adb shell bu -h
 backup [-f FILE] [-apk|-noapk] [-obb|-noobb] [-shared|-noshared] [-all]
        [-system|-nosystem] [-keyvalue|-nokeyvalue] [PACKAGE...]
     write an archive of the device's data to FILE [default=backup.adb]
     package list optional if -all/-shared are supplied
     -apk/-noapk: do/don't back up .apk files (default -noapk)
     -obb/-noobb: do/don't back up .obb files (default -noobb)
     -shared|-noshared: do/don't back up shared storage (default -noshared)
     -all: back up all installed applications
     -system|-nosystem: include system apps in -all (default -system)
     -keyvalue|-nokeyvalue: include apps that perform key/value backups.
         (default -nokeyvalue)
 restore FILE             restore device contents from FILE

There are two important things to consider when backing up apps through adb. First, all those apps whose developers do not want it to be backed up are never backed by adb. This is done by declaring a flag (allowbackup) in app's manifest. Second, even if a developer wants their app to be backed up, they can decide on either full backup (fullbackuponly) or only the key/value pairs backup. This is again done through app's manifest.
In your case, only the apps with allowbackup=true and fullbackuponly=true were backed up. Installation age or last revision's age of an app has no bearing on adb backup.
If you are curious to know which apps couldn't be backed up, I suggest you try an app from user Izzy's extensive app inspection list. As of now, I'm not aware of any app which can sort and show the apps based on those backup attributes.

The answer is really clear, thank you very much especially for the Izzy's list.

Is there a way to bypass this flag and backup anyway without rooting?

There is no way to do that because that would violate the trust model upon which an app developer chose to keep sensitive data away from backup mechanism. @Ben


text:
How to disable wallpaper blur effect on Samsung Galaxy S9 home screen?
I've set an animated wallpaper on my Samsung Galaxy S9 (one that was included with the device). It displays correctly on the lock screen, but somehow gets blurred on the home screen.
Lock screen (no blur) | Home screen (blur)

Is it possible to disable this blur effect?

It's not blurred wallpaper, it applied two wallpapers, one for the lock screen and the other for the home screen.
To set the wallpaper (single wallpaper for both screens):

Open the wallpaper app, and select any wallpaper, and select this option set as Home screen and Lock screen OR set Both (option in Google Wallpaper app).

Press and hold the home screen, the screen will show three options, Wallpaper, Widgets, and Settings (home screen). Tap on Wallpaper, and select any wallpaper, the select set as HOME screen and Lock screen OR Both as options mentioned above.

Press the home screen. On the bottom, press launcher themes. Disable the blur effect to all.


text:
Stuck in system recovery
I have a hTC D626w, after an interrupted update, it does not boot any more. When I enter recovery mode, I see the following message at the bottom of the page:
No file end with factory_update.zip found in SD card.

The message persists after removing the SD card.
I chose wipe cache partition and wipe data/factory reset. But after selecting reboot system now, a white page appears on which I see hTC.
Does anyone know what's wrong with my device?

Interrupting an Android update is not a good idea as your device is now in an "in between" state that is not usable.
Most likely you have to flash a complete factory image (also called RUU image) of your device to recover it.
Usually HTC devices support fastboot, which should allow to flash such an image to your device. Check the HTC ROM Download page for an image matching your specific device.

A system update could have been making important system configuration changes when it got interrupted.
You should have an incomplete ( Corrupted ) system, this is why you should never interrupt a System firmware update.
What to do now ?

First you need to unlock your bootloader at the HTC Dev website
htcdev.com/bootloader
After that, you can try to repair your device via Fastboot by
flashing the stock images back.

Considering the information I found suggest that you still have the update.zip and you might have a MTK CPU.

You can alternatively try to flash the Firmware using SP Flash Tool
v5.17 or above.

You will need to extract your Update.zip file and find any .IMG files... E.g, boot.img, recovery.img and especially system.img
If you can find boot.img, try to flash that with Fastboot first... Then try the rest...
If you have an update that contains folders, you will have difficulty installing it without a custom recovery.
With SP Flash Tool, you DO NOT need to unlock your bootloader, as you can flash the bootloader also.
I can find only a few ROM - Firmware online, however the firmware I found doesn't have Gapps included ( Google Apps ) ...
Do you have an MTK CPU ?


text:
MAM and Android: fingerprint option never shown
We're trying to configure Intune so that people with Android devices can access their corporate email through Outlook for Android. In the Access Requirements blade (dashboard > client apps- app protection policies > intune app protection - properties), we've activated PIN (including simple PINs) and fingerprint for accessing the apps.
Whenever a user tries to access the corporate email through Outlook, it's prompted to install the Intune app (company portal app) from the store. After doing that, the user is asked for a PIN after setting up the corporate email account in Outlook. After the specified timeout, the user will be asked for a PIN again. However, the app never allows the users to use fingerprints to unlock the app. It will only allow the user to enter the PIN.
The Intune portal seems to imply that I should be able to use a fingerprint (instead of a PIN) to access the mail, but we've tried it on a couple of Android Devices (OnePlus 3T and 5T) and the fingerprint option is never shown.
Any ideas on what's happening?
Thanks.

Have you read https://social.technet.microsoft.com/Forums/en-US/cd36899e-5bb3-41f6-9754-7d1833dfa4ec/fingerprint-instead-of-pin?forum=microsoftintuneprod?

Hello Robert. Yes I've tried following the docs for setting intine, but I'm surely missing something...

In order for it to work, you need to create a work profile and associate the fingerprint to that profile.


text:
Question about recovery log
i got a brand new nokia phone a few days ago. The phone and box was in new condition except a tiny bit of dirt/gunk on one of the metal rim/side of the phone.
This got me thinking as to whether the phone might be refurbished, so i took a look at the recovery menu and noticed that the View recovery logs already had a log inside it. The first line says, 'Started recovery on Tue 27 Jan....' I am guessing the date is the default 27 Jan 1970 a lot of folders on the phone have currently.
My question is: Are brand new phones supposed to have this recovery log file, or is this an indication that the phone is refurbished?
Thanks a lot for the help

The recovery should essentially have logs. The factory also tests the device sensors and hardware for normal functionality. So, I'm guessing one of those tests would also be about checking that recovery mode is accessible or not.
You should check for warranty in the Nokia Support app and I wouldn't worry if it shows the device in warranty.


text:
Removing images created by Linux Deploy
I have SM-G900F on Lineage Oreo. I installed Linux Deploy and left the path to ${EXTERNAL_STORAGE}/linux.img, and I removed the app for a second time. Now, I still have the linux.img in my memory, but I can't delete it because I don't know the path to where was it created, while in the installer app can't find it.
Going to Settings -> Storage and tapping on Linux Deploy doesn't work, I can't see more than 50 MB used for it.
What can I do?

I made it to delete the file using ES File explorer.