Scrcpy on openSUSE | Display and Control Android devices over USB

Every once in a while, I am in the position where I am tethering my computer to my phone and lazy me doesn’t like to interface with the phone when my fingers are on a real keyboard. I can’t say exactly why I am so anti-mobile at times but it’s just how it is sometimes.

I was introduced to this application called Scrcpy which I think look like “screen copy” so that is how I verbally communicate it.

Installation

To install from the openSUSE software library, I navigated to openSUSE’s software site.

https://software.opensuse.org/package/scrcpy

I chose the Experimental Repository, Hardware

Alternatively, you can install the Snap package

sudo snap install scrcp

Whatever works best for you. I have tried both on openSUSE Tumbleweed and they both work well.

Changes to the phone

The Android device you intend on using requires at least API 21 (Android 5.0) in order to utilize this feature.

Make sure you enabled adb debugging on your device. This is done by going into your Settings > System > About Phone then scroll down to the “Build Number” section and tap that until you are in “Enable Developer Settings”.

Back out of the About Phone menu and enter the { } Developer options menu.

Scroll down to the Debugging section and enable Android debugging. This will allow you access the ADB bridge interface from your computer. I do want to make it clear that at this point, it is not a good idea to just plug your device in anywhere. You had better know that USB port and trust it. Random public chargers are probably not a good idea unless you trust the custodian of it.

Optionally, you can enable the ADB over network where you can debug over Wi-Fi or USB networks. Unless you are on a trusted network, this is also not a good idea. For example, I would not recommend this on a public hotel or coffee shop Wi-Fi but home is a good bet. The neat thing about this option is that you can interface with your device and not be physically plugged into it.

Now the phone is set up and ready to have the display piped over to your desktop.

Run

Running requires you to go into the terminal as well. Plug the Android device into your openSUSE (or other) machine’s free USB port. You will be given a screen, similar to this:

I have selected to “Always allow” from my computer. Select OK and run the this in terminal:

scrcpy

And that is all there is to it. You can now interact with your phone through your computer. Interestingly, Plasma disabled compositing when I initiated the scrcpy command. It could easily be reactivated (Shift+Alt+F12) and it didn’t seem to affect performance of the window into the device.

Wireless Connection

Scrcpy has the capacity to do adb over TCP/IP. This can be activated by going into Settings > System > Developer Options scroll down to “Debugging” and Enable ADB over Network.

You will be given a warning which you have seen previously and will be given an IP with a port number. In this case, I the IP and Port numbers are: 172.20.2.250:5555

Next, ensure your device is not plugged into your computer, just to prove to yourself it is working over the magical Wi-Fi. Next, enable TCP/IP on your computer:

adb tcpip 5555

Connect to your device

adb connect DEVICE_IP:5555

Where DEVICE_IP is the IP Address of the mobile device. Then run just as previously run:

scrcpy

It is also possible to adjust your bit-rate in the definition if you see fit. An example of usage is here.

scrcpy --bit-rate 2M --max-size 800

This is just scratching the surface of what you can do with Scrcpy. It is pretty useful and an alternative, to input and interact with your phone. Since I am not a fan of interacting directly with the phone. There are numerous other features you can read about here from the project GitHub. This is just enough to get you started.

Final Thoughts

If nothing else, this is a fun application to play with, even for the novelty factor. These are only just a few highlights of this really cool application. What are the use cases for this? I can see many, really. I am not a huge fan of the phone interface. I prefer typing on a real keyboard. I have a tendency to leave my phone in another room on a charger. With Scrcpy, I am able to check mobile apps only from my computer as opposed to directly handling the phone. Another use case would be to record the screen for the purpose of a pre-recorded demonstration or in a classroom environment, demonstrate the function of an application projected from the computer hooked into a projector. The limitations of this application is bound by the limitations of your own imagination.

References

Scrcpy Project on GitHub
Scrcpy from software.opensuse.org
Scrcpy from Snap Store

Restoring my Nexus 6P To Working Order

As a kind of Christmas gift to myself, I spent the 5th day of Christmas disassembling and installing a new battery into this “shelved” phone of mine. It is something I have wanted to do since the battery started fading and I finally got to it.

I bought a battery replacement kit on eBay for this phone that had most of the tools I needed. I am not going to provide you a tear down video, there are plenty of those on YouTube and if you are interested in that, click here. This will tell you everything you need to know and possibly more. I am going to focus more on the ares of difficulty and the installation of LineageOS.

Pixel was an okay phone but was a bit too small for my hand, I didn’t like how it fit in my phone holder in my truck, the battery didn’t end up being much better on that phone after about 6 months of use and I couldn’t put LineageOS on it because it is locked down.

Repair Supplies

The video gives you a list of tools to use to do the repair. I didn’t have everything, exactly as they suggested. I grabbed my whole kit of tools available and this is what I ended up using:

Plastic triangle opening tool of two different thicknesses

Tweezers. I used whatever tweezers I had in my tool box which ultimately came from the bathroom medicine cabinet. I would recommend a better set but something is better than nothing

Box cutter. I didn’t have a precision knife set as per recommended in this video and I would highly recommend something like that and I won’t do another repair without it. The box cutter worked but that is a little like using a sledge hammer when all you need is a 16 oz claw hammer. Sure, it gets the job done but makes a bit of a mess of your project surface.

Paper clip in place of a sim card ejection tool.

