How to Fix Titanium Backup Force Close on Start

Recently I did a hard reset on my phone to fix a problem I was having with Google Play Services. After a successful reset I got right away at restoring all my previous apps using Titanium Backup.

Initially I installed a newer version of Titanium Backup to do this before deciding to downgrade to an older version. Now here's where all my problems began.

The older version for some reason couldn't launch and instead always crashed on start with the error: Unfortunately Titanium Backup has stopped.

Consequently, I decided to reinstall the newer version however to my surprise it also now couldn't start. At this point I started trying random fixes like clearing app data to deleting the Titanium Backup folder. Unfortunately, none of this worked.

So what exactly was I missing here? Could it be possible that Titanium Backup was leaving leftovers in the system that were inadvertently crashing the app? I set out to find out that and interestingly my hunch was confirmed.

Inside the data/data/com.keramidas.TitaniumBackup directory I found a folder called files that had two files: busybox and sqlite3.
titanium backup leftovers
Titanium Backup System Leftovers

Since I had root permissions, I deleted this entire folder and reinstalled Titanium Backup. As I had expected the app did work this time round.

If you're facing a similar issue you can perhaps try and see if this will resolve the problem for you.

Convert Subtitles using Media Player Classic (MPC-HC)

Media Player Classic Home Cinema (MPC-HC) supports subtitles in various formats such as SRT, SMI, SUB, SSA, ASS, TXT etc. Not only that but the player also includes an option to automatically upload or download subtitles from online subtitle providers such as OpenSubtitles.

A somewhat hidden feature of MPC-HC is that it can also convert subtitles between different formats. The process is however not straightforward which is why call it hidden.

Convert an External Subtitle

1. Put the subtitle file in a folder along with its video. A different video should also work.

2. Open the video with MPC-HC. The player by default will load the external subtitle and ignore any embedded subtitle.

If it doesn't ensure the subtitle is in a supported format, is not corrupted or go to Options > Subtitles > Misc and ensure the option Prefer external subtitle over embedded subtitles is enabled.

3. With the subtitle loaded, press CTRL+S or go to File > Subtitles and select Save Subtitles... .
save subtitles

4. Doing that will open the Save as window. In the Save as Type box select the subtitle format to convert to. The following subtitle formats are the supported for saving:
  • SubRip (.srt)
  • MicroDVD (.sub)
  • Sami (.smi)
  • PowerDivX (.psb)
  • Sub Station Alpha (.ssa)
  • Advanced Sub Station Alpha (.ass)
subtitle formats

Click the Save button to finish the export and conversion.

The TXT format is conspicuously missing in the Save as formats. As an alternative you can use PotPlayer to save to TXT as well as all the above formats.

Extract and Convert Subtitles from a Video using PotPlayer

PotPlayer offers a lot of customization when it comes to subtitles. Some of these include:
  • a wide support for different subtitle formats e.g. SRT, SMI, IDX, SUB, SSA, ASS etc.
  • subtitle editing and sync control
  • uploading and downloading subtitles from online subtitle providers
  • subtitle translation

The list goes on and on. An additional feature that I haven't included above is its ability to extract, or rather, save subtitles that are already in a video file. This works on all video formats that support subtitles and that PotPlayer can open such as MP4, AVI, MKV, DVD/VOB etc.

This is however strictly for embedded subtitle formats and not those that are hardcoded ("burnt") onto the video. I'm not sure if those are even possible to extract.

Of course you can always use a program purposefully built for this sort of task such as MKVToolNix or Subtitle Edit but this is much quicker assuming you already use the player.

As an added bonus, the subtitle extraction can also double up as a subtitle converter as you can save the extracted subtitle in a format different to its original.

Convert or Export a Subtitle

1. Open a video with an embedded subtitle using PotPlayer.

2. Press CTRL+ALT+S or right-click to view the context menu then navigate to Subtitles > Subtitle Saving > Save Subtitle As...
save subtitle as

3. Browse for a folder where to save the subtitle then in the Save as type box select the format to save the subtitle in. By default, the original subtitle format is selected for you.
subtitle formats

The supported subtitle formats available for saving include:
  • Subripper (.srt)
  • Sami (.smi)
  • Sub Station Alpha (.ssa)
  • Advanced Sub Station Alpha (.ass)
  • MicroDVD (.sub)
  • Psb (psb)
  • Text File (.txt)

Click the Save button to finish the export.

Enable Android App to Write to External SD Card with Magisk

Since the change in Android storage permissions that came with Marshmallow (6.0) not all apps are able to write and in some cases read the external storage. In particular are old apps that haven't been updated for years.

With that said a good number of apps that are in active development also have problems writing to the external SD card. This is either due to the developer not enabling this option or due to some device specific issue.

It would seem therefore that the only "solution" is for one to get a device with a generous internal storage or better yet a device that has dispensed with the SD Card slot altogether.

Fortunately, this doesn't have to be the case. Provided you have root permission this is something that you can resolve relatively quickly and have both newer or legacy apps write to the SD Card.

Enable Magisk ExSDCard Access Enabler (Oreo and Nougat)

1. To get started flash Magisk and install Magisk Manager if you haven't yet. Your phone will require a custom recovery like TWRP to accomplish this.

2. Open Magisk Manager and in the menu go to Downloads and search for the ExSDCard Access Enabler module. Install then reboot to finish installation.
install module

