• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Root LG Volt Pokemon Go Issues

fido14dido

Newbie
I posted this here since this seems this issue is directly related to this phone and this forum is the most active with this phone's development. Please move this to the proper forum, if appropriate.



I have two (rooted - stock ZV6 ROM KitKat 4.4.2) versions of this phone (Virgin/Boost Mobile) and both experience the issue with the character refusing to move after a period of time. It happens when I move/drive and stop at a location. When I start to move again, the character does not move anymore and the only way to resolve it is to restart the program simply by pushing the home button and relaunching. (why the program just quits instead of pausing when I press the home button is another issue with this phone/program but is probably very related). Other observations:


Issue has occurred with old and most recent versions of the app from the Play Store

No messages of No GPS Connection or No Connectivity pops up.

Attempted High Accuracy / GPS Only / WIFI Only options. Same results

Google Maps and Waze do not experience these issues

Cleared out all background apps prior to launching

Seems to be less of an issue when I am in constant motion (ie, walking). Always an issue when driving (stop signs/red lights).

Tried a few GPS status apps with no credible evidence of improvement

Installed a fresh debloated stock ROM to resolve issue but problem still persists

Phone runs extremely hot but not very different than my iPhone 5S (which does not have this stopping issue)

Used a program called Kernel Tuner and adjusted the memory settings (in OOM menu) and noticed some improvements with prolonged GPS connectivity. However, the game virtually grinds to a halt and becomes too annoying to even try to play.

Data provider is a Sprint MVNO carrier.

I am not sure if the character stops moving on WIFI only since my router's range does not stretch for very long distances. However, it does seem to move even after I leave my phone down for a long while.

Even though the character does not move on the map, it continues to rotate correctly when I rotate my phone.



I suspect the issue relates to RAM management, or lack thereof, but not technical to pursue much further so if someone has found a solution, please share. Thanks.
 
I posted this here since this seems this issue is directly related to this phone and this forum is the most active with this phone's development. Please move this to the proper forum, if appropriate.



I have two (rooted - stock ZV6 ROM KitKat 4.4.2) versions of this phone (Virgin/Boost Mobile) and both experience the issue with the character refusing to move after a period of time. It happens when I move/drive and stop at a location. When I start to move again, the character does not move anymore and the only way to resolve it is to restart the program simply by pushing the home button and relaunching. (why the program just quits instead of pausing when I press the home button is another issue with this phone/program but is probably very related). Other observations:


Issue has occurred with old and most recent versions of the app from the Play Store

No messages of No GPS Connection or No Connectivity pops up.

Attempted High Accuracy / GPS Only / WIFI Only options. Same results

Google Maps and Waze do not experience these issues

Cleared out all background apps prior to launching

Seems to be less of an issue when I am in constant motion (ie, walking). Always an issue when driving (stop signs/red lights).

Tried a few GPS status apps with no credible evidence of improvement

Installed a fresh debloated stock ROM to resolve issue but problem still persists

Phone runs extremely hot but not very different than my iPhone 5S (which does not have this stopping issue)

Used a program called Kernel Tuner and adjusted the memory settings (in OOM menu) and noticed some improvements with prolonged GPS connectivity. However, the game virtually grinds to a halt and becomes too annoying to even try to play.

Data provider is a Sprint MVNO carrier.

I am not sure if the character stops moving on WIFI only since my router's range does not stretch for very long distances. However, it does seem to move even after I leave my phone down for a long while.

Even though the character does not move on the map, it continues to rotate correctly when I rotate my phone.



I suspect the issue relates to RAM management, or lack thereof, but not technical to pursue much further so if someone has found a solution, please share. Thanks.

The game requires a minimum of 2GB of RAM to run. The Volt has barely 1Gb of RAM, not even that if you're on stock.
 
Here is how I set up swap, zram, OOM killer tuning, and ksm (files relative to /system/etc/):