Heat gun. Mine was probably overkill but it worked fine.

Small Cross-recessed (Phillips) screw driver. The battery kit came with screw drivers but I prefer my nicer, more professional set. Even I can show up to a party in the right outfit from time to time…

The video recommends playing cards but those were chewed up pretty quick on me so I had to use some more ridged cardboard to slide between the battery and the body of the phone. Your mileage may vary. In my case, this “Hello Fresh” junk mail bit worked better than a playing card. Basically, anything ridged that is not so stiff as to crease the battery and cause it to vent with flame.

I used a spudger but not a fancy black nylon one, this one was able to pry and get between the frame and the screen well enough.

Double sided sticky tape to put the lower back panel back on

I also used a dental pick to help with the picking at the device. I recommend something like this for so many of your smaller projects, especially if you have giant sausage fingers.

1 hour of time to devote to the project

The two areas of extra care for this project is removing the glass around the camera and the battery.

The glass needed to be loosened up with the heat gun, gently, as to not over heat the device. Doing so can cause irreparable damage to the device. Once I got this portion heated up enough, the glue started to let go of the glass plate enough to allow me to get that knife in there. This would have been easier with smaller, more precise tools. Thankfully I didn’t break it.

Once the glass and the plastic cover are removed, that will expose the 6 screws holding the device together.

The spudging tool will be required to carefully pull the body of the phone from the screen assembly. I was “fortunate” that this phone has a bit of an area of buckling around the volume button and made it a bit easier to get the case away from the screen assembly.

The phone comes apart and exposes all the little secrets of its design. It also exposed the fact that this thing is incredibly dirty and needed a good cleaning with some isopropyl alcohol.

The other area of concern is the battery. It is imperative you take extra care as to not bend the lithium-polymer battery too much or this will “vent with flame” and it can be a rather spectacular event, one that I was not interested in having. There is a small amount of clearance that will allow you to start prying away at this battery. I carefully used the heat gun to loosen the glue here as well. Once I got the battery up a little, I used several card like things to pry this up.

The rest of the instruction per the video was spot on but the emphasis on the glass and the battery was a bit understated, from my view.

Reassembly of the device was pretty straight forward. It assembles pretty easily. Install the battery, I reused the adhesive pads from the previous battery. Then carefully install the cables, make sure they are fitted well. The glass still had enough adhesive on it that it will keep the glass in place. The bottom plastic bit needed some double-sided tape to keep it in place.

Since this phone wasn’t exactly a “looker” when I started, I am not concerned about how it looks when complete. It is also in a case that will help to hold things in place.

Upgrading the Operating System

This was actually a lot more time consuming than fixing the battery, I am sorry to say. When I started the phone I was greeted with this error about a vendor mismatch.

I have seen this error before so it wasn’t a big deal in fixing this. I downloaded the Google image and flashed the vendor image as per the instructions I found here. In short, here is the process I went through:

  • Downloaded the nightly ROM and the Gapps (mini Gapps) and put them on your phone
  • Download the Google Angler image
  • Wiped device (do not wipe the internal storage)
  • Flashed the three image files (using fastboot commands)
  • fastboot flash bootloader bootloader-angler-angler-*.img
  • fastboot reboot bootloader
  • fastboot flash radio radio-angler-angler-03.78.img
  • fastboot reboot bootloader
  • Flash the Lineage ROM and the mini Gapps
  • Wipe cache, reboot

I admit these instructions are not as verbose as I normally give. If you have any issues, please leave a comment or email me and I will take the time to make it more verbose.

After this process, the phone would not recognize SIM for cell service. I tried flashing the radio and vendor image and still, nothing. I used this little trick from here which also didn’t help, it only told me that it didn’t know the IEMI.

That trick is, on the dial pad, Type in *#*#4636#*#*
It exposes some very interesting bits of information about your phone.

I reinstalled using these instructions several times. Service mode didn’t provide me any solutions and I feared that I somehow erased the very definition of the phones cell radio identification.

As a kind of last ditch effort, I installed the stock Android image and the cell phone signal miraculously worked again. Installing Lineage OS once again left me with no access to the radio. After some more web crawling, the solution sort of come from this Reddit post that said the issue has something to do with the system lock not releasing the cellular radio to the system.

Sure enough, after disabling all the security features, and rebooting the cell service works once again. The specific issue is with this “Secure start-up” where it requires a bit before starting the system. There is some kind of bug in this that is causing issues. Where exactly, I have no idea.

In order to implement this solution, to disable the “Secure start-up” feature and prevent the SIM from being locked out. Go to, Settings > Security & Privacy > Screen lock. I prefer a pin lock screen and when you do enter your desired pin, you are asked for your “Secure start-up” preference. Say “No”, rebooting the device and the cell service will work normally.

I have installed all the important applications and I am back to full mobile capacity… which… is a pretty short list, really.

Final Thoughts

Phones today are, frankly, terribly designed. The process to replace the battery is unnecessarily tedious. At this point, I would consider any phone without a user accessible battery a terrible design and I will not purchase another phone that locks away a battery. That signals a design with planned obsolescence. All that does is encourage greater levels of e-waste. I have great hope in the up and coming PinePhone that may not have the performance capabilities of a modern “flag-ship” phone but no matter how much it may lack in processing power, storage, or RAM, it does have a replaceable battery. That means it won’t be a turd of a design that you get from the likes of Apple, Samsung or Huawei.

