[Samsung Epic 4G Touch] trifthen:
NOTE:

If you came here looking to fix recent problems with LoS in recent builds of Jelly Bean, be aware that this utility has not been tested with JB or ICS at this time. I figured LoS was a solved problem, so retired the project. I'm looking into it again, and may have something out later depending on how much has changed in the OS updates.

Introduction

Has your phone ever had a circle with a line through it instead of signal bars? Has your phone ever shown signal bars, but all calls and texts fail until you reboot? Well, those situations are called Loss of Service, or LoS, and while we can't actually stop them from happening yet, those situations can be detected and repaired. The Loss of Service Daemon (LoSD) does that, so you don't have to!

It does this by:

Restarting problematic radio daemons when detected.

Rebooting when all attempts to fix have failed.

In addition, it can create a log dump of various system logs for debugging purposes.

Requirements

Phone must be rooted.

An init.d compatible kernel.

Busybox must be installed.

Many ROMs and custom kernels do this automatically, but check the feature of your basic tool-chain before installing.

Installation

All files are located in my github projuct, if you'd like to get a closer look at how all LoSD works. But what you really want to to know:

Download LoSD

This will be a file you can flash using ClockWorkMod. Simply copy it to your internal or external SD card, reboot into recovery, and flash. The next reboot will be running LoSD.

NOTE : Installing LoSD will automatically remove -viperboy-'s LoSChecker, as they should not both run at the same time.

Download LoSD Uninstall

The above package will fully remove all traces of LoSD from your phone. Flash if you're having problems or no longer need/want LoSD.

WARNING! Do not wipe anything before or after install of this utility! It is not a ROM. You will be left with an unbootable system.

Usage

If you installed the flashable zip, your phone will automatically launch the LoS daemon at every boot.

Or you can call it manually to obtain debugging logs!

LoSD dump

When called with the 'dump' command, LoSD will dump all debugging logs and exit, creating a timestamped directory in LOGPATH (/data/local/LoSD by default), as well as a tar archive named logs.tar.gz. This lets you capture situations where LoSD did not detect a LoS, and send the logs for analysis.

Frequently Asked Questions

These are taken from the README file that gets installed with LoSD. There's more dev-related info in that file, so give it a look!

Q: Will this restart the radio or the phone if I lose 4G?

No. 4G is actually a separate radio from the CDMA radio used for texts and phone calls. This script ignores the 4G radio entirely and can not trigger no matter what happens to the 4G radio.

Q: Will this restart the radio or the phone if I'm using WiFi?

No. Turning on WiFi *will* disable your 3G data, but will leave the CDMA radio in an available state so you can still receive phone calls and texts. The LoS daemon knows the difference, so feel free to use your WiFi as you please. LoSD may restart your radio while you're on WiFi, but only because your CDMA radio stopped responding and you wouldn't have received any texts or phone calls if it didn't try and fix the radio.

Q: Where do I find the logs?

Logs produced when the radio is restarted, or the phone is rebooted, are stored by default in /data/local/LoSD in a directory time and date stamped for when the fix was attempted, or a reboot was triggered.

Q: Help! My log directory is getting huge!

By default, LoSD will not dump system logs when it repairs a LoS. But you may have enabled it on your own if you modified the configuration file. If you're in a spotty coverage area, the log directory may start to fill with several timestamped log dumps, each of which are around 5MB. If you'd like to stop this, please ensure your LoSD.ini configuration file does not contain the following line:

DUMPLOGS=1

Such a line will enable log dumping, which again, is disabled by default!

Q: I think I have LoS the daemon didn't detect. How do I get logs?

Very easily! LoSD has a built-in logging command! Just type this into a terminal, or an 'adb shell':

su
LoSD dump

This will create a timestamped directory just like LoSD had detected it. In addition, a file named logs.tar.gz will be dropped in your LOGPATH directory (that's /data/local/LoSD by default) you can send to us. We recommend putting it in dropbox, or some other binary-file hosting site.

Credits

Many thanks to -viperboy- for the original concept of checking for LoS with a script.

HaiKaiDo gave us the idea of restarting the radio daemon before rebooting.

If I'm forgetting anyone, please PM me!