Blank Jobs.xml Generated Repeatedly; Causes Bootloop - Android Q&A, Help & Troubleshooting

I'm on an LG G3 D850 with LG-MM-Stock-Based CleanRom 2.8 installed, but I don't think that is super-relevant to the issue at hand aside from the MM part... so this is going in the general Android Q&A forum
I recently had to reinstall my ROM from scratch, re-setup my whole system, etc. Since that time, I've been finding that whenever my battery fully depletes, I end up in a bootloop when I next turn on the phone.
This bootloop looks like getting the "Optimizing Apps" window, going through all 200-something of my apps, and when it completes... rebooting and starting over again
I eventually managed to go into TWRP, and modify some system settings to enable adb from my computer in the system, so I could use logcat to see what was going on during boot. I discovered a fatal error whenever it would finish the app optimization, that looked like:
Code:
AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: main AndroidRuntime: java.lang.RuntimeException: Failed to create service com.android.server.job.JobSchedulerService: service constructor threw an exception
Googling this, I found the following StackExchange: Marshmallow not bootlooping, but not starting
Basically, it turns out that empty / corrupted .xml files for key system activities can cause this to happen on startup
In my case, it was the jobs.xml file in /data/system/job –*and deleting it would allow the phone to reboot, no problems.
---
So I know the fix to this issue.
The problem is, whenever my battery drains all the way... there's like a 50% chance this happens again. It's happened a good 4-5 times over the past week
I'm trying to figure out wtf is causing this.
Can anyone give me some insight, maybe a path to follow to figure out what's creating these empty jobs.xml files, a better understanding of what the job scheduler / jobs.xml files are for, a way to automate deleting the jobs.xml file every so-often if it's empty, a boot-script that can flush it when I restart my phone... anything like that?
I'm really sick of having to go through this, esp. since when it happens, I usually also have just had to wait for my phone to get enough juice to startup... so it's massively inconvenient to also have to go into recovery and delete the file :/