LineageOS is now a must to have a good Android experience. I tried to go several months on Google-locked Android and frankly, that is not a good experience. The lock down of applications on the phone is terrible. I should be able to remove whatever applications I want. I have reaffirmed that I will not purchase another locked mobile device, newer does not mean better and stock Android is vastly inferior to Lineage OS Android. It’s not even a fair comparison on the significant user improvements the Lineage team puts into Android.

Ultimately, I look forward to the PinePhone. To have an unlocked, user serviceable device that may be a bit less capable on raw performance is a welcome upgrade to just about any mobile phone out there. Give me a headphone jack and access to my battery! I am now done with these mobile nightmare devices.

References

Nexus 6P Repair Video
Lineage OS installation Guide
Reddit Post on SIM not detected
PinePhone from Pine64
Factory Install Google Android on Nexus 6P
Vendor Mismatch Fix for LineageOS on Reddit

VirtScreen on openSUSE | Turn a Tablet into a Second Monitor

When I take my laptop and I go into a mobile mode, I’m often missing a second or third screen. Frequently, my need isn’t having full motion video or anything of that sort, it’s just the ability to have text displayed in some form, be it PDF or web page, beside my main screen. Most of the time, that is how I use my multi-screen layout. One screen is my main workspace while the others display reference information.

I came upon this long lost solution on the BDLL discourse from Eric Adams.

https://discourse.bigdaddylinux.com/t/use-your-tablet-as-a-monitor-with-virtscreen/104

Key difference in my implementation versus his, both of us using KDE plasma. His solution is probably more elegant and could probably better take advantage of my AMD GPU but my solution is quick and dirty but gets the job done.

Host Device

Since this package is not available in the openSUSE repositories, I downloaded the AppImage here:

https://github.com/kbumsik/VirtScreen

There are further instructions on that page but I am going to only highlight how I used it on openSUSE Tumbleweed with the Plasma Desktop Environment. Looking at the system requirements, I had to install X11VNC

sudo zypper install x11vnc

Since I used the AppImage, I had to make it executable. To do that in terminal, navigate to the location of the AppImage and run this:

chmod a+x VirtScreen.AppImage

Alternatively, if you are using Plasma with the Dolphin file manager, navigate to the location of the AppImage, right-click, select Properties (or Alt+Enter when highlighted). Select the Permissions tab and select the Is executable button.

Upon Launching it, I set the resolution of my Tablet, which is my HP Touchpad that I set up with F-Droid. I made an adjustment to the Height to adjust for the navigation buttons that seem to get stuck in the ON position.

I selected the Enable Virtual Screen.

Next, I needed to Open Display Settings to arrange the screens.

Unfortunately, there was an error that caused the display settings to not open. I went into the preferences to see what the other options were. Since I know I didn’t want Gnome, I went with ARandR.

Since it wasn’t installed, I went to openSUSE Software and searched for it.

https://software.opensuse.org/package/arandr

After installing ARandR, VirtScreen still could not launch ARandR. Thankfully, I was able to launch ARandR using Krunner (menu works too) and made the adjustment to the screen location.

The next step was to activate the VNC Server within VirtScreen by setting the password and opening up the appropriate port in the Firewall. Since the openSUSE default is Firewalld at the time of writing. You can either do so with the GUI, which is pretty straight forward or use the terminal.

To get the active firewall zone

sudo firewall-cmd --get-default-zone

