Power cycle – NOT reboot – your PC after a Linux Mint version update

Why write complete documentation when you can just confuse users instead?

If you reboot your PC after a Linux Mint version update (e.g. 17.3 to 18) and find things to be a bit wonky, you’ll need to power cycle the PC. The reason for this is there may have been a kernel version update, and Linux Mint always boots into the latest kernel installed. However, it does this only if the PC is power cycled. If it isn’t, the new Linux Mint build will boot using the old kernel, which causes the problems you may be experiencing.

You’d think this would be in the official version update instructions, but this is Linux, and so caveats are left to unlucky users to discover for themselves.

How to get a radio logcat from the terminal in Android

It’s easier and less complicated than it sounds.

Radio logcats are useful for troubleshooting network connectivity, especially on modded (rooted &/or custom ROM) devices. If you’re reporting such an issue it’s often useful to provide the radio logcat in addition to the regular logcat to help the developer resolve the problem.

That “123456” isn’t supposed to happen; my network provider’s name should be there instead. This is a situation in which a radio logcat would be useful.

There are 3 ways to get a radio logcat:

Using MatLog

This is the easiest method.

  1. Install MatLog.
  2. Tap the Options menu icon.
  3. Tap Settings.
  4. Under Configuration, tap Log Buffer(s).
  5. Tap the logcats you want (Radio in this case, but you can request others too).
  6. Exit Settings.
  7. Tap the Options menu icon again.
  8. Tap File.
  9. Tap Record to start logcat collection.
  10. When you’re done, stop the recording by tapping the corresponding location. The logcat file will be at /catlog in your primary (read: internal or adopted external) user storage.

Using the terminal on your device

  1. Install Terminal Emulator.
  2. Follow these instructions to set Terminal Emulator to start with root permissions.
  3. Start Terminal Emulator.
  4. Enter logcat -b radio > /sdcard/radio_logcat.txt – This dumps the logcat file radio_logcat.txt at the root of your SD card. logcat -b radio works too, but I have no idea where it puts the file and have never tried it myself.
  5. Reproduce this issue you’re getting the logcat for.
  6. When you’re done with Step 5, close Terminal Emulator.
  7. Navigate to the root of your SD card to find the file there.

Using ADB on your PC

While I know this method exists, I’ve never used it. The command to enter is adb logcat -b radio, and adb logcat -b radio > /sdcard/radio_logcat.txt probably works too.

How to change SELinux Mode from Enforcing to Permissive

Alternative title: How to get FlashFire working on CyanogenMod 13

The best app for this is SELinuxModeChanger (SELMC). You can sideload it, but it’s best to get it via the F-Droid marketplace app.

SELMC enables use of apps such as FlashFire – which needs either permissive SELinux or SuperSU – on CyanogenMod (which is incompatible with SuperSU).

Don’t forget to set SELinux back to Enforcing after you’re done using Permissive, as it’s a really important part of Android security.

The above worked on a Samsung SM-G900V running the kltevzw build of CyanogenMod 13.

Stop fooling yourselves: Allo has NO chance

Google’s dogmatic view of how people (should) communicate puts Allo firmly on the path to failure.

Android Central asks:

What if there was an app that had the simple appeal of Apple’s iMessage, but was available for every person using an iPhone or an Android?

My response:

Unfortunately the article’s premise works only if Allo ships pre-installed on devices. Even if Google does that for Android, Apple would never allow it for iOS. This would leave Allo with the same need for manual installation as other 3rd party messengers, except those other messengers are already far more successful.

There’s an existing case of this: Hangouts. Hangouts was preinstalled on Android devices and worked automagically via Android’s Gmail account prerequisite. Yet it never took off on any other platform (except perhaps the desktop) and isn’t even in the top 5 messaging apps.

Facebook handled this challenge in a completely different manner: they simply opened up Facebook Messenger to use by anyone with a phone number. BOOM: Messenger is now the world’s #2 messaging app despite needing manual installation on all platforms.

I think it’s hilarious how every Android (fan)blog conveniently ignores that iMessage also has a desktop component that Allo doesn’t. So does Facebook Messenger and Whatsapp, which are available on all platforms, thus enabling them to span form factors.

Another mistake here is the extreme iMessage tunnelvision. iMessage may be big in the US where iOS rules, but Android rules the rest of the world. If Allo is indeed the anti-iMessage, that would make it a narrow and incomplete solution that addresses only one market.

Even Microsoft haven’t been as disingenuos as Google. Say what you will about Skype, but at least Microsoft haven’t pushed a completely incompatible service that no one has any real reason to use.

The market failure of Google Talk, Google Voice (as a messaging solution), and Hangouts shows that Google still doesn’t fundamentally get how people actually communicate. They think they can sell every feature/application solely on ideological purism. That doesn’t work in the real world.


How to install the latest emoji on Android (flashable .zip included)

Rooted or got an unlocked bootloader? You’re good to go.

NOTE: If you run CyanogenMod 13+ Nightly, you probably don’t need to do this.