(FWIW I've tried every common fix I can think of... reflashing the ROM, clearing caches, etc. etc.)

phnord said:
(FWIW I've tried every common fix I can think of... reflashing the ROM, clearing caches, etc. etc.)
Click to expand...
Click to collapse
Maybe you can create a init.d script to delete the file when startup if your device support it.
Hit the thanks button if I helped you

Could I get a walkthrough on this? How do I create an init.d script / what should syntax look like / where do I store it to have it execute the moment of boot / do I need to do anything to grant it special permissions of some kind / etc.?

Would something as simple as creating a 00 file that I store in /system/init.d that contains:
Code:
#!/system/bin/sh
rm /data/system/job/jobs.xml
chmodded to 777
Do the trick?

Related

phone force closing

I have been talking this over with Condemned Soul but wanted to see if anyone else has ran into this problem since he & I are both confused.
My fiances phone has been force closing a lot lately aka com.android phone not responding. I saw the first force close when I tried flashing Tazzs cm7 on his phone so thats when I first put on gsb 1.2
I switched his over to Sheds GSB on the 8th and it was great everything was fine but then I decided to try to improve on a few settings and when I restarted the phone it decided to start force closing.
I reflashed the rom and the gapps and everything seemed fine but then I wanted to put cs skull theme on his phpne since we had it on Kaos v9 but then when I restarted the phone after flashing the theme it force closed again.
So then I reflashed the rom and gapps again and got all his apps and settings all back how he had it and decided to do a Nandbackup so that we wouldnt have to keep reflashing the rom again and once I restarted the phone after the nandbackup it force closed again.
Long story short I reflashed the rom and gapps and now am in the process of getting his apps and settings back how he had it once again.
Am I doing something wrong to make it keep force closing? I would like to make a nandbackup at least for him so that we wont have to keep setting up his phone.
Thank you for any help
When you say you flash the ROMs, do you also do a wipe beforehand? If not, try doing a wipe and then install and see if that changes anything.
Yes I wiped both the factory and dalvk sorry I thought I mentioned that. lol.
labnjab said:
Yes I wiped both the factory and dalvk sorry I thought I mentioned that. lol.
Click to expand...
Click to collapse
Its a problem that happens on certain ROMs with certain themes. Not sure there's a fix for it, I just got around it by not applying the phone.apk theme.
zerocool79346 said:
Its a problem that happens on certain ROMs with certain themes. Not sure there's a fix for it, I just got around it by not applying the phone.apk theme.
Click to expand...
Click to collapse
phone.apk wasn't changed in the theme. Strange part is it's only on the one phone and haven't heard of it on any of the others.
CondemnedSoul said:
phone.apk wasn't changed in the theme. Strange part is it's only on the one phone and haven't heard of it on any of the others.
Click to expand...
Click to collapse
That is odd.
Update:
This is still causing issues. Going to try and format the sd like tazz suggested, but moving my phone.apk to his didnt work, and yesterday he had to restart his phone and it did it again and needlessto say hes not very happy with his phone. Says its not reliable at all. If anyone else has anything else I can try it would be a big help. I have tried searching on google but dont find a whole lot of information. I just wish I could figure this out its got to be something I did or something stupid that I am missing.
There are a couple of next steps you can take.
If the problem is a software configuration issue, then it is possible that you will see the reason for the FC in the logcat.
The system logcat is designed as a "circular buffer" (in a way that it has a maximum size) - once you fill it to capacity, each new record which is added to the end causes information at the beginning to be lost. But, this also means that if a FC occurs, so long as you "dump the logcat" within a reasonable period of time after the FC happens, you will capture the moment in time that the FC occurred,
Generally, the "logcat" buffers get filled to capacity quite quickly at boot time (because there is lots and lots of "android" app activity), and quite a bit slower after the phone has been completely booted. If you are trying to capture a logcat event during the first boot, you need to continuously capture output to a file on your PC (it will be quite large) - but once the phone has completed booting, so long as you "run a logcat" within 5 or 10 minutes after a FC occurs, the relevant event(s) will be in the logcat.
If you want to capture it during the first boot cycle of a freshly flashed ROM, probably you ought to have a PC attached and dump the prodigious output to a file on the PC, as in
Code:
C:\MyWindozePC> adb shell logcat -v time > LogcatFileOnMyPC.txt
So long as the ROM you have flashed has "USB debugging" turned on by default, you can run the above command about 10-15 seconds after you see the 3 skating droids, and it will continuously place output into the local file on your PC. You need to interrupt the above command (Control-C) to get it to stop; you would usually do that a few seconds after you saw the FC, and then you would know that the log entries you are looking for at the end of the file.
(Note that logcat dumps are usually huge - don't bother trying to look at them with a text file viewer on the phone - they suck at handling large files... well, at least the ones that I have tried).
You could also instrument this on the BF's phone in a way where he can capture the info to the SD card anytime he is using the phone during the day with a couple taps of the screen, and then you could look at the logcat(s) later at your leisure - for instance by using Gscript Lite, and a simple script like this:
Code:
#! /system/bin/sh
_LOGDIR='/sdcard/logcats'
if [ ! -d ${_LOGDIR} ]; then
mkdir ${_LOGDIR}
fi
_tstamp=`date +%Y%m%d-%H%M`
logcat -v time -d > ${_LOGDIR}/logcat_${_tstamp}.txt
With this method, you just need to train him like a monkey to press the right keys after a FC occurs. If he's a clever monkey, you could even train him to send the logcat files to you via e-mail.
If the problem is due to an intermittent hardware issue with the phone, that will be tougher to identify. About the best you can do to make that determination is to return the phone software to stock and use the phone without installing any apps for a reasonable period of time and see if the problem continues to occur.
cheers
bftb0
Thank you for the detailed reply bfbt0 I was about to msg you when you responded.
I will have to give what you mentioned a try.
Is the gscript lite what I use for the adb shells or do I need another app as well. I have never done anything with adb or if I have it was something simple.
To clarify I would have to get his phone to fc again which is easy to do and then run a logcat. It sounds easy through the pc I just want to make sure I do it right. I would make a folder dedicated to where the logcats would be stored and then run it in the gscript lite? Meaning run the first code you posted.
Update ~ Never mind I found you had to have android sdk on your pc Im downloading that now. I still may need help tho.
labnjab said:
Update ~ Never mind I found you had to have android sdk on your pc Im downloading that now. I still may need help tho.
Click to expand...
Click to collapse
GScript Lite is a free app on the market. It was put together by XDA member "rogro", and he has a paid version as well if you want to throw a couple bucks his way.
Using the script above with Gscript (Lite or Pro), you don't need to be tethered to a computer nor set up the SDK and drivers. (Only when you want to capture a full first ROM boot do you need to use a PC (because the logfile grows so big in that specific case).
If you can force the FC to occur, then using the Gscript Lite script I showed above will capture the information you want.
bftb0
PS There is a brief outline of how you load a script into Gscript Lite in that "Universal Root for Dummies" thread over on AF.
cheers
Thank you I will try that tonight and hopefully can figure out what the issue is
labnjab said:
To clarify I would have to get his phone to fc again which is easy to do and then run a logcat. It sounds easy through the pc I just want to make sure I do it right. I would make a folder dedicated to where the logcats would be stored and then run it in the gscript lite? Meaning run the first code you posted.
Click to expand...
Click to collapse
That code I posted checks to see if a folder exists, and if not creates it - /sdcard/logcats
No need for you to do it manually; the first time the script runs it creates that folder
But, yeah - wait for the FC to happen and then run that script within the next couple of minutes (no real hurry). It is also useful to make note of the time the phone displays when the FC occurs - it will be easier to find things in the logcat file by timestamp if you do that.
bftb0
Thank you I will do that as well. Thanks also for taking the time to help me.
I did the code on my phone to make sure I did it right and it gave me an error
says cannot create/logcat_20110222-1558.txt read only file system
did I do something wrong, just want to make sure that I can get it right before attempting it on his phone tonight. Thanks in advance.
labnjab said:
I did the code on my phone to make sure I did it right and it gave me an error
says cannot create/logcat_20110222-1558.txt read only file system
did I do something wrong, just want to make sure that I can get it right before attempting it on his phone tonight. Thanks in advance.
Click to expand...
Click to collapse
If you typed that script in by hand, you made a typo.
I checked it by cutting and pasting it - and then I tested it afterward, and it worked.
Probably you bolluxed up the _LOGDIR variable, or you inserted a space in the logcat command where there should not be one.
I would suggest that you cut and paste, rather than type.
Hmmmm... it occurs to me that those little "scrolling CODE text boxes" don't render correctly on the phones browser. Here's the same script, but without enclosing it in [ CODE ] [ /CODE ] tags:
#! /system/bin/sh
_LOGDIR='/sdcard/logcats'
if [ ! -d ${_LOGDIR} ]; then
mkdir ${_LOGDIR}
fi
_tstamp=`date +%Y%m%d-%H%M`
logcat -v time -d > ${_LOGDIR}/logcat_${_tstamp}.txt
Thank you for all your help. I got it to work and come to find out I didnt even need to use that program because it hasnt forced closed yet. He said he wiped the phone a bunch of times the other day when he was trying to get it back up and running when it forced closed on him while at work and now i rebooted it and backed it up and that usually caused a problem, so far so good.
I am tho going to format the sd card and redo the rom again just to be sure this problem doesnt happen again. Thank you again for all the help.
On some builds (even though it shouldn't be required) it is necessary to wipe multiple times. On Tazz's earlier builds of GB, people reported having to wipe 3x or more to get it running smooth. Always make sure you do a nand backup before flashing in the future lol. Hopefully the phone stays running good! If not, people are always here to help!
Sent from my Ginger Tazz using XDA App

How to fix the "invalid download uri" problem

Hi
"Invalid download uri" is a bad ass error that is the biggest flaw (IMHO) You can encounter. Solutions are (as far as I can tell):
- cache clear
- factory reset
But for those, who did this and still have the same problem (or don't wanna try the factory reset) there might be some hope. (I was searching for solutions and found none like this, so I hope I don't duplicate someone's ideas)
I was fighting with this for a longer time and I guess I finally managed to fix it. I tried to clear cache, Google Store and Services, I even removed and reinstalled Google Play. But as logcat said, there was still problem with access to the file that was downloaded (something about JaveException:FileAccessInvalid - or something similar).
So, to make the long story short:
- connect phone
- adb shell
- cd /data/data/com.android.providers.downloads
- ls -al
There should be 4 directories:
- one of them (install) is a link (not visible in CM File Manager, but visible in shell)
- app_sslcache, cache, databases
Those three should have similar attributes (drwxrwx--x), in my case, cache had ony drwx--x--x.
So an easy fix: chmod 771 cache (You should be root) and voila, everything works (You don't need reboot or to stop google play or anything) and no more "invalid download uri".
Please, if You have this problem try this fix and if it works for You, let others know (maybe even in the comment section below)...
PS: It's not dangerous, but anyway... You do this at Your own risk.
It WORKED!
What a life saver, I was able to change the permissions through FX Root Explorer.
Thank YOU.
Thanks!!!
Old thread but throwing a thank you out there. Was having this issue after rooting my VZW M8 and this solved the problem. Thanks! I also shared this link over on AndroidForums.com as I found a similar thread with no solution while googling this issue.
So thanks!
Thank you, for the inspiration, by looking at the logs, it was some permission pbl in com.android.vending and after some try, it was com.android.vending itself that was with bad permission.
771 on com.android.vending fix it for me!
Hi, was reading your suggestion how to fix problem"invalid dowload url' problem, followed your guide but no luck.
You wrote:
There should be 4 directories:
- one of them (install) is a link (not visible in CM File Manager, but visible in shell)
- app_sslcache, cache, databases
I have galaxy S5, rooted, using root explorer(everything visible) and within data/data/androidproviders.downloads I have only 3 files.
cache,databeses and lib.
but in another directory data/data/com.android.vending I do have files you mentioned and some more.
All of my files as well directories have same set of permissions, which is
rwxrwx-x
I know you mentioned we should have drwxrwx--x and I don't know how to change it(if my permissions are wrong).
IF you can help pls I would appreciate.
sweetmango said:
Hi, was reading your suggestion how to fix problem"invalid dowload url' problem, followed your guide but no luck.
You wrote:
There should be 4 directories:
- one of them (install) is a link (not visible in CM File Manager, but visible in shell)
- app_sslcache, cache, databases
I have galaxy S5, rooted, using root explorer(everything visible) and within data/data/androidproviders.downloads I have only 3 files.
cache,databeses and lib.
but in another directory data/data/com.android.vending I do have files you mentioned and some more.
All of my files as well directories have same set of permissions, which is
rwxrwx-x
I know you mentioned we should have drwxrwx--x and I don't know how to change it(if my permissions are wrong).
IF you can help pls I would appreciate.
Click to expand...
Click to collapse
Must be the "new" Android version... I don't have enough info to help You. the pesmissions are correct. That "d" in the beginning says it's a directory. After that there are rwx (means: Read, Write, eXecute) three times. These permissions are for Owner, Group and Others. That means the owner (the app that created this directory/file) should have full rights:rwx. He can read, write and execute the file/directory. Group is just a group of owners that can share some data. Like, You can put pictures into a directory and have all apps in group "viewers" access them. And then Others. Others are all other apps that are there. So basically drwxrwxrwx means anyone can do anything with that file/directory. drwx------ means only the owner has full access, all others cannot do anything. That's the permission system in linux/android in a really really fast lesson.
Now what You need to do is to find where S5 puts the things it downloads from App Store. Maybe You are missing that folder I have found. Dunno. Try to google it out and maybe someone can help You better. Or try to find it Yourself.
What I would do is to connect S5 with a cable to a PC, run adb shell logcat and then I would try to install something from the App Store. You will see all that crap that's going on and if there will be an error, You can see it, read it, think about it and solve it
Ot put it here and I will think for You
"invalid dowload url' problem
Thank you very much for super fast response. BTW, besides this post about 'invalid dowload url' problem there is nothing on the net, not one single word. I resolved my issue with reseting my phone and everything is fine now(it was easy since I have back up of everything). Will re search more and let you know if find any answers. Anyway, was looking at permissions in same folder after reseting my phone and everything is same as before but works. Thank you again, for your effort.
ntn_labs said:
Must be the "new" Android version... I don't have enough info to help You. the pesmissions are correct. That "d" in the beginning says it's a directory. After that there are rwx (means: Read, Write, eXecute) three times. These permissions are for Owner, Group and Others. That means the owner (the app that created this directory/file) should have full rights:rwx. He can read, write and execute the file/directory. Group is just a group of owners that can share some data. Like, You can put pictures into a directory and have all apps in group "viewers" access them. And then Others. Others are all other apps that are there. So basically drwxrwxrwx means anyone can do anything with that file/directory. drwx------ means only the owner has full access, all others cannot do anything. That's the permission system in linux/android in a really really fast lesson.
Now what You need to do is to find where S5 puts the things it downloads from App Store. Maybe You are missing that folder I have found. Dunno. Try to google it out and maybe someone can help You better. Or try to find it Yourself.
What I would do is to connect S5 with a cable to a PC, run adb shell logcat and then I would try to install something from the App Store. You will see all that crap that's going on and if there will be an error, You can see it, read it, think about it and solve it
Ot put it here and I will think for You
Click to expand...
Click to collapse
Try without an SD card in your device.
I don't have install in either place (com.android.provides.downloads or com.android.vending) on my PadFone X and keep running into this issue
EDIT: In my case it won't download the whole app.
EDIT: Downgrading Play Store fixed it!
Thanks, it worked
I didn't try changing permissions but just cleared the Download Manager data and it did work
Did this with Root Explorer, just want to mention, permission 771 should be granted not only for cache folder, but to every sub-folder.
Anyway thanx, this is really working solution.
Just a quick note: Noticed this error after installing the Xposed Module "Root Cloak". Since this error only showed up for root apps I figured that was the problem. Was able to update (TiBU and Greenify) by disabling Root Cloak - rebooting - updating - re-enabling Root Cloak.
Not sure what item I added to Root Cloak that is causing this issue, but for now this "solved" the problem for me.
Merman1983 said:
Just a quick note: Noticed this error after installing the Xposed Module "Root Cloak". Since this error only showed up for root apps I figured that was the problem. Was able to update (TiBU and Greenify) by disabling Root Cloak - rebooting - updating - re-enabling Root Cloak.
Not sure what item I added to Root Cloak that is causing this issue, but for now this "solved" the problem for me.
Click to expand...
Click to collapse
Dead or not I have ran into the exact same thing twice. First time was right after root cloak, and this time its been a while. That and a bad memory had me end up here. Root Cloak or not a simple fix permissions in something as old as ROM Manager or just do it in custom recovery fixed it for me. Android 4.3. Galaxy Note 10.1 2014 rooted stock with multi user. I note multi user because it has also caused me some grief due to knox magically appearing in the second user even though completely removed from ROM and also must enable multi user root in supersu. Thanks for making me chase permissions instead of go after the old sd card mount issues.
Fixing permissions worked for me thanks!
Solution to "Invalid download URI."
After some time of troubleshooting this issue, and performing all the previously recommended steps, we believe we found a really easy solution. In fact, I feel really frustrated that I didn't do this to begin with, but hey, live and learn.
This solution will typically work for folks who are getting this on almost every app, with a few exceptions. You may notice that some apps will install while others throw this "Invalid download URI." When an app is downloaded, the installer will then look to see where the app wants to install. Most of the time, these apps request to use the "SD Card" mount point. On most Android devices, even if you do not have a SD card installed, you will still have a SD Card mount point, which simply points to another location within the phones storage. It turns out that in this case, the S4 we were working on, had a SD card installed, but it was defective. So the installer would attempt to perform the installation step, but since the SD card wasn't responding appropriately, we would get this "Invalid download URI" error. After the card was removed, the Play store began functioning normally and apps would install without any issues.
Hopefully this helps everyone who had no success with the cache clearing and permission change solutions.
I wanna bump this to say thanks to the op and xda in general I been fighting with the aopen Opensign tablet10s that uses some hacked apon version of ics trying to get gapps working this thread was the final piece of the puzzle
THANK YOU

Apollo loop trapped in setting and google

My Apollo is currently stuck in a loop trapped in between the Google welcome screen and settings. This happened after trying to add gapps on a rooted 4.5.2. Originally it fell into this as I was setting permissions on one of the system files. All of a sudden it went into Google welcome screen and settings, completely isolating launcher, apps and even home buttons. In a panic move I performed a factory reset which went well, but I am still at the same spot. I guess the factory reset does not modify system files, which leaves me a bit confused and questioning weather I still have my root or not? I've tried through and to mount the file system as a rw and I have tried to modify the file that caused this but it won't let me.. Always says read only. I can't upgrade or downgrade as I have modified the ota filename not to upgrade and when I try to modify it's name I get the same error... Read only.... Could someone please help me? Is there a way to remount my system file to rw? Or is there a way I could force an update like Odin? Thanks in advanced for any input on this.
Figured my issue out.. Im definetly a noob when it comes to Linux commands... I was trying to obtain super user permission by typing SU in order to mount the system as rw. I wasn't aware that when shell promt begins $ it's read only, and # is rw. I was never going into rw because my kindle screen was always off and every time I would request SU It would ask for acknowledgement through the screen the normal way it's usually granted. Long story short, I modified the appropriate files and voila.... Everything works.
help needed
Hello,I'm stuck in the same situation as you had before.I am also stuck between the google welcome page and the wifi page,could you guide me along as to how to solve this problem?I'm a complete noob when it comes to rooting and the etc,so if you will,please guide me step-by step.
Cheers,

Razer Phone 2 soft bricked after applying GPS Joystick GPS disabler

I have a Razer Phone 2 rooted with magisk. I use GPS Joystick. I decided to select the "disable system GPS" setting in its options. I rebooted as the app requested and now my phone loads to the point where it wants me to enter my pin and I see my wallpaper for a split second then the screen goes black and it loads up the status bar about ever 10 seconds for a split second then it repeats. Like it is stuck in a loop. After a couple minutes phone reboots and I get this message...
Android Recovery
razer/chery12/aura
9/P-MR1-RC003-RZR-190305/3110
user/release-keys
Use volume up/down and power
Can't load Android system. Your data may be corrupt. If you continue to get this message, you may need to perform a factory data reset and erase all user data stored on this device.
Try again
Factory data reset
Click to expand...
Click to collapse
So I reached out to the dev of GPS Joystick and he explains that the option disables the location services called "fused location provider" and I have to re-enable it to fix the problem. He sent me a post here explaining that I need to pull an .xml file from the phone, change the code, and push it back. Simple right? Well maybe if I have TWRP, but I don't. I can however boot into the phones recovery options and there is an option there to "apply update from adb" but I cannot seem to pull anything using that interface. My Windows computer recognizes the device using Minimal ADB and Fastboot but it shows it as a whole bunch of numbers then the word "sideload" which I guess is a limited form of adb just for side loading? Maybe someone could make me a script that I can sideload that changes the file back to normal? Here is the code from the dev of GPS Jostick that is used to disable and enable the fused lcoation provider.
It calls this code to disable:
ComponentName component = new ComponentName("com.android.location.fused", "com.android.location.fused.FusedLocationService");
getActivity().getPackageManager().setComponentEnabledSetting(component, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0);
And similar code to re-enable it:
ComponentName component = new ComponentName("com.android.location.fused", "com.android.location.fused.FusedLocationService");
getActivity().getPackageManager().setComponentEnabledSetting(component, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, 0);
Click to expand...
Click to collapse
So my question is, can I pull this /data/system/users/0/package-restrictions.xml file from my phone and push it back without using TWRP? But instead using the phones recovery option and its various selections? I'd prefer to exhaust the resources to recover the phone since I have spent weeks personalizing it. I am not fluent in adb but I am hoping someone can throw some ideas or even a solution at me that I am missing. All I got to do is pull a file, change a word, push it back and reboot. I can't imagine there isn't a way to do this by just using what the phone has to offer. Any help would be greatly appreciated.
Another idea that came to mind is in its current condition could I install TWRP? Is fastboot an option at this point? Maybe if I can flash TWRP in its current state I can then make the appropriate modifications.
I ended up fixing the problem. I installed arter97's kernel that had TWRP baked into it. I then used TWRP to copy over the .xml file, change the code as mentioned above, and then copied it back to the phone. Problem solved. It is amazing how one simple word in a .xml file can prevent a phone from functioning properly. It simply amazes me.

How To Guide Unlocking, Rooting, System RW, LED Notification Summary

First time posting and I wanted to say thank you to all the excellent talent here on XDA! None of this would have been done without the work of so many people.
I have a Moto G Play (2021) (XT2093-4) that I recently purchased (Best Buy - $159 US/Carrier Unlocked) and I wanted to document my adventure in to rooting, making '/system' RW, and fixing the missing LED notification light (hint: I used the charging light) (hint^2: It's not required to make '/system' RW in order to fix the LED notification light - I just wanted more control over my phone).
First, "OEM unlocking" was greyed out for me, but became available after several days of having the phone online with a SIM card.
I followed the instructions here to unlock the bootloader and root with Magisk (Non-TWRP). Along with these instructions.
Once bootloader is unlocked, you will need the 'boot.img' file from your stock firmware. I used the "Rescue and Smart Assistant" utility to grab a copy of the stock firmware (GUAMNA_RETAIL_QZAS30.Q4_39_35_9_subsidy_DEFAULT_regulatory_DEFAULT_CFC.xml) and extracted the "boot.img" file for the next steps.
Continue installing Magisk (Filenames may be different! Don't just copy and paste.):
Code:
adb install Magisk-v23.0.apk
adb push boot.img /sdcard/Download
(Follow the instruction on your phone to patch 'boot.img' in Magisk)
adb pull /sdcard/Download/magisk_patched-23000_aKKMt.img
adb reboot bootloader
fastboot flash boot_a magisk_patched-23000_aKKMt.img
fastboot flash boot_b magisk_patched-23000_aKKMt.img
You should now have a working, rooted Moto G Play. You can just stop here and have fun with your phone, but I noticed that even with root, the system partition was not RW.
I followed these instructions to make '/system' writable (Note: you will need the 'sysrw_repair.zip' that's included in the bundle and a Linux system):
Code:
adb push systemrw_1.32_flashable.zip /data/local/tmp/
adb shell
su
cd /data/local/tmp/
unzip systemrw_1.32_flashable.zip
cd systemrw_1.32/
chmod +x systemrw.sh
./systemrw.sh in=`ls -l /dev/block/by-name/super | awk '{print $NF}'` out=/data/local/tmp/systemrw_1.32/img/super_original.bin size=50
The phone doesn't have enough space to complete 'lpmake' on the device and will end with an "Error 73" code. Running the "sysrw_repair_v1.32" tool on a Linux machine was a workaround because it pulls the '*.img" files to your local machine then combines them in to a single '.bin' file. But, before I did that, and because it's really annoying, I made some room to stop the phone from complaining about a lack of space:
(Still on the phone's adb)
Code:
rm ./img/super_original.bin
Now, on the Linux machine, I unzipped 'sysrw_repair_v1.32_proper.zip' then commented out line 39 (where it calls the "flash()" function) of the script (sysrw_repair.sh) because I wanted to flash the "super" partition myself.
(On another Linux terminal)
Code:
cd /path/to/unzipped/sysrw_repair/dir/
chmod +x sysrw_repair.sh
./sysrw_repair.sh
This results in a new folder (img) with a rather large bin file (super_original.bin).
(Back on the phone adb)
Code:
exit # Exit root
exit # Exit adb
adb reboot bootloader
Now it's time to flash the fixed bin file to the "super" partition:
Code:
cd /path/to/unzipped/sysrw_repair/dir/
fastboot flash super ./img/super_original.bin
fastboot reboot
You should be able to login and have a writable '/system':
Code:
adb shell
su
mount -o rw,remount /
No errors should appear.
Last, I like having an LED indicator that tells me that I have an SMS/MMS notification waiting. Motorola thought it would be wise to eliminate that feature altogether instead of having the option to enable it. So, I forced it back on using a startup script that dumps the notifications and greps for some key words. And, if it finds something, it "breaths" the charging LED. The script loops until the notification is gone, then keeps checking for new notifications every 30 seconds. (Note: the "/data/adb/service.d/" directory is used by Magisk like an INIT service):
(Still root on the phones adb)
Code:
cd /data/adb/service.d/
cat <<EOF > ledfix.sh
#!/bin/sh
while true; do
if dumpsys notification | egrep NotificationRecord | egrep sms > /dev/null
then
if [[ $(cat /sys/class/leds/charging/breath) == 0 ]]
then
echo 1 > /sys/class/leds/charging/breath
sleep 2
continue
else
sleep 2
continue
fi
elif egrep 'Charging' /sys/class/power_supply/battery/status > /dev/null
then
if [[ $(cat /sys/class/leds/charging/breath) -ne 0 && $(cat /sys/class/leds/charging/brightness) -ne 0 ]]
then
echo 0 > /sys/class/leds/charging/breath
echo 255 > /sys/class/leds/charging/brightness
elif [[ $(cat /sys/class/leds/charging/breath) == 0 && $(cat /sys/class/leds/charging/brightness) == 0 ]]
then
echo 255 > /sys/class/leds/charging/brightness
else
continue
fi
else
echo 0 > /sys/class/leds/charging/breath
echo 0 > /sys/class/leds/charging/brightness
fi
sleep 30
done
EOF
chown 0.0 ledfix.sh
chmod 0755 ledfix.sh
reboot
Now, the charging light will fade off and on about every 2 seconds if there's an SMS/MMS notification waiting. And will check for notifications every 30 seconds. I'm sure someone can come up with a better way of doing this, but this was a nice quick-and-dirty way to get what I wanted.
Hope this helps!
I created an account to say thank you for this, I have already done a good portion, having unlocked the bootloader, the problem is the Rescue Smart Assistant, it won't let me log in, it keeps telling me it can't connect, and the GUI is different because of an update, there is no download button inside the program, only a greyed out rescue button. How did you manage to make the backup Boot.img? Maybe you are using a different OS, and/or version of the program (Not the app, that is already auto-installed), I'm using Windows 10, are you on Linux? I might just need to try from Linux, maybe in a VM.
I was trying to do this before I found this post, and have already installed ADB, the SDK, fastboot, and Motorola Drivers, I just need a way to get the Boot.img, and to patch it, also figure out how to flash it. The last android I rooted with a custom rom was the HTC EVO 4G with Oreo/Jellybean, so I'm a little rusty, but am able to understand technical jargon.
If anyone could help, that would be awesome. I've reinstalled different versions of Rescue Smart Assistant as well, they always upgrade on boot, same problem. I've added exceptions to my firewall and everything.
UPDATE: Was about to post this when I had updated from android 10 to 11 and decided to try logging in again a little closer to my router, to see if the connection was timing out, I think that was the cause, as I can now sign in, and the GUI seems correct from the first appearance. I don't see why I should have any trouble following the rest of the guide, but feel I should share my trials and frustrations anyways, for anyone else experiencing the same,
Thanks again.
PROFSLM said:
I created an account to say thank you for this, I have already done a good portion, having unlocked the bootloader, the problem is the Rescue Smart Assistant, it won't let me log in, it keeps telling me it can't connect, and the GUI is different because of an update, there is no download button inside the program, only a greyed out rescue button. How did you manage to make the backup Boot.img? Maybe you are using a different OS, and/or version of the program (Not the app, that is already auto-installed), I'm using Windows 10, are you on Linux? I might just need to try from Linux, maybe in a VM.
I was trying to do this before I found this post, and have already installed ADB, the SDK, fastboot, and Motorola Drivers, I just need a way to get the Boot.img, and to patch it, also figure out how to flash it. The last android I rooted with a custom rom was the HTC EVO 4G with Oreo/Jellybean, so I'm a little rusty, but am able to understand technical jargon.
If anyone could help, that would be awesome. I've reinstalled different versions of Rescue Smart Assistant as well, they always upgrade on boot, same problem. I've added exceptions to my firewall and everything.
UPDATE: Was about to post this when I had updated from android 10 to 11 and decided to try logging in again a little closer to my router, to see if the connection was timing out, I think that was the cause, as I can now sign in, and the GUI seems correct from the first appearance. I don't see why I should have any trouble following the rest of the guide, but feel I should share my trials and frustrations anyways, for anyone else experiencing the same,
Thanks again.
Click to expand...
Click to collapse
You can also get the firmware from
Lolinet Mirrors
https://t.me/MotoUpdatesTracker
Search for Firmware by codename, software channel, Software Version, and build #
So I wasn't going crazy when I could swear a LED notification light in the upper right side above the screen blinked once whenever I rebooted the phone?
Why would Motorola include such a thing and not utilize it for more than merely a boot up indicator? Like I dont even get to see it come on while charging, it literally only blinks once during boot and that's it.
mario0318 said:
So I wasn't going crazy when I could swear a LED notification light in the upper right side above the screen blinked once whenever I rebooted the phone?
Why would Motorola include such a thing and not utilize it for more than merely a boot up indicator? Like I dont even get to see it come on while charging, it literally only blinks once during boot and that's it.
Click to expand...
Click to collapse
I know!
I don't know what triggers that light to come on. I even waited until the battery was at 6% and the light still never came on.
So, I updated the script above to make the light go full brightness if the battery is charging. The order matters, so if a notification comes in while charging, it'll "breath" the LED. Also, if the battery is full, then the light will turn off. Kind of telling you that it's time to unplug.
I followed these steps and my touch screen stopped working. I had previously installed twrp already on it while trying to learn how to root it, and when i boot into fastboot it goed through twrp, i also used the boot.img file from lolinet, not sure which of these caused the issue. Interestingly though, the touch screen does work whilst in twrp. any suggestions on how to fix or what would be causing it? Phone does work with usb mouse over OTG
jorduino said:
I followed these steps and my touch screen stopped working. I had previously installed twrp already on it while trying to learn how to root it, and when i boot into fastboot it goed through twrp, i also used the boot.img file from lolinet, not sure which of these caused the issue. Interestingly though, the touch screen does work whilst in twrp. any suggestions on how to fix or what would be causing it? Phone does work with usb mouse over OTG
Click to expand...
Click to collapse
Are you absolutely sure you used the correct boot.img from an image version exactly matching your phone variant version?
mario0318 said:
Are you absolutely sure you used the correct boot.img from an image version exactly matching your phone variant version?
Click to expand...
Click to collapse
Im not completely sure how to get the right file, but I think the first time it was the wrong one, but then when i got what i thought was the right one, it just didn't work at all and I had to recovery flash it. I had just updated so maybe the correct image wasn't available yet. Im going to try again though
Oh! Hello @latentspork. Thanks for your interest in my SystemRW project. I just came across this thread randomly...
I'm happy you got my script to work on your Motorola device by using the included sysrw_repair script
Please feel free to send me your log files from script folder. Thanks. It's useful for further development of the script
latentspork said:
The phone doesn't have enough space to complete 'lpmake' on the device and will end with an "Error 73" code. Running the "sysrw_repair_v1.32" tool on a Linux machine was a workaround because it pulls the '*.img" files to your local machine then combines them in to a single '.bin' file. But, before I did that, and because it's really annoying, I made some room to stop the phone from complaining about a lack of space:
Click to expand...
Click to collapse
That's not 100% accurate. Lpmake error 73 means CAN'T_CREATE and has nothing to do with error 70 (insufficient space).
To this day I still don't know exactly what causes error 73 on some devices (mostly Motorola and others) but it looks like some kind of kernel panic. If anyone knows how to avoid this error 73 in Android please let me know! Thanks!
Yes that's true the included sysrw_repair script (Linux only) pulls the image files from the phone to your computer and attempts to run the same lpmake command with the same arguments that just failed with error 73 on the phone itself and now all of a sudden it just works in Linux. Go figure.
latentspork said:
(Still on the phone's adb)
Code:
rm ./img/super_original.bin
Click to expand...
Click to collapse
Why would you delete the super_original.bin ? That's your stock read-only super image which by default is automatically dumped by script for backup purposes in case you ever get a bootloop.
And if you launch the script by specifying a custom input value (in=x) like in your example above then you won't even have a super_original.bin file to begin with because script will skip the whole dumping of original super image process.
latentspork said:
This results in a new folder (img) with a rather large bin file (super_original.bin).
Click to expand...
Click to collapse
I think you mean super_fixed.bin
latentspork said:
Now it's time to flash the fixed bin file to the "super" partition:
Code:
cd /path/to/unzipped/sysrw_repair/dir/
fastboot flash super ./img/super_original.bin
fastboot reboot
Click to expand...
Click to collapse
Here in your instructions you are manually flashing the wrong file. Shouldn't you be flashing super_fixed.bin to your super partition?
Usually I only flash the super_original.bin to get back out of a bootloop...
latentspork said:
Now, on the Linux machine, I unzipped 'sysrw_repair_v1.32_proper.zip' then commented out line 39 (where it calls the "flash()" function) of the script (sysrw_repair.sh) because I wanted to flash the "super" partition myself.
Click to expand...
Click to collapse
See that's why I included that automatic flash() function in the repair script. Then you don't have to worry about manually flashing the wrong file to your super partition
Enjoy a fully read/write-able device!
Great news! New SystemRW version coming soon! ​
@lebigmac
I really appreciate the reply and the tool! It did work really well on my model (XT2093-4).
That's not 100% accurate. Lpmake error 73 means CAN'T_CREATE and has nothing to do with error 70 (insufficient space).
To this day I still don't know exactly what causes error 73 on some devices (mostly Motorola and others) but it looks like some kind of kernel panic. If anyone knows how to avoid this error 73 in Android please let me know! Thanks!
Click to expand...
Click to collapse
I only assumed that "Error 73" was caused by insufficient space, because the phone really did run out of space. I noticed that the phone was out of space because I got a home screen notification warning, asking me to free up space. I confirmed it with a "df -h" at the shell. Apparently, the OS takes up almost 15GB. When you add the ".img" files, there's only about 5GB left. There wasn't enough room to complete the ".bin" file. Maybe I could have used an SD card or something.
You're probably correct in that "Error 70" is the correct error for that, but on my phone, I never saw that error. I did notice that the tool was still trying to write data as the phone ran out of space, then it would throw the "Error 73". Maybe it didn't register the lack of space, or just an oddity with my model? No idea.
Why would you delete the super_original.bin ?
Click to expand...
Click to collapse
This is the file that was created when I initially ran the "./systemrw.sh" command on the phone. The result of running the command on the phone were several ".img" files and a very large "super_original.bin", but it was incomplete because the command threw an "Error 73". I was following your instructions, and I noticed that the output name of the file was "original" instead of "fixed". I probably could of outputted it to a new name to reduce confusion, but I didn't really care too much about the name as long as I had a working file.
I think you mean super_fixed.bin
...
Shouldn't you be flashing super_fixed.bin...
Click to expand...
Click to collapse
Normally, yes. But the Linux script also outputted the filename "super_original.bin". Again, as long as it worked, I was okay with it. The commands I used above were the exact commands that I ran at the time. I copied them from the terminal consoles I was using. So I don't know why it wasn't outputting the correct filename (again, I was following your instructions and was a little confused that the names came out differently - I just figured I was doing something wrong like not use the proper output command or something).
Then you don't have to worry about manually flashing the wrong file to your super partition...
Click to expand...
Click to collapse
I was really just being cautious because my previous phone broke and I didn't have a fallback.
But, at no point were there two bin files (original and fixed), so there wasn't much confusion. Where I originally had just ".img" files before running the script, I now had a single ".bin" file. I knew that was the file I needed.
But again, thank you for all the hard work on this tool! I was reading that it's worked on lots of different model phones, and it's always good to see the open source community doing things that help all kinds of people.
For moto notification for this phone at least use https://play.google.com/store/apps/details?id=br.com.itsmeton.motoledreborn or moto led reborn from the play store it just works
Hi, sorry. This can be removed. I put it in place because I was having issues with the xda app. For whatever reason, every time I tried to share this particular post, it would share a link for the post which I used originally, rather than the current post. I knew that if I commented I could get back here easily on my PC.
So what is the place holder for

Categories

Resources