This file does the actual config tweaks at bootup (if you name this file differently, make sure there is no period in the filename or run-parts won't execute it - this took me an embarrassingly long time to figure out):

-rwxr-xr-x 1 root root 739 Jul 30 01:08 init.d/50memory-tweaks

Code:
#!/system/bin/sh

mkswap /dev/block/mmcblk0p35
swapon -p 2 /dev/block/mmcblk0p35

busybox insmod /system/lib/modules/zram.ko num_devices=4

echo 67108864 > /sys/block/zram0/disksize
echo 67108864 > /sys/block/zram1/disksize
echo 67108864 > /sys/block/zram2/disksize
echo 67108864 > /sys/block/zram3/disksize
mkswap /dev/block/zram0 
mkswap /dev/block/zram1
mkswap /dev/block/zram2
mkswap /dev/block/zram3
swapon -p 1 /dev/block/zram0
swapon -p 1 /dev/block/zram1
swapon -p 1 /dev/block/zram2
swapon -p 1 /dev/block/zram3

echo 100 > /proc/sys/vm/swappiness

echo 1 > /sys/kernel/mm/ksm/run

echo 100 > /sys/kernel/mm/ksm/sleep_millisecs

( sleep 30; echo 1536,2048,4096,5120,8192,10240 > /sys/module/lowmemorykiller/parameters/minfree ) &

If you haven't set up init.d processing, here's how I did it (assuming install-recovery.sh chains to install-recovery-2.sh):

-rwxr-xr-x 1 root root 58 Jul 25 01:22 install-recovery-2.sh

Code:
#!/system/bin/sh

/system/bin/busybox run-parts /system/etc/init.d

Make sure you've got a busybox installed with run-parts and insmod applets.

This should alleviate some low RAM conditions. I steal some swap space (30 megs or so, maybe less depending what emmc chip they used) from the grow partition. This swap is used first, as the first things swapped out are unlikely to get swapped back in. After that it uses zram up to 256MB uncompressed size; in my usage I've noticed it doing better than 30% compressed size compared to uncompressed. I also dropped the OOM settings as seen in the last line. 30 second delay is to get around the stock ROM screwing with the settings at bootup. Using greenify to kill off unnecessary apps may also help.

KSM typically buys you about 5-6MB (with some low constant overhead), zram something like 180MB (with overhead swapping/unswapping), and the little swap partition 30MB on the devices I used (overhead mostly only once after booting and starting to swap out unused crap), more or less depending on your phone's partitioning. The OOM killer settings probably get you another 20MB or something like that, no real overhead besides less memory for filesystem cache, and perhaps slightly wackier OOM killer behavior under high memory pressure.

I set the zram priorities identically so there should be some multicore action if it wants to compress a bunch of memory at once.

I used this kernel: https://www.androidfilehost.com/?fid=24269982087013540

Permissions for /system/etc/init.d: -rwxr-xr-x root root
 
Last edited:
It seems to run fine on 1.5GB of RAM, however it doesn't detect the GPS on my phone. I have an old Droid DNA that I tether to my volt to play, lol.
 
It runs fine on mine with CM13. Granted I only have Pokemon Go, Ingress & Adaway installed. (It's strickly my mobile gaming phone)
 
Last edited:
I don't have any of these issues whatsoever =\ plays 100% fine. Only had force closes due to stress testing after reading Pokemon GO "required" 2gb of ram
 
Haven't experimented much on that but picked 100, and I'm not seeing it swap too aggressively (in my subjective opinion of course) for zram; I think a bigger question of tuning might come up when slower swap is used.

The nice thing is this phone is reasonably core heavy for its memory size; zram would probably be not quite as nice if this were a single or maybe even dual core phone.
 
thanks!
Haven't experimented much on that but picked 100, and I'm not seeing it swap too aggressively (in my subjective opinion of course) for zram; I think a bigger question of tuning might come up when slower swap is used.

The nice thing is this phone is reasonably core heavy for its memory size; zram would probably be not quite as nice if this were a single or maybe even dual core phone.
thanks!
 
Here is how I set up swap, zram, OOM killer tuning, and ksm (files relative to /system/etc/):

This file does the actual config tweaks at bootup (if you name this file differently, make sure there is no period in the filename or run-parts won't execute it - this took me an embarrassingly long time to figure out):

-rwxr-xr-x 1 root root 739 Jul 30 01:08 init.d/50memory-tweaks

Code:
#!/system/bin/sh

mkswap /dev/block/mmcblk0p35
swapon -p 2 /dev/block/mmcblk0p35

busybox insmod /system/lib/modules/zram.ko num_devices=4

echo 67108864 > /sys/block/zram0/disksize
echo 67108864 > /sys/block/zram1/disksize
echo 67108864 > /sys/block/zram2/disksize
echo 67108864 > /sys/block/zram3/disksize
mkswap /dev/block/zram0 
mkswap /dev/block/zram1
mkswap /dev/block/zram2
mkswap /dev/block/zram3
swapon -p 1 /dev/block/zram0
swapon -p 1 /dev/block/zram1
swapon -p 1 /dev/block/zram2
swapon -p 1 /dev/block/zram3

echo 100 > /proc/sys/vm/swappiness

echo 1 > /sys/kernel/mm/ksm/run

echo 100 > /sys/kernel/mm/ksm/sleep_millisecs

( sleep 30; echo 1536,2048,4096,5120,8192,10240 > /sys/module/lowmemorykiller/parameters/minfree ) &

If you haven't set up init.d processing, here's how I did it (assuming install-recovery.sh chains to install-recovery-2.sh):

-rwxr-xr-x 1 root root 58 Jul 25 01:22 install-recovery-2.sh

Code:
#!/system/bin/sh

/system/bin/busybox run-parts /system/etc/init.d

Make sure you've got a busybox installed with run-parts and insmod applets.

This should alleviate some low RAM conditions. I steal some swap space (30 megs or so, maybe less depending what emmc chip they used) from the grow partition. This swap is used first, as the first things swapped out are unlikely to get swapped back in. After that it uses zram up to 256MB uncompressed size; in my usage I've noticed it doing better than 30% compressed size compared to uncompressed. I also dropped the OOM settings as seen in the last line. 30 second delay is to get around the stock ROM screwing with the settings at bootup. Using greenify to kill off unnecessary apps may also help.

KSM typically buys you about 5-6MB (with some low constant overhead), zram something like 180MB (with overhead swapping/unswapping), and the little swap partition 30MB on the devices I used (overhead mostly only once after booting and starting to swap out unused crap), more or less depending on your phone's partitioning. The OOM killer settings probably get you another 20MB or something like that, no real overhead besides less memory for filesystem cache, and perhaps slightly wackier OOM killer behavior under high memory pressure.

I set the zram priorities identically so there should be some multicore action if it wants to compress a bunch of memory at once.

I used this kernel: https://www.androidfilehost.com/?fid=24269982087013540

Permissions for /system/etc/init.d: -rwxr-xr-x root root

I switched kernels and set it up like you have it and GPS is being detected now! Thanks for this info!

Made some additional performance tweaks with kernel auditor and the phone is performing well.
 
I switched kernels and set it up like you have it and GPS is being detected now! Thanks for this info!

Made some additional performance tweaks with kernel auditor and the phone is performing well.

No problem!

I like the approach of doing it with an init script because it just gets it done and stays out of the way without squandering some of the gains on an app that stays running the whole time. You wouldn't even know it was happening except for noticing fewer home screen re-loads :)
 
Noob question. Am i supoosed to create a folder in system/etc called init.d? Becasue it is not letting me due to a file that exists with the same name. Also tried editing the init.d file itself but not seeing any numbers under swap when i use the free command in terminal. I have edited the recovery.sh file as instructed as well.
 
Last edited:
Noob question. Am i supoosed to create a folder in system/etc called init.d? Becasue it is not letting due to a file that exists with the same name. Also tried editing the init.db file itself but not seeing any numbers under swap when i use the free command in terminal. I have edited the recovery.sh file as instructed as well.

Yep, if you haven't already done something to set up init.d processing, I think the easiest way is creating the install-recovery-2.sh file as shown to make it run the stuff within it, and create the init.d folder (be careful with spelling on both of those files), and set all the permissions appropriately (you can do that within es file explorer, or command line with chmod commands, whichever you prefer).

If you already have an init.d folder, it may be running these already, or may not. Check the bottom of this post for a way to test if scripts are executing. I attempted to do this with the instructions in a stickied thread in the forum, but I had a lot of problems so I basically cut through all the automatic installer BS and figured out how the end result should be, and set that up manually. The important thing is verifying contents of those install-recovery.sh and install-recovery-2.sh files. In the first one, there should be a line that executes install-recovery-2.sh, and this is the important part of that file.

The other main prerequisites are using a kernel that supports all that stuff (I use the one in the bottom of my above post), and having a busybox in /system/bin/busybox that has run-parts and insmod applets. You can test if this is installed by running /system/bin/busybox and see if it shows insmod and run-parts in the list of applets it has. If your busybox is installed somewhere else, change the path to it in install-recovery-2.sh

If you installed the same kernel I used, you can check if it's there by running "busybox uname -a" and looking for a date of "Dec 8 01:25:36 PST 2015" in the output.

As a troubleshooting measure, you can insert lines like:

echo "hello from install-recovery-2.sh" >> /data/startup.log

and then later investigate if that file and lines in it were written. This will tell you if different scripts are executing.

If you need more help, reply back with the steps you've tried and results. One more tip: Make *sure* that the files have unix line endings; if you use the text editor with es file explorer and write them by hand, you need to go to the top right button in the text editor and change the format to unix line endings. If they have msdos/windows line endings (the default for a new file!), it won't work right.
 
I posted this here since this seems this issue is directly related to this phone and this forum is the most active with this phone's development. Please move this to the proper forum, if appropriate.



I have two (rooted - stock ZV6 ROM KitKat 4.4.2) versions of this phone (Virgin/Boost Mobile) and both experience the issue with the character refusing to move after a period of time. It happens when I move/drive and stop at a location. When I start to move again, the character does not move anymore and the only way to resolve it is to restart the program simply by pushing the home button and relaunching. (why the program just quits instead of pausing when I press the home button is another issue with this phone/program but is probably very related). Other observations:


Issue has occurred with old and most recent versions of the app from the Play Store

No messages of No GPS Connection or No Connectivity pops up.

Attempted High Accuracy / GPS Only / WIFI Only options. Same results

Google Maps and Waze do not experience these issues

Cleared out all background apps prior to launching

Seems to be less of an issue when I am in constant motion (ie, walking). Always an issue when driving (stop signs/red lights).

Tried a few GPS status apps with no credible evidence of improvement

Installed a fresh debloated stock ROM to resolve issue but problem still persists

Phone runs extremely hot but not very different than my iPhone 5S (which does not have this stopping issue)

Used a program called Kernel Tuner and adjusted the memory settings (in OOM menu) and noticed some improvements with prolonged GPS connectivity. However, the game virtually grinds to a halt and becomes too annoying to even try to play.

Data provider is a Sprint MVNO carrier.

I am not sure if the character stops moving on WIFI only since my router's range does not stretch for very long distances. However, it does seem to move even after I leave my phone down for a long while.

Even though the character does not move on the map, it continues to rotate correctly when I rotate my phone.



I suspect the issue relates to RAM management, or lack thereof, but not technical to pursue much further so if someone has found a solution, please share. Thanks.



Most of the problems you are having has to do with Niantic I believe, I have a Note 4 and have the same problem at times.
 
Most of the problems you are having has to do with Niantic I believe, I have a Note 4 and have the same problem at times.

How much RAM does the Note 4 have, according to the apps screen? These volts have about 860MB available to the kernel and it's difficult to get the base usage under 400MB with the stock ROM.
 
Yep, if you haven't already done something to set up init.d processing, I think the easiest way is creating the install-recovery-2.sh file as shown to make it run the stuff within it, and create the init.d folder (be careful with spelling on both of those files), and set all the permissions appropriately (you can do that within es file explorer, or command line with chmod commands, whichever you prefer).

If you already have an init.d folder, it may be running these already, or may not. Check the bottom of this post for a way to test if scripts are executing. I attempted to do this with the instructions in a stickied thread in the forum, but I had a lot of problems so I basically cut through all the automatic installer BS and figured out how the end result should be, and set that up manually. The important thing is verifying contents of those install-recovery.sh and install-recovery-2.sh files. In the first one, there should be a line that executes install-recovery-2.sh, and this is the important part of that file.

The other main prerequisites are using a kernel that supports all that stuff (I use the one in the bottom of my above post), and having a busybox in /system/bin/busybox that has run-parts and insmod applets. You can test if this is installed by running /system/bin/busybox and see if it shows insmod and run-parts in the list of applets it has. If your busybox is installed somewhere else, change the path to it in install-recovery-2.sh

If you installed the same kernel I used, you can check if it's there by running "busybox uname -a" and looking for a date of "Dec 8 01:25:36 PST 2015" in the output.

As a troubleshooting measure, you can insert lines like:

echo "hello from install-recovery-2.sh" >> /data/startup.log

and then later investigate if that file and lines in it were written. This will tell you if different scripts are executing.

If you need more help, reply back with the steps you've tried and results. One more tip: Make *sure* that the files have unix line endings; if you use the text editor with es file explorer and write them by hand, you need to go to the top right button in the text editor and change the format to unix line endings. If they have msdos/windows line endings (the default for a new file!), it won't work right.

So my busybox was installed in /system/xbin instead of /system/bin. I adjusted the recovery2.sh file to

/system/xbin/busybox run-parts /system/etc/init.d

I added the echo command as suggested and the message successfully shows up in the startup.log. I also added an echo command to a the 50memory file in the init.d folder but that is not showing up.

Busybox has the appropriate applets. The kernel is also the same one you referenced. File permissions and headers look appropriate.

The memory tweak file is saved as /system/etc/init.d/memtweaks. The echo command I inserted in this file does not output.

I tried running this via terminal:
su
/system/xbin/busybox run-parts /system/etc/init.d

But i get a bunch of errors that say something similar /system/etc/init.d/memtweaks[39]: not found

Does it look like my permissions are messed up somewhere?

Edit: i should also mention that i do not have a init.d file in /system/etc/ since the ES file explorer would not let me create a folder with the same name. I ended up deleting the file init.d
 
Last edited:
I tried running this via terminal:
su
/system/xbin/busybox run-parts /system/etc/init.d

But i get a bunch of errors that say something similar /system/etc/init.d/memtweaks[39]: not found

Triple check that memtweaks has unix line endings, this kind of problem happens when linux can't understand the first line interpreter location, and it gives a somewhat misleading error message (there really is a file not found, and it's a result of attempting to execute memtweaks, so it's an accurate message... it's just that it doesn't clearly state that it's trying to find the interpreter)
 
Last edited:
Alright, I think I have it working after a work around. I'll summarize here in case some other newbie soul runs into this issue.

It turns out my 50memory-tweaks file had incorrect spacing (opened with a space and double-spaced between commands) because I copied and pasted into an email before putting in a file under init.d. After fixing that, I was able to manually execute the script file via terminal and the swap partition showed up when I used DiskInfo (app).

However, I still have an issue where the init.d does not run at startup. In fact, none of the scripts (4 total) will launch at boot and I can't figure out why. My install-recovery-2.sh file is exactly as you have it (spacing included). My install recovery-recover.sh looks as follows (excluding comments inserted by #SuperSU.

#!/system/bin/sh
/system/xbin/daemonsu --auto-daemon &
/system/etc/install-recovery-2.sh

I was messing with these recovery files last night and somehow lost root so I didn't want to continue messing around with them again (I succesfully re-rooted). As a work around, I used Kernel Aduitor's emulate init.d feature and the swap partition has been loading up at boot (after home screen loads). Unless there is an easy fix to re-link the install-recovery files, I'll live with this.

Thanks Bran N for your help!
 
No problem!

If install-recovery-2.sh isn't executing, check that file for similar structural issues, then check contents of install-recovery.sh to see if it's running the 2nd script. If you don't care to add other init scripts later, you could just hack install-recovery.sh to directly execute the memory tweaks.

If you lost root, that sounds like something that would happen when install-recovery.sh gets messed up; that file kicks off the su daemon and then runs install-recovery-2.sh
 
No problem!

If install-recovery-2.sh isn't executing, check that file for similar structural issues, then check contents of install-recovery.sh to see if it's running the 2nd script. If you don't care to add other init scripts later, you could just hack install-recovery.sh to directly execute the memory tweaks.

If you lost root, that sounds like something that would happen when install-recovery.sh gets messed up; that file kicks off the su daemon and then runs install-recovery-2.sh
So now that I've got the code working (still via the workaround), I'm going back to my original issue and that is with the Pokemon app. The memory adjustment is making a difference in that the app doesn't always force close (it still does sometimes) and that is an improvement.

However, it looks like this app is seriously memory hungry, at least compared to other apps I have on this phone. As shown in the attached screenshot, the swap file that was created looks like it was completely used. The app becomes terribly sluggish but this is still an improvement vs pre-memory tweak since the app would have stopped by this point. Also, some of the in-game character portraits fail to show up.

I don't understand the code in the 50memory-tweaks script but is the swap file dynamic in size or manually changed with the code? If it isn't dynamic, would it make sense to enlarge the swap file to reduce the app sluggishness? If it is limited by my internal memory, I could start unloading apps onto the installed 32GB class 10 sdcard via Link2SD to free up space.
Screenshot_2016-08-10-15-20-20.png
 
I actually installed pokemon on a phone today to play with it, I'm using a stock zv5 rom that I've stripped almost all the sprint garbage from and I also use greenify to kill extra apps that don't need to be running.

After getting in the game (even with my memory tweaks and de-garbaged ROM), there was about 50MB free memory left... so I can see how you'd be having problems if there were any other apps running!

You could extend the zram size by changing those 67108864 numbers to something larger. Probably they should be a multiple of 4096.

So, to go from 64MB to 80MB each, you could change 67108864 to 83886080 (80*1024*1024). This would probably get you 40-50MB more RAM capacity. After a certain point you would reach a limit where the program's working set is larger than the remaining uncompressed RAM and it would swap too much to be usable. I don't know at what point this would happen for the pokemon game, but it should be pretty safe to experiment.

Another option is adding more traditional swap space; you probably don't want to make it very large as you'd ideally like it to not be used a lot for performance reasons, but I'm guessing a good swap size might be in the 64-128MB range. Maybe /cache would be a good place to create a swap file. I think the best size would relate to how much of the base system stuff the phone runs at startup that is relatively unused and would better reside in swap.
 
Is therre a way tto run these scripts with root access removed? The issue is that the game no longer allows phones with root access. When I unroot the phone, the script no longer executes and I am back at square one. This is on the stock rom. On CM12.1, however, the script still executes when root is removed. The LTE and GPS conflict on that ROM, howver is a pita with this game. Any ideas on how to run those init.d scripts without root access? ,thanks.
 
Back
Top Bottom