Although Google has done a great job maintaining some Android features as standalone apps, fonts – which contain emoji – are still delivered via OTA updates. Android’s well documented slow (carrier device) OTA update rollout process is frustrating for those who want to use the latest emoji, ergo here’s how to do the latter.

The following process worked on a rooted Verizon Samsung Galaxy S5 (SM-G900V) running CyanogenMod 13 (Android 6.0.1) and TWRP recovery, but it should work on any Android 6.0+ device. Since the flashing process occurs entirely in the recovery environment, your device may not have to be rooted for it to work.*

This post uses and recommends the open source, very actively developed, and beautifully minimalist EmojiOne emoji, but can probably be used for other emoji sets too.

  1. Download the original flashable .zip created by the EmojiOne developers. Although it’s outdated, it can be reused for newer emoji by updating its contents, which is done in subsequent steps.
  2. Download the latest EmojiOne .ttf  file (you can also download the .ttf from any other emoji set if you’d rather use that instead)
  3. Unzip the file to \EmojiOneAndroid.
  4. Replace the emojione-android.ttf file at \EmojiOneAndroid\system\fonts with the one downloaded in Step 2.
  5. Re-zip \EmojiOneAndroid.
  6. Flash the above zip using your preferred method (Flashfire, TWRP, etc.). TWRP instructions are found in Phase 7 here.
  7. Reboot your device.

And that’s it! You should know have the custom emoji of your choosing installed to your device.

For convenience, I’ve uploaded a flashable .zip containing the latest EmojiOne .ttf here. I’ll try to keep it updated as new versions (RSS feed) come out.

Want these emoji on Windows? Instructions here.

*An alternative method of updating emoji is to manually replace the corresponding system file. However, this requires both root access and manually setting the correct permissions for the new .ttf file, and the device still has to be rebooted afterwards. Flashing a .zip as described here is far simpler and there’s less that can go wrong.

How to install the latest emoji on Windows

If only it were this easy in Android.

Like Android, Windows emoji are updated along with the OS. However, installing new emoji on Windows is much easier because Windows provides a GUI method for installing fonts within the OS itself. Here’s how to do it:

  1. Download the Windows archives for EmojiOne and/or Twitter Emoji for Everyone.
  2. Decompress the archives.
  3. In the decompressed folder(s), right-click the .ttf file.
  4. Click Install.

And that’s literally it. I used the above method on Windows 10; your mileage may vary on other versions.

Want those emoji on Android? Do this.

Good News: the Tea Party failed

Donald Trump’s blowout win in the Hoosier State spurred talk of third-party runs and internal revolt, though in truth the shock has not worn off enough for them to think clearly. Cruz’s unlikely Indiana denouement gave frontrunner Trump a clear path to the GOP nomination, suggesting there is no way to stop him from amassing the 1,237 delegates needed for a first-ballot nomination. […] supporters like Wright have said they will try to be elected as delegates to the national convention in Cleveland in hopes of continuing the battle in an intramural arena. Early media reports that the tea-party movement might support an independent bid for the White House was just talk, movement leaders say, but they agree there is no enthusiasm for Trump among those who paved the way for the raft of “outsiders” who have ousted longtime establishment Republicans around the country. Despite their dismay that Cruz was unable to stem Trump’s rise, they would not support any sort of “parachute candidate” offered by Republican leaders as a last-ditch alternative at the national convention, Myers said. Cruz’s strategy of using tea party support to stay in the race as other candidates fell, gaining victories where he could, especially in states that awarded more delegates through caucuses and grass-roots selection processes, was going according to plan. Trump was able to capture that share of the voting public that was voting for a person or for ‘anti’ rhetoric, rather than for policy and principles. While Cruz unquestionably was the tea party favorite among the dozen-plus GOP candidates, opinion polls showed that for voters self-identifying as tea partiers, the preference was not so clear. Trump actively courted well-known tea party activists, continuing a dalliance that started when he was considering a run for the presidency in 2012. Cruz’s beliefs may mirror those of the tea party perfectly on an ideological basis, but Trump succeeded in tapping into frustration and disappointment at a gut level.

Source: After Cruz bows out Texas tea party mulls what’s next – Houston Chronicle

Donald Trump notwithstanding, the utter failure of the Tea Party to gain much traction on a national scale is heartening.

Buying AMD wouldn’t fix Microsoft’s Surface Phone CPU problem (quickly enough)

Develop its own chips. This may not solve the issue of backwards compatibility, but it would give Microsoft more freedom to work through the problem. Developing chips, however, is costly, time-consuming, and not something Microsoft has much expertise in.

Source: The future of the Surface Phone is not looking good

The above article says the Surface Phone is in serious trouble because Intel killed its mobile x86 CPUs. At least one comment has suggested Microsoft should buy AMD to fix this. I disagree:

As much as I’d like MS to buy AMD, I don’t think that would solve *this particular problem.* AMD has no mobile x86 chips, & has been sucking at low power/high efficiency x86 for a while. Optimistically it would take 1 to 2 years to get an x86 SoC out of the AMD purchase, by which time UWP should (hopefully) be a sufficiently viable alternative to Win32 anyway.