That's it, no additional settings are required. After rebooting your external SD card will now be mounted in a new location: /mnt/media_rw/[SDCARDNUMBER]/

Define Path for App

Depending which app you're using you now have to follow this path when selecting a directory (e.g. a download folder) in the SD Card. In some apps you may have to enter the path manually.
storage path in fora
SD path in an old version of Fora Dictionary

To ensure this setting works properly keep the module enabled at all times.

How I Fixed No Internet on a Safaricom Wi-Fi Hotspot

Rarely do I use Safaricom for internet but somehow I recently came by one of their generous data bundles. Naturally I decided to make use of it on my desktop to at least get some work done.

Usually I just tether my phone to my desktop's Wi-Fi adapter rather than using my trusty unlocked Safaricom modem. It is much faster not to mention I don't have to fret about missing any calls, though I can cumbersomely answer them using the modem.

Unfortunately, this particular Wi-Fi hotspot became quite problematic unlike what I'm used to when using Telkom or Airtel Kenya bundles. The problem: the computer successfully connects to the Wi-Fi hotspot but reports it has no Internet.
hotspot no internet

Thinking something might be wrong with the hotspot I tried both USB and Bluetooth tethering both of which resulted with the same error.

Next I tried running Windows Network Diagnostics which reported the following:
Your computer appears to be correctly configured but the device or resource (dns server) is not responding.

Thinking I had found the problem, I tried changing the DNS servers for the hotspot on my computer including to those of Google DNS, Open DNS and CloudFlare DNS none of which worked. I even went as far as changing the DNS server on my rooted Android phone which of course failed spectacularly.

Meanwhile I could still use the data bundle normally on my phone. A hotspot made with my Telkom line on the second SIM slot however worked perfectly regardless of which DNS server I used.

At this point I started suspecting foul play by Safaricom, after all some network operators are known to block tethering for end users. Nevertheless, I could not find evidence of this.

So after trying different public DNS servers with no actual change I decided to search for alternative DNS servers from Safaricom.

The first place I landed was on a forum discussing Your Freedom VPN. While completely unrelated to this, somewhere in that thread someone suggested to use a different DNS server:

All this time my Safaricom internet had been using the DNS Server: So I changed it to and what do you know, the hotspot started working.

Now I'm not implying that this specific DNS Server will always solve this error for you. Safaricom uses different DNS servers and this happens to be just one of them.

Nevertheless, one thing is clear form this: should you encounter such an issue the first place you should go looking is in your DNS server settings. Try different public DNS and should those fail too, try different Safaricom DNS servers.

Now I should mention few moments later after making the change the new DNS server started acting up - it would lose internet for a while then recover on its own.

I suppose it wouldn't be farfetched to just conclude Safaricom has unreliable DNS servers, which is rather amusing as I've never before experienced this kind of issue with their "unreliable" competitors.

How to Add an End of Call Tone or Vibration in Android

Typically, when a call ends, be it after hanging up or having been unanswered, the phone signals the termination of the call with a tone or a beep if you like. This has been common to all the phones I've had the pleasure of using, that is from feature phones running Symbian, Android and not forgetting Windows Phone.

My current and relatively new Android device, a Xiaomi Redmi Go to be specific, however seems to be the exception to the rule so far. The issue is quite peculiar though as it seems to beep on some calls while on others it's just, well silent.

While at first this seems like a minor issue, the consequence of not having that beep is that on several occasions I've been left stupidly talking to myself because my caller run out of airtime, a rather common occurrence in a country where the overwhelming majority of mobile subscribers use prepaid plans.

The turning point however came when I recently lent out the phone to my dad to make an urgent call only for me to realize that he had held onto it for an inordinately long period without talking.

As it turned out the call had gone unanswered, and while it was no longer ringing, he never got the cue that the call had ended since he was still waiting for the beep. That's the extent to which this beep has conditioned us! Anyway after that experience I knew I had to find a solution.

Adding the End of Call Tone without Root

Initially I had thought this would at the very least require root to fix and so for a few months I shelved the idea of getting a fix for this issue. That's until recently when I took a gamble and ended up successfully rooting the Redmi Go. I was now ready to dive in.

So as usual I checked for fixes online and went through the Xposed and Magisk Modules but came empty. Ironically what I could find was quite the opposite; that is, people complaining that the beep was too loud and looking for ways to get rid of it.

My search however did eventually lead me to the Play Store where I found one app that somewhat could accomplish what I was looking for but only through vibration.

The app, On Call End (not call log), had last been updated in 2013 though it did install and run well on the Redmi running Oreo. Unfortunately, the app did not leave up to its expectations though you may want to give a try.

A google search for a similar app luckily unearthed another a similar app called Call End Tone Free. This app was however no longer available on the Play Store instead I could only find it from third party stores, top of the search results being the rather ubiquitous Uptodown.

With no better options, I ended downloading the app from this site. I took their word for it that their apks are safe; apparently they've a tight partnership with Virus Total to back this claim.

Fortunately, the risk was well worth it. The app though outdated and with an interface straight from the days of Gingerbread did surprisingly fix the issue for me. Even better it allows you to select a tone of your liking or to use a vibration instead.
end call tone settings
End Tone Options

I ended going with the latter which I've found to be more effective as it cannot be drowned out by surrounding noise.