Assuming you are only using the default zone, Public (adjust based on

sudo firewall-cmd --zone=public --permanent --add-port=5900-5903/tcp
sudo systemctl restart firewalld

If you are not running Firewalld you will have to adjust for your particular firewall.

The final step is to activate the VNC Server.

Client Device

The client device in my case is my HP Touchpad. The client software I set up that worked best from the F-Droid store was AndroidVNC. If you have one that you prefer, by all means, use that instead.

This is the easy part. Here, set the Connection Nickname, Address and Port. I did set it to the 24-bit color but would get better speed with a lower color depth but not so much as to make the the display much faster, it does, however, make the display much more annoying to look at.

Once you command the client to make the connection, and everything else is done correctly, the client will connect to the host and you will have a second, albeit a bit sluggish 2nd monitor to use for any low frame-rate functions.

I use this for displaying PDFs, web pages like wikis, chat clients or anything else that doesn’t require high frame rate. This is often useful when I am doing different admin types of tasks that require me to look at published documents and I am away from my SuperCubicle (home office). It is very, very handy.

Final thoughts

This is a great little project for making old tablets, such as my HP Touchpad, even more useful. It just doesn’t take much processing power by the client device to peer into a VNC host.

Issues I have noticed. On some Wi-Fi networks, I am not able to make the connection between the devices. I’m sure either ports or some sort of walking is happening that is preventing me from making the connection.

When you set up your VNC client on the tablet or whatever, you have to be sure that you take into account loss of screen real-estate due to whatever the client does on the boarders. Optionally, find a way to turn off the pointer on the client. If you don’t, you get weird flickering. Sometimes, the client or host will just disconnect. I have not yet tracked down the root cause of the problem but it doesn’t happen frequently enough for me to do anything about it.

Full motion video is not actually possible with this. I wouldn’t recommend watching any YouTube videos but more static web pages or using it for chat clients like IRC, Telegram, Discord, or the like is perfectly usable.

How often will I use this? Only when I have to and that is at least monthly. There are a few issues with the setup but it is perfectly usable with just a bit of fiddling. Hopefully this will continue to get attention and work done by the developer.

Reference

VirtScreen on GitHub.com
Use Your Tablet as a Monitor with VirtScreen on discourse.bigdaddylinux.com
HP TouchPad in 2018 on CubicleNate.com

HP TouchPad in 2018.1 Update

HP_TouchPad-19-Title.pngEarlier this year, I repaired and updated my HP TouchPad with the latest firmware I could find. I have used it regularly since for numerous tasks and even tried to shoe horn it into other tasks to see if it would improve my workflow. Was all that effort worth it? Did I really need to take the time to fix and update a device long past it’s end of life date? Here is what I can tell you about its usage.

Issues with the HP TouchPad

It’s old and a bit slow, really but it has a fantastic screen, especially since it is 7 years old. My expectations are not real high for its reliability but overall, it has surprised me. Every so often, the thing will lock up and shut down but I haven’t been able to determine the cause, just random fluke.

Updating The HP TouchPad

Unfortunately this process isn’t automatic but, it isn’t exactly difficult. Really, if you have done this much to your HP TouchPad, this shouldn’t be that much of an issue. The latest firmware can be downloaded from here, which is the same source for firmware I used earlier this year. To install the update, it required a reboot into the bootloader and install it from there. There were no issues installing the update.

HP_TouchPad-11-Update

Unfortunately, this is an older version, LineageOS 11 which is still Android version 4.4.4. It doesn’t appear to be a problem for the applications I am using.

Applications

There are several basic applications I use on a regular basis. They work great and I use them reliably on a near daily basis. Outside of the vanilla LineageOS applications, these are what I have installed to enhance the capabilities of this Tablet.

KDE Conenct

For the media player controls over my main machine. I use this often to start and stop media I use for helping in Home Education as well as a remote control over the living room computer so I can stop the Netflix. Great for those Saturday mornings when the kids need to take a break from relaxing and knock out some chores. Also, very conveniently, copying text to the clipboard on the computer or the tablet will allow me to share its contents back and forth. So, I can copy a URL from the computer and paste it into the browser, sit and read the page on the couch as if I were curled up with a good book.

Syncthing

Only synchronizing the “Default Folder” as I don’t take pictures with this so the “Camera” folder which I don’t use on this common share. The primary purpose is to quickly share something with the tablet, like a PDF or a screenshot from my Linux machine for convenient portability.

Ghost Commander

My  new favorite file manager on Android. It is reminiscent of the “Midnight Commander” file manager from times

HP_TouchPad-13-Ghost Commander.png

Fennec F-Droid Web Browser

This is a build of Firefox for Android that works very nicely

Document Viewer

A fine little application to view PDFs. Probably the most used application on this tablet as I do reference a lot of PDFs

LibreOffice Viewer

For viewing “office documents” that are not PDFs. I have used it for the open formats as well as the proprietary office formats of which we are all so familiar.

Telegram

To so much for writing messages as reading messages. I don’t really enjoy the touch screen keyboard as compared to the real thing but I’ll use it in a pinch.

All of these applications are available through F-Droid. Updates are convenient enough but you will have to approve the permissions of the updates of each application individually.

Regular Usage

HP_TouchPad-17-Touchstone Charger.png

I primarily use this tablet as a document viewing device: PDFs, Office Documents and images. I also use it for casual web browsing, as a second screen for displaying a reference when I am away from my Cubicle. I have a very convenient inductive charger for the tablet called the HP Touchstone Charger that allows me to just set the tablet in it, with the case and it will just charge. No fiddling with the Micro USB cable to get the thing to charge. It is an incredibly convenient accessory for this tablet. I can’t help but wonder if there are other tablets so nicely designed. It really is as if HP really thought through the design of this tablet very well.

Final Thoughts

This 7 year old tablet is still a fantastic piece of hardware. I still think that if this machine were to be running a full fledged Linux Desktop, it would be much more useful and possibly run more efficiently. I am a bit concerned that I cannot find a well functioning, more modern version of Android which is why I am increasingly more interested in a more open Linux OS for it.

For as long as this device lasts, I will continue to get squeeze every penny of use out of it. When it does finally give up, I will miss it as it has been an incredibly useful tool that has made daily life just a bit easier.

Related Links

HP TouchPad Tenderloin LineageOS Firmware

https://f-droid.org/

HP TouchPad in 2018

HP Touchpad with Plasma Mobile and openSUSE — Fall Time Blathering

HP Touchpad with Plasma Mobile and openSUSE — Fall Time Blathering

HP_TouchPad_Title-2.png

After working with Plasma Mobile on the Nexus 5X and although it is not quite ready for prime time, it is nearly there. It is so close, I can taste it and I am very ready to see Plasma Mobile as all I see on my mobile. I am also continually seeing interest on the aging HP Touchpad. It too is a fine piece of hardware that is still very capable and now, I can’t help but wonder how much work it would be to port Plasma Mobile to that hardware. I see that there has already been work with the Halium Project for the HP Touchpad. Unfortunately, my understanding at what goes on at the base hardware level is EXTREMELY limited.

Plasma Mobile Experience

Nexus 5X-PlasmaMoble-01The look and feel of Plasma Mobile is pretty great. Like all things Plasma, it is highly customizable. What that means to me, I can make my Mobile experience exactly the way I want, not something dictated by a corporation as to how they intend for me to use my technology.

So then I thought, I know Plasma Mobile is still in early stages, many things are still being taken from Plasma Desktop but that really should only require some adjustments. Over time, Plasma Mobile, much like the Desktop Counterpart could very well end up being the nicest, cleanest and yet most customiziable interface ever.

The HP Touchpad

HP_TouchPad-12-LineageOS.pngThe Touchpad, by today’s standards is not spectacular, but it isn’t terrible either. Its CPU is a dual core Scorpion clocked at 1200 MHz. It has 1 GiB of RAM and either 16 or 32 GiB of storage. It is certainly adequate for many tasks. I can’t help but think how fantastic this Touchpad would be with proper Linux, access to the breadth of open source software.

HaliumThe good news is, the possibility of having a working Plasma Mobile interface on the HP Touchpad may be closer to reality than not. According to the Halium Project on GitHub, three have already been tests completed successfully. This is, unfortunately far outside my skill sets so there isn’t much I can offer here but I am watching the project with great interest.

How Useful Could It Be?

kontactI know multimedia is the thing… streaming Netflix, watching YouTube and GPU intensive games is the common usage for tablets but that is not what I am interested in doing with it. There are far more interesting and productive activities. Using the Touchpad as my window into my digital recipe collection, reference technical documents, access to Kontact, the KDE Personal Information Manager, or at least parts of it for time and task management.

HP Touchpad with Plasma Mobile and openSUSE

opensuse-logo2Then I did some more thinking. I have only begun dabbling in the fantastic Open Build Service, but what if that system could be used to build an openSUSE Tumbleweed distribution specific to the HP Touchpad, tested by the openSUSE openQA and released in a similar rolling snapshot to the regular openSUSE Tumbleweed. Even with a fraction of the stability, reliability of upgrades and the breadth of software, this would be a fantastic improvement as compared to what is available today. It would be a gigantic library of goodness with many the most useful tools readily available.

Now What?

Even though the HP Touchpad is far past its end of life, I continue to use it on a daily basis. I am very interested in seeing the HP Touchpad get a more genuine Linux upgrade and would like to toy with it now but I have to personally determine, do I want to take my HP Touchpad out of service? Would I even have the time test and experiment on it or do I continue to use it as it is? It is very usable today and works mostly well but a project like this might give it enough life for perhaps several more years and be more useful than it is now. For now, I will keep tabs on it but maybe in the very near future I will be able tip my toes in this arena.

Further Reading

Halium for HP Touchpad Project on GitHub

HP Touchpad Specifications

Open Build Service

Halium Project

open QA

openSUSE Tumbleweed Home

HP Touchpad in 2018

Plasma Mobile installation on Nexus 5X

KDE Kontact Personal Information Manager

Plasma Mobile installation on Nexus 5X

PlasmaMobile-00

I have been watching Plasma Mobile for a little while and have tested it in a virtual machine but haven’t made it a priority to get some real hardware to test it on until now. I recently broke my Samsung Galaxy 5S… again… but in many ways it was falling apart. I could not unlock the bootloader and every consecutive update from Samsung made the phone less usable. It would get hot and chew through the battery quickly but be incredibly slow. Looking at the battery usage it was always the Android System that was on top of the list. The last time it was used was when navigating to a destination, the phone became unresponsive, the screen went black and was incredibly hot.

Recently, it was announced that KDE Connect is available for Plasma Mobile which was the tipping point for me to say, it is time to test Plasma Mobile on something other than a virtual machine. So, I purchased Nexus 5X on ebay for $80, I figured, why not.

Nexus 5X-Android

Using this guide, Unlock for Beginners, as my base, I put this together as a distilled version of the guide that can be used on openSUSE but probably any other distribution of Linux as well.

Going through this, it took me a bit to really understand and take a course of action so to make this easier for someone of similar goals. I am running this on openSUSE Tumbleweed but the instructions for Leap should be the same. It really was a rather painless process so this doesn’t write-up doesn’t have much for trouble shooting.

Download the Tools

After some extensive reading and poking around, I chose the minimal method to perform this task. Instead of the full Android SDK, just the ADB Tools.

First step was to download the ADB/Fastboot (platform-tools)

I put it in my Projects folder.

~/Projects/adb/

In that folder, extracted the downloaded zip file, which is easy to do with KDE Plasma’s file manager, Dolphin. If you would like to do it in the terminal (your version may vary):

unzip platform-tools_r28.0.1-linux.zip -d platform-tools

Next, navigate to the folder, platform-tools and executed:

./adb version

which gave the output

Android Debug Bridge version 1.0.40
Version 4986621
Installed as /home/cubiclenate/Projects/adb/platform-tools/adb

Activate Developer Mode on the Nexus 5X

Navigate to: Settings > System > About phone

Scroll to the bottom of the list and tap Build Number 7 times. It will give you a countdown of how many more times you need to tap it after a few taps

Enable adb/USB Debugging

Navigate to: Settings > System > Developer options

There should be three toggles that are on:

A toggle at the top of the screen that should be On

Toggle OEM unlocking to On

Nexus 5X-Developer Options

Scroll down to the Debugging section and ensure that USB debugging is toggled On.

Prepare Desktop Linux

On my openSUSE machine, check to see if you have a plugdev group.

cut -d: -f1 /etc/group | sort | grep plugdev

If you don’t see plugdev returned, add it.

sudo groupadd plugdev

Then add your username to the plugdev group

sudo usermod -aG plugdev $LOGNAME

Logout and log back in for the group changes to take affect

Flash the Phone

Send the command to reboot into the Fastboot Mode

./adb reboot bootloader

The phone will reboot into this screen:

Nexus 5X-Fastboot

Note the PRODUCT NAME is bullhead. More on that later.

Just to verify, I checked that I could do the fastboot thing

./fastboot devices

And it gave me the output

00493e6b7693cba7        fastboot

I have no idea if I should leaving that number is a security risk or not but in this case, I’m not terrible worried.

Next step was to perform the oem unlock and make this phone do some complaining

./fastboot oem unlock

Nexus 5X-Unlock Bootloader

Select YES to Unlock the bootloader on the Mobile.

It should give you very encouraging output similar to this:

OKAY [301.881s]
Finished. Total time: 301.881s

Point of No Return

This process will erase the complete memory of the Nexus 5X. If that matters to you, be sure to back up everything that matters to you.

./fastboot format cache

Output should be similar to this:

Couldn’t parse erase-block-size ‘0x’.
Couldn’t parse logical-block-size ‘0x’.
Creating filesystem with parameters:
Size: 100663296
Block size: 4096
Blocks per group: 32768
Inodes per group: 6144
Inode size: 256
Journal blocks: 1024
Label:
Blocks: 24576
Block groups: 1
Reserved block group size: 7
Created filesystem with 11/6144 inodes and 1422/24576 blocks
target reported max download size of 536870912 bytes
erasing ‘cache’…
OKAY [  0.081s]
sending ‘cache’ (5688 KB)…
OKAY [  0.214s]
writing ‘cache’…
OKAY [  0.063s]
finished. total time: 0.357s

Then format the User Data:

./fastboot format userdata

With the output similar to this:

mke2fs 1.44.3 (10-July-2018)
Creating filesystem with 6661115 4k blocks and 1667904 inodes
Filesystem UUID: fea22557-b249-45e8-aca6-3230969b647b
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

Sending ‘userdata’ (4272 KB)                       OKAY [  0.181s]
Writing ‘userdata’                                 OKAY [  0.064s]
Finished. Total time: 0.388s

Now your phone is ready to flash Plasma Mobile. Though, it can also be noted that if you want to install custom firmware, that could be done as well.

Flashing Plasma Mobile

For this initial foray into Plasma Mobile, I used the the Neon Architecture reference.

In my ~/Projects folder I created a subdirectory PlasmaMobile

mkdir PlasmaMobile

Then pulled the latest Plasma Mobile flashing tool from GitHub

git clone https://github.com/plasma-phone-packaging/pm-flashtool.git

Changed directory to the location of flashtool

cd pm-flashtool

While still in fastboot mode, in terminal, Executed pm-flash

./pm-flash

This required a bit of interaction. It is important that you do not install the wrong image on the phone, something about bricking the device… which is bad.

+ CACHEDIR=cache
+ echo ‘Waiting for device to be in the fastboot mode’
Waiting for device to be in the fastboot mode
+ fastboot getvar product
product: bullhead
finished. total time: 0.020s
++ fastboot getvar product
++ head -1
++ awk ‘-F: ‘ ‘{print $2}’
+ DEVICE_NAME=bullhead
+ confirm ‘Connected device is bullhead, is that correct? [y/N]’
+ read -r -p ‘Connected device is bullhead, is that correct? [y/N] ‘ response
Connected device is bullhead, is that correct? [y/N]

I input y then hit enter as this is a bullhead device which is verified on the Fastboot Mode.

Unfortunately, due to my lack of prep work, I ended up on a Google Splash screen. Thanks to the fine folks on the Plasma Mobile Telegram group I was instructed to run the Flash-Vendor application to put the correct driver blob that would be compatible with Plasma Mobile

./flash-vendor

As soon as it completed, the phone rebooted and very shortly thereafter, I was greeted with a snazzy looking Plasma Mobile desktop. My initial impressions are very positive. I like the look and feel. The application menu is a different take from what you would see on Android but perfectly functional.

Nexus 5X-PlasmaMoble-01.jpg

The settings tool is similar to what you would see on the Plasma Desktop with real customization options. The kind of options that bring an ear-to-ear smile to your face.

Instead of Google Play, the application manager is Discover. This manages your updates as well of which I was told I had 309 updates waiting for me…. but I learned that updating in this manner is not yet supported, so don’t do that.

The authentication dialog feels like it isn’t really meant for mobile but I can overlook that small bit.

The network manager is by far the best network manager I have ever seen on a Mobile. I will admit, I am quite biased about this bit as I think the Plasma Desktop Network Manager is the best I’ve seen yet.

PlasmaMobile-Network Manager.jpg

I have only one issue, at the time of this writing, that prevents me from using this full time. I cannot actually place any calls with it. I am sure that the fix is forthcoming or maybe the problem is entirely with me. Once I have that hammered out, I will update this accordingly.

Final Thoughts

I am just now exploring the fine offerings of Plasma Mobile what it can do and what it can not do. The scope of this blathering is just the installation of Plasma Mobile on the Nexus 5X. I will continue to noodle around with it in hopes of making it my full-time daily driver mobile device in the very near future.

If you have a compatible device and some time to experiment, I recommend this as a fine afternoon activity. Perhaps you can even help out with the project and further the cause of having a truly free and open platform on your mobile.

References

Plasma-Mobile Project Site

XRA Developers Forum, Nexus-5X How To For Beginners Guide

platform-tools-latest-linux.zip

Neon Architecture Reference

Nexus 5X specifications on GSM Arena

HP TouchPad in 2018

HP_TouchPad_Title.png

I purchased two HP TouchPads a few years ago when they were fairly inexpensive. I wanted a larger tablet that wasn’t built cheaply. They worked great for a while but started to act up. I used them less and less until they just stopped working all together. I put them on a shelf and forgot about the for quite a while.

A buddy of mine who is still seemingly a huge fan of the HP TouchPad diagnosed that one had a main board and battery failure while the other just a battery failure. I put them back on the shelf and that is where they sat, once again. He followed up with me wondering if I bought a battery yet (keeping me accountable) to which I did not. He told me he had an extra battery and dropped it off along with the needed tools to disassemble and make the repair.

HP_TouchPad-01The guide I looked at made it seem like it would be easy to take the tablet apart, just work your way along the sides, as described and carefully separate the two halves. What seemed to be missing from the article was that you have to shim the screen from the backing to keep it from clipping itself back shut again.

Once the tablet was apart, I disconnected the halves and started the process of removing more pieces until I could get the battery out. I only ended up taking out 3 of the internal components.

Upon removing the HP_TouchPad-02.jpgUSB board, I noticed that one of the wires for the little vibrator motor had somehow broken free from the board. A fine explanation for why this unit didn’t have haptic feedback. Thankfully, my soldiering skills were adequate enough to correct the issue.

HP_TouchPad-04

There were only 4 screws retained the battery and it should be noted that once the screws have been removed, the battery will not come out easily as it is also adhered to the device. Very careful and slow removal of the battery was warranted as I learned my lesson about removing a lithium polymer battery years ago on another project. I didn’t want to rupture the sells and have a little fire or at least lots of heat and smoke.

Once I freed the battery from the case, I noticed that I could take a shortcut and remove the battery without disassembling all of the components as outlined in the guide. I freed the battery from it’s compartment, set it aside, took the new battery and using a flat tipped screwdriver, was able to insert the connector of the new battery into the board and fasten it to the tablet body.  I effectively skipped the last 15 steps of the guide I used and reassembled it.

Success… but it didn’t turn on.

I figured that the thing needed to be charged so I let it charge overnight. It still didn’t turn on and I felt obligated to let my buddy know that this TouchPad is dead and asked if he wanted the battery back. Then, he asked if I did the hard reboot, hold power and volume down for 30 seconds.

HP_TouchPad-06-Boot Loader.jpg

I did just that and immediately it went to the ClockworkMod boot loader menu. I selected the CyanogenMod image already installed on this TouchPad and I was very pleased to see that it was fully functional.

Since I wasn’t going to leave this with a 2 year old version of Android on it, I began my search for an updated ROM. There are several options out there and some of the newer versions of Android seem to have Bluetooth or camera issues. I didn’t want to have any hardware issues so I ended up going with this version here. Everything works but it is an older version of Android with security patch updates.

Another requirement I made is that I wanted to ensure that there were no Google Services on this tablet as I didn’t want to weigh it down with all the data scraping and mining services. All I want from this tablet is to do causal web browsing, reading ebook and PDF documents so there is no need to install the Gapps package. I also wanted to see how useful a simple de-Googled tablet would be.

F-Droid-siteSince I did want to have access to applications on this device, I installed F-Droid. F-Droid is similar to the Play Store, an available catalog of FOSS (Free and Open Source Software) Android applications. Most of the applications I want to run are available there and anything else it is possible for me to sideload or install using Yalp.

The applications I installed:

  • KDE Connect
  • Telegram
  • Syncthing
  • Fennec F-Droid, a Mozilla based web browser
  • Barcode Scanner
  • Book Reader
  • Yalp, allows you to download apps directly from Google Play Store as apk files.

Installed Using Yalp:

  • Discord
  • ASTRO File Manager

HP_TouchPad-05-apps

Modifications to improve my usage experience

I turned off the KDE Connect Telegram Notification. Not because I don’t like Telegram but because I don’t want multiple notifications on my Desktop Linux machine for the same message.

To do so, withing the KDE Connect Application on the paired device Menu > Plugin settings > Notification sync configure button, scrolled down to Telegram and uncheck it.

HP_TouchPad-07

Next, I made the KDE Connect Keyboard an input option by going into System Settings > Language & Input and checked KDE Connect Remote Keyboard

HP_TouchPad-08-Input

I set up a folder on the Tablet called Sync and using Syncthing have it tied to two of my openSUSE desktop Linux machines. It is an easy and efficient drag and drop method of putting files on the tablet instead of using KDE Connect. I figure, more options are better than fewer options for sharing data.

HP_TouchPad-10-syncthing.png

Using Dolphin in KDE Plasma to drag and drop files right on the HP TouchPad file system is such a fantastic feature. This, combined with having a folder that I can use to sync between all my systems and a shared clipboard gives me the truly practical form of desktop/mobile convergence.

HP_TouchPad-11-file manager

What I like

HP_TouchPad-09The size of this tablet is perfect for how I intend on using it. I can check things, look up things, and use it for accessing references in either PDF, ebook or my favorite resource, the openSUSE Wiki. To copy and paste from the tablet is made super easy, thanks to KDE Conenct. Copy on the tablet, paste on the Desktop. This tablet has such a nice weight and feel about and the protective folio-style case is great. I have all the functions and features I need to do what I set out with this 2011 built tablet. Sure, it is old and well past a tablet end of life but it is fast, very snappy and responsive.

What I Don’t Like

I have an outdated version of Android but with the security patches back-ported though, I do like the dark look of the older Android UI, so lets call this point a wash. The downside is, it doesn’t allow for certain newer KDE Connect features as noted here by one of the developers.

I also may have done something to disconnect the internal speakers as I don’t hear sound unless I plug into the headphone jack or Bluetooth speaker. I am not really using this for multimedia and the workaround is satisfactory.

I am not a fan of the rear facing only camera on the tablet. It also distorts the image during the “live view” but the picture itself has the proper aspect ratio. Unless if I want too take some awkward selfies, I don’t see this as a terrible issue.

Final Thoughts

I am very glad to have a working HP TouchPad once again. Is it indeed limited but I am not using it like a brand new tablet, I am using it closer to how a tablet was used 7 years ago. I am also not using this tablet like I would a proper computer as that would require a keyboard and mouse and once I have added those items, I may as well use a laptop. This fantastic little device does just what I want it to do, superbly.

Using KDE Connect and Syncthing, I can have the proper mobile/desktop convergence with my openSUSE Linux desktops in a highly practical manner anywhere I go, without the need for a third party service.

I am not sure what I will do with the other tablet now. This one is just so great, I might have to get the other one working just to keep in my cubicle. Would I recommend this tablet to someone else? For most people, probably not, unless they like to noodle around with technology.  Was it worth taking the time to fix it? Also, probably not but the satisfaction for me out of making this older yet perfectly usable hardware functional once again makes it more than worth the time and effort.

Further Reading, useful links and such

I Fix It Guide for the HP TouchPad

Tenderloin Android ROM I have installed on my HP Touchpad

openSUSE Wiki

KDE Connect Developer Nico’s Blog Post

KDE Connect Community Site

KDE Connect Remote Keyboard

KDE-connect-02I recently stumbled into this cool little feature with KDE Conenct, the ability to use your desktop Linux machine as your keyboard input to your Android device. I tested this on my Samsung Galaxy S5, Moto X and HP TouchPad running Android. Assuming you have given KDE Connect a try, you may or may not have used this feature. If you haven’t tried it, you may want to see how it works for you.

I am not a fan of the touch input on tablets and phones, the input is just too slow and cumbersome, so I tend to use a laptop for just about everything. There are unfortunately a few applications that will only work on mobile devices. I do have a Bluetooth keyboard that I have connected from time to time to more efficiently use the mobile device but I don’t need another keyboard on my desktop that I would use intermittently, at best. Being able to type from my Desktop Linux machine right into my Android powered phone or tablet whenever needed is a welcome feature and far better than using the screen to touch or swipe type.

For instructions on setting up KDE Connect in openSUSE, follow this link or here for everyone else.

On the Linux Desktop side, make sure you have selected Remote keyboard from the Desktop

KDE Connect Settings-01

Screenshot_Samsung_S5_Language_InputFor your Android device(s):

Go into your Settings menu. Search for Language and input > Set up Input Method (Might be under “Default” on some Android devices)

You will then see several options, check KDE Connect Remote Keyboard to activate it as an available keyboard.

The notification drop down on the Android device, There is an option to “Select keyboard”. Assuming that the Android device is working properly, you will be able to select the input keyboard.

The Keyboard switcher is either in the in the notification drop down of which I see on my Samsung Galaxy S5, and my HP TouchPad. On my Moto X, I have an option in the global keys along the bottom to select my Input Keyboard.

Moto X Keyboard SelectorIt appears that my Samsung Galaxy notification on the keyboard doesn’t actually do anything when selected but the HP TouchPad works like one would expect. I find that the Moto X method to be the best demonstration of exposing the keyboard input selection.

Now, back on KDE Plasma (I can’t speak for any other desktop), you can input into the Mobile Device clicking on the KDE Connect icon in the System Tray and enter text next to Remote Keyboard.

As you type in this dialog, you will see the text immediately display on the connected device. I find it strangle pleasurable to type on my computer to input text on the tablet, or SmartPhone. I spent several minutes sending messages thru Telegram even though I have a Telegram client for Linux Desktop, realizing that was a bit KDE Connect System Tray-Keyboard Inputsilly, I opened the SMS app on my phone to send messages to those friends that I know wouldn’t care at all or just fire off a few pejorative comments regarding my excitement for this newly discovered feature.

I have used it several times and find this feature to be very stable, reliable and for the few days I have been using it, I can count on it to work as expected. All around, this is a great feature that is built right into KDE Plasma.

Final Thoughts

I am not sure how often I will use this feature but I am certainly appreciative to have it available. I do tend to avoid any services that lock me to a “mobile device” for communication but there are a few that unfortunately have me locked, for now. Thankfully, the hard working folks of the KDE Connect Community have been working hard to make life a bit better for those that prefer keyboards to touchscreens.

Further Reading

KDE Connect Desktop Mobile Convergence

openSUSE wiki installation and configuration of KDE Connect

KDE Connect Community Site

Albert Vaca’s blog about KDE and KDE Connect