A better option would be to push UWP and Centennial as hard as possible while maintaining Continuum and optimizing W10M for the Snapdragon 830.

That said, Surface tablets could use some AMD help. Adopting AMD’s APUs would fix the Surface line’s well documented GPU issues, at the expense of battery life (again, Intel rules at the latter).



Qualcomm Quick Charge is compatible with USB Type-C where it matters

Quick Charge users don’t have to worry about USB compatibility.

Benson Leung, a Google engineer, has been testing USB Type-C cables across the market to verify they meet the USB Type-C spec. He’s succeeded in getting some poor quality items off Amazon, which is very helpful to consumers.

In November he said Qualcomm’s Quick Charge (QC) technology couldn’t coexist with USB Type-C on the same connector because the latter violates the former’s spec:

While he’s certainly correct that QC violates the USB spec, the situation is lot more nuanced than that, and some of what he said is unfortunately incorrect.

I replied directly to that post, and some of the content of those replies follows.

Let’s get a few things straight about QC first, and then review Benson’s assertions using them:

  1. Unlike the status quo for USB†, OEMs actually have to go through a UL (a worldwide saftey certification organization) certification process for QC, detailed in this Test & Certification Application (PDF). Per page 3 shown below, devices must maintain “the plug-and-play ease of use of USB connectors” to pass certification. This implies that there is no data transfer use case in which a QC device would behave any differently from a non-QC one and certainly none in which the QC device’s behavior would be unpredictable.

    Qualcomm’s description of QC’s USB behavior is buried in a UL certification document.
  2. For all non-QC use cases, QC devices behave like any other normal USB device. Per page 3 above, QC certified devices must support “Conventional USB charging,” defined as “1A at 5V” (though I’m not sure how they get 15W from that. PIV, so power should be 1A * 5V = 5W).

    UPDATE: I contacted Qualcomm about this and got this useless reply:

    Any information other than what is listed on our website (URL listed below for your reference) is Proprietary to Licensees.

    Unfortunately we are unable to assist with your inquiry.  However, we keep a list of compatible devices at Qualcomm.com/quickcharge.  Hopefully this has the answer to your question.

    Otherwise, we recommend you follow-up with a vendor that carries this product and seek their feedback on your technical questions.

    Please note, Qualcomm is the technology provider, not a manufacturer of consumer products and therefore we are unable to answer your product specific question. We hope this direction helps.

    Thank you for your inquiry,
    Qualcomm Technologies Inc.


    FWIW, in my experience QC (2.0) chargers slow charge non-QC devices and don’t (can’t?) fast charge them.

  3. It follows from points 1 and 2 above that QC uses USB data lines for power only when connected directly to an A/C adapter, which has no use for a data line anyway.
  4. While I can’t find any publicly available definition of the QC spec, it’s based on a patented technology called HVDCP (High Voltage Dedicated Charging Port). The “Dedicated Charging Port” detail name implies the tech works for ports that do nothing else but provide power and doesn’t work for data ports. Here’s the patent (which I haven’t read).
  5. Fairly detailed implementation info can be found by searching “HVDCP” on Google. Here’s a very detailed product preview (PDF) by ON Semiconductor for their NCP4371 HVDCP controller.

Points 1 to 3 disprove Benson’s claim that the “Type-A port can’t be used to communicate to your PC at the same time you fast charge” via QC, as QC devices would fail the certification requirements if that were the case. In addition, implementing QC on a PC Type-A port would be disingenuous as it would disable data transfer for QC devices, thus killing most of the Type-A port’s functionality. No PC OEM in their right mind would do that.

The HTC 10LG G5, and all other Quick Charge 3.0 and lower devices will work just like every other Type-C compliant device for every use case except when connected to a QC charger, in which case they behave like a QC device.

You’re probably wondering how we got to the current charging standards mess. I’ll probably explain that in a later post.

†The USB-IF is addressing this.

How to start Android Terminal Emulator as root

As usual with Linux, anything beyond simple use cases is a minor ordeal.

You probably know the su or sudo commands on Linux, but those don’t seem to work in the Android terminal.* Fortunately, you can get around that via a terminal emulator setting. Here’s how to do that:

  1. Install Android Terminal Emulator.
  2. Open the above.
  3. Tap the options menu icon.
  4. Tap Preferences.
  5. Scroll down to Shell.
  6. Tap Command line.
  7. Enter /system/xbin/su -c "/system/xbin/bash -" as shown below.

    One thing Android does have in common with desktop Linux is even the simplest things are always unnecessarily complicated for the sake of engineering ideological purism.
  8. Tap OK.
  9. Back out of Preferences.
  10. Close the terminal window.
  11. Restart the app.
  12. Approve the root permissions request that pops up.

You’ll now have superuser permissions every time you start the terminal.

Thanks bitmaster2000 for the method.


*I suspect the main reason for this is Android doesn’t handle user/administrator/root accounts in the same manner desktop Linux does. On Android every app is a user in Linux parlance, while Android users are something else entirely.