Resurrection Remix Pie for the XA2 Ultra!

To God be the glory, I finally finished a XA2 Ultra build of Resurrection Remix! It’s Resurrection Remix, Pie flavored! You can check it out on XDA if you would like, but here is my post from there:

Here’s a quote from RR:

We work to make your android experience elegant. Handpicked features beautifully packed into one ROM.

**** This is an UNOFFICIAL ROM. Install at your own risk! ****

A huge thanks to the Resurrection Remix team! Another huge thanks goes out to XDA developer LuK1337 for all of the great development that he did on the Sony Xperia XA2 Ultra! He did most of the heavy lifting by making a great LineageOS build, upon which this RR is based. Please note, this is an UNOFFICIAL ROM.

Disclaimer: Resurrection Remix is not responsible for any damages to your device.
All of my work is completely available for any who wish to use or modify it. I didn’t make Resurrection Remix, the device trees, or vendor blobs. I simply used and edited existing material. A huge thanks should go to those who actually created this stuff.

This Unofficial Resurrection Remix Pie ROM was built for H3223 (discovery), but may work on some of the other variants, please try at your own risk. However, if you do try it on another variant, please be sure to let me know in the comments how it worked.

Rom Download link:
WARNING: This is only for those on firmware versions 50.1.xxxxxx, not for those who are on firmware versions 50.2.xxxx and up. I plan on working on updated firmware versions later.
There is an ENGINEERING and USERDEBUG build. The ENG build is marked “ENG” for testing purposes only. You can install anything you want, but I recommend not installing the ENG build.

Gapps link:
If desired. Personally, I’ve gone Gapp-less.

Installation instructions:
-Download ROM and gapps, and put them on your removable sdcard storage. (Or leave on your computer and flash with adb sideload.)
-Reboot into the bootloader.
-Fastboot boot your TWRP.
-Backup what you had. (Just to be safe.)
-Wipe everything and format data.
-Install Rom. (Either from adb sideload or from your removable sdcard storage.)
-Reboot to system and enjoy!
If you also want Gapps:
-Reboot again into the bootloader.
-Fastboot boot your TWRP.
-Install Gapps. – Optional
If you plan to install magisk (good idea), then let the rom boot the first time, then go back to TWRP and flash magisk. This is optional, of course.

What works:

So far everything that I have tried works, such as

Camera for pictures and video, Phone calls, Data 3g/LTE, Bluetooth, WiFi, MTP, etc….

What doesn’t: Nothing that I know of, but if you find something, please let me know so we can try to fix it!

Source Code:
Official website:
My device trees, vendor blobs, and kernel source:

ROM OS Version: 9.0 Pie
RR version: 7.0.2
ROM Kernel: Linux 4.4.153
Based On: The best of every ROM, but particularly based on LineageOS.

Created 2019-08-16

Linux – keep it simple



Engineering Pie Build for the Sony Xperia XA2 Ultra!

So it’s been a rough start for me, stepping into the modern world with a modern phone that has a/b partitioning and was Android 8.0+. I’ve built dozens of roms for dozens of phones, some that were even unsupported, and to God be the glory, I was moderately successful, but these modern phones have been a different story. My first attempt with the Xperia XA2 Ultra ended up hard bricked. Then, I built a pie version of AOKP, which did boot, but would immediately crash after getting to the home screen.

Today, however, was off to a much better start. I successfully tested my engineering build of LineageOS 16.0 (pie) for my XA2 Ultra (discovery). Everything seems to work well, and you are welcome to try it out. Keep in mind, though, it is an engineering build as opposed to a user build. Also note that this is for the 50.1.x firmware variants.

Granted, a lineage build is already available, and most of the work was done by Luke. I like to compile a build on my own, though, to make sure my system is set up properly and that the source material does work before I get started on my own roms.

Now to get back to that AOKP build…. Or should I start on a Resurrection Remix build instead?

Linux – keep it simple.

Going Gapp-Less, Again….


Don’t worry, you can put the tinfoil hats away. That being said, I’m going Google App Less (gappless) again. A few years back, I tried to go gappless, and it was rather difficult. Everything seemed to be tied into Google somehow, and I just couldn’t make it with the limited number of apps available outside the Google Play Store. This time around, however, is a different story.

With my new Xperia XA2 Ultra, I decided to flash LineageOS 16 (android pie), but I also decided not to flash the Google Apps package (Gapps). So, my phone was complete, without any of Google’s apps, such as the Play Store, Gmail, Google Photos, etc. It’s not that I distrust Google. I’m just not sure if I trust them. So, I thought I’d see how well it works to go without them for a while.

The truth is: I haven’t even noticed they’re gone.

The big things that you need to replace though, if you don’t have Google’s apps, are gmail, app stores, calendar, and photo backup and sharing.

The first thing I did was use the Chromium browser (the open source front runner of Google Chrome, essentially, Chrome without Google’s additives), and downloaded F-Droid. This app “store” is a repository of free and open source apps.

I know what you’re thinking, but F-Droid has come a long, long way since it’s humble beginnings. There are a lot of high quality apps on there now, covering just about every major category. Not only are there tons of apps in it, they are all free and open source. F-Droid even has an update system that makes sure you keep your apps current!


From there I downloaded QKSMS for all of my texting needs. It’s one of the best texting apps out there, open or closed source! (I borrowed the above picture so as not to show you all of my contacts….) It’s high quality, open source, easy to use and very nice to look at.

I also downloaded Librem Mail to handle all of my emails and replace the Gmail app. It supports multiple accounts, works great with Gmail and other mail accounts (like SDF) and supports PGP encryption as well. I really like it. The color coding and unified inbox is great.

Of course, I also downloaded AndBible, an open source Bible reading app, and FOSS Browser for web surfing, and AsteroidOS’s app to sync to my LG Watch Urbane smart watch (running AsteroidOS). A chess clock app, and several games like frozen bubble. Amaze for file browsing, Android CUPS for printing, GetBack GPS and PocketMaps and SatStat for GPS navigation, and a few other odds and ends.

I needed a calendar replacement, and I tried several, but Simple Calendar is my favorite. It can import “.ics” extensions, which you can export from your old Google calendar online and put onto your phone. It’s not synced with my Google calendar, but that is what I was trying to avoid anyways. I’d show some pics, but I have a lot of work related things on my calendar that I can’t show here. But it supports customization for color. The author likes orange, but I prefer blue, and fortunately you can change the color scheme.

The other big elephant in the room is a replacement for the Google Photo app with unlimited storage, which is really, really hard to beat. This is actually what started my most recent kick to try going gappless, as there is now more information about how they process photos is becoming more interesting and complex. Actually, they were talking about it in 2015 and 2017. For this reason, I set up my own home server running Piwigo photo manager.

I know you probably think I’m crazy, but consider this: on my home server version of Piwigo, without any AI intelligence looking at my photos, each photo comes in with exif data, which can (and usually does) include stats for each photo, date, time, location, phone/camera taken with, aperture data, etc. Without even trying, on the exif data alone, Google *could* know your location, what kind of phone you have, etc.

Even without location enabled, the date/time stamp plus amount of sunlight can narrow down where in the world you are with little effort (I know, I used to navigate a submarine in the Navy, and we would use stars and sun position to double check our navigation equipment). Let alone if they actually look at the photo. They would know all your friends, who you are related to, what you like to eat, what kind of car you drive, etc.

Anyways, off the hobby horse.

So, after installing Piwigo on my home server (you can host them online at BlueHost or other places as well), I then installed a simple app called SyncTool from F-Droid which allows me to FTP sync my phone’s camera folder to my home computer. For all of this, you don’t actually need something like Piwigo, but it is nice that my wife and I can use the open source app (there are non open source ones too) or a web browser to view our photos or share them with friends.

So far, it’s worked out really, really well. Albeit, you would need to be a little more tech savvy to set this up yourself. Fortunately, you could host it places that will help you with that, but then you get back to cloud storage. At least with my home server, I know exactly who’s looking at my photos.

On the other hand, all you need is a USB cable to just copy your photos to your computer every now and then. Just saying.

You might be wondering though, what about that closed source app I really need/want? Well, I have a few of those, like Bluino Loader, and arduino tool for using your phone to program arduino devices through the OTG cable. Well, it’s not open source, and not in the F-droid repository. Fortunately for me, though, there is Aptoide.

Aptoide comes in two variants, full and lite. I use the “lite” version myself. It uses less bandwidth and works faster, in my opinion. Aptoide is a Google Play Store alternative. The apps in this store are scanned with several virus scanners to ensure a good clean product. I’ve never had any issues with it myself.

For the most part, with a few exceptions, any non-paid app you can find on the Play Store seems to be here in Aptoide. It seems like they download the latest versions from the Play Store and host them here. Users can also make their own app store to host their own apps. (I did that once before… probably an old post about it on here somewhere.)

It has an update function, and you can also search back for old versions of the software, which is handy, like going back to the version before they started putting adds in! I’m not sure if it is regulated quite as well as the Play Store, and certainly not as well as F-Droid, so be careful to make sure the file scans virus free.

Another alternative is Amazon’s app store, which hosts all the usual paid apps you might need. One thing to keep in mind, though, is many apps require Google’s services running in the background to work. Thus far, I haven’t had a single issue with any of the apps I installed, though, which you can see is quite a few of them. Maybe you should try going gappless….

Linux – keep it simple.

Beginning AOKP Pie for the Xperia XA2 Ultra

I knew I couldn’t keep away from Android forever. It was only a matter of time before I jumped back into development. A lot has changed since my old rom building days. Back then everything was pre-treble, and there were no A/B partitions. That all changed for me with an Xperia XA2 Ultra.

It seems harder than I remember, and a lot more time intensive than it used to be. But, to kick things off, I started by building AOKP Pie for my new phone. To God be the glory, it does boot, but it doesn’t work right. Something is causing a pretty big hang up as soon as you are done with the setup. It locks up graphically once you get to the home screen for the first time.

Initial thoughts are perhaps tiles or menu item problems, but we will see.

Under the hood, though, everything is still running, even though the screen doesn’t update. If you use ADB, you can connect and do all the usual ADB command line stuff. But that doesn’t make for a very handy cell phone if you have to bring your computer everywhere so you can use it!

It’s also a bit harder as I had to switch to a nano sim card to be able to use the XA2. This is a problem because all of my other phones are not nano. It makes it difficult to switch to another phone while I test this out. Using a phone as your daily driver and for developing is a bit cumbersome and does slow me down quite a bit, but hopefully I’ll be able to work on it more later.

If you want to try out the “alpha” of my rom, you can download it on my MediaFire account. I will warn you, though, it doesn’t work very well.

Linux – keep it simple.

Fixing my bricked Sony Xperia XA2 Ultra


The photo above is not a mirrored image, it is actually two distinct Sony Xperia XA2 Ultra phones.

Whether it is fishing or phones, it all has to start with a story. Unlike fishing, though, this phone story really does start out as a big whopper! I guess I should back track to the beginning….

I was researching a new phone for Mom, and found that the Xperia XA2 Ultra is a really, really great phone. Sure, there are reviewers that were not enthusiastic, and some that were ecstatic, but I really felt that this would be a great phone for my mom. And I think it is. In fact, I liked it so much, that I picked up a slightly used one for myself. All was well.

Then, I decided to ditch the stock rom and start working on some custom stuff, as usual. The first thing I needed to do was test a current custom rom someone else made to make sure things work, and that I understand what’s going on under the hood. That is where things went horribly wrong.

I was following a guide on XDA. Several users had a similar guide, so I figure it must be right. Unfortunately, it not only didn’t work, but following the guide to a “T” bricked my phone. Here’s where I got hung up:

1. Download latest firmware with XperiFirm.
NOTE: When using mono XperiFirm will fail to unpack the firmware, you can do it manually using following commands:

for f in FILE_*; do unzip $f; done
unzip -d boot

2. Go to the directory where the firmware got downloaded to and remove following files:
– kernel_X-FLASH-ALL-18AE_0x00.hash
– kernel_X-FLASH-ALL-18AE.sin
– persist_X-FLASH-ALL-18AE_0x00.hash
– persist_X-FLASH-ALL-18AE.sin
– system_other_X-FLASH-ALL-18AE_0x00.hash
– system_other_X-FLASH-ALL-18AE.sin
– system_other_X-FLASH-ALL-9B8D_0x00.hash
– system_X-FLASH-ALL-18AE_0x00.hash
– system_X-FLASH-ALL-18AE.sin
– system_X-FLASH-ALL-9B8D_0x00.hash
– userdata_X-FLASH-CUST-18AE.sin
– vendor_X-FLASH-ALL-18AE_0x00.hash
– vendor_X-FLASH-ALL-18AE.sin
– vendor_X-FLASH-ALL-9B8D_0x00.hash
3. Turn off your phone, hold vol dn and plug in the USB cable, the screen should be off and green LED lit.
4. Run Newflasher, it’ll flash entire FW to your current slot then unplug the USB cable and power on your phone.
5. Turn off your phone, hold vol up and plug in the USB cable, the screen should be off and blue LED lit.
6. Enter this command: `fastboot getvar current-slot`, it should return something like this:
current-slot: _b
Finished. Total time: 0.001s
7. Now switch to the opposite slot by entering command: `fastboot set_active a` if the current slot is `_b` or `fastboot set_active b` if its `_a`, you should see this:
Setting current slot to ‘a’…
OKAY [ 0.012s]
Finished. Total time: 0.014s
Setting current slot to ‘b’…
OKAY [ 0.012s]
Finished. Total time: 0.014s
8. Unplug usb cable and repeat steps: 3, 4
9. Profit?

At step 7, I was supposed to switch to the other slot. So I did, but when I unplugged the USB cable and repeat steps 3 and 4, it bricked the phone on the repeat of step 4. After that, it never booted up. All that happened when plugging it in or pressing any button combo was a triple blink of the green LED, and nothing else.

So, I made a post on the thread asking for help. But there was none to be found. Shortly after my post, others started posting as well. They all had the same issue. So, I take comfort in my misery loving company. Although I wish other’s phones had not also bricked, I was somewhat glad that I didn’t “mess up”, since several others following the instructions had the same results. What went wrong? I really don’t know.

The big question became, how do I fix it? I had about $100 invested in this useless paperweight, so I really wanted to turn a positive result. Thus enter ebay. I started bidding on phones with broken screens. I really just wanted to buy another main board, or motherboard for the phone, but I couldn’t find any suppliers. Eventually, I won a phone with a shattered screen.

The screen may have been shattered, but the phone still turned on and worked, so I simply disassembled the two phones (my brick and the one with the shattered screen) and swapped the main board! Now I had a working phone with the good screen, and I was back in business!

Next, I went about the process of installing Lineage 16 (pie) on the phone. According to the instructions, you have to update your phone to 50.1.A.13.123 to use this version of Lineage, but my phone was already 50.1.A.13.83, so I decided to try it as is, without updating the firmware. Praise God, it worked! So I was able to unlock the bootloader, boot TWRP, and flash LineageOS 16!

WARNING: This worked for me on software 50.1.A.13.83, but I don’t think it works if your software version is 50.2+! Try this at your own risk. I can’t promise that it won’t brick your phone.

Here’s what I did:

  • Went to Sony’s Unlock Bootloader section of their website and followed the specific instructions there to unlock the bootloader. You have to input your IMEI to generate a code that you use to unlock it in fastboot.
  • Downloaded TWRP for “discovery” (the nickname for XA2 Ultra).
  • Turned off my phone, held Volume up and plugged in the USB cable, which turned it on and put it in fastboot mode.
  • Typed fastboot boot ./twrp-3.2.3-0-discovery.img

fastboot boot ./twrp-3.2.3-0-discovery.img
downloading ‘boot.img’…
OKAY [ 1.431s]
OKAY [ 5.131s]
finished. total time: 6.562s

  • The phone rebooted into TWRP. I suggest making a backup at this point. I did, and copied it to my computer.
  • Download the latest LineageOS 16 (pie) rom for your XA2 Ultra. I used the 20190621 nightly, and it worked great for me.
  • Then, since I was ready to install LineageOS, select wipe, advanced, and wipe everything, then format data! Really important, if you don’t format data, you can’t boot lineageOS, as it will hang trying to unencrypt the data directory.
  • Still in TWRP, go to advanced, and select sideload.
  • On the computer, type:

adb sideload <>

  • It will show a type of progress bar, and then will tell you when it is done. Don’t be alarmed if it “hangs” for a few minutes at the end, that was normal for me.
  • Reboot to system and enjoy LineageOS!

So, after a test run, I went back into TWRP, from fastboot, and flashed Magisk v19.3, and that worked great as well. I didn’t try Gapps, since I am actually going Gapp-less again. But that’s another post for another time….

Hopefully this was helpful for you. It was a lengthy process for me, and not optimal to say the least. If you do go this route, I will note that the Xperia XA2 ultra has been phenomenal for me. The battery life on Pie is incredible, the camera (that everyone loves or hates) is the best I’ve ever used, and I love it so far!

Linux – keep it simple.

Android meets Arduino!

As you guys know, I don’t really do “product reviews”. But if I find a handy tool, and use it, then it is fun to share that info with others. One such tool is Bluino Loader, an Android app that lets you create Arduino files, upload them to your boards, and even monitor the serial connection over USB. It’s pretty handy!

As with any “code from your phone app”, it is a bit tedious to type a lot of code with the Android keyboard. So I don’t use this app a lot when it comes time to create code. One of the big things that I like to do with it, though, is to monitor the serial output over a USB OTG cable.

Using the OTG cable, I can hook the Arduino Uno board directly to the phone, which also powers the board. Then I can open up Bluino Loader and click the icon at the top to monitor the serial connection. It can’t get much simpler than that. Within seconds I have serial data coming in and being displayed in the terminal. I even used it to test out the 433 MHz transmit and receive functions from my last test project. Worked like a charm!

Linux – keep it simple.

TWRP on the Urbane!

One of the side projects I have been working on is playing around with my new to me smart watch, an LG Urbane (W150). Among the different projects, I built TWRP for it. It had already been built before, but I like to build my own as well. You can download it here if you want:

One of the little highlights I did to make it more fun was to add a custom slider to the build. Now when you unlock or use the slider, you will see my icon on the slider!


Your welcome to use it if you like. Or you can head over to the TWRP homepage and download the official versions.

Linux – keep it simple.

Android Remote Control through ADB

Today, I stumbled on perhaps the most ingenious use of ADB ever:

Remote control your Android phone through adb

A program and write-up by Marian Schedenig, that they shared on their website. This is perhaps the best adb tool I have ever seen, in that it takes three simple principles and puts them together to allow you to remote control your phone over ADB with your mouse, without ROOT permission!


Here is a small gif that I put together from a screen recording of me using this awesome java tool. Essentially, it uses adb to take screen shots of the phone. Then it downloads the screen shot and updates it’s display. Finally, when you click on the screen, it sends an x/y co-ordinate to the phone over adb to tell it you swiped or clicked! It is absolutely brilliant!

The updates are a little slow, and you do have to edit the config file for your specific needs, but it works great, and is a really useful tool if you broke your screen or have touch screen issues, or just need to display your screen for an audience to view while you press buttons or work with apps. Since it is written in java, it is cross platform as well!

Linux – keep it simple.

YouTube milestone, 1000 subscribers want to know how to build Android!

Hey everyone! Praise God! Great news! I just passed 1000 subscribers on YouTube and I just wanted to take a minute to thank all of you for taking this journey with me.

It’s a bit funny, since I thought that posting the original videos about building Android was a one time deal, and after that I would be done making them. Through your encouragement and questions, I’ve now got over 240 videos all about building android and apps.

I have a new link for my channel:

But don’t worry, the old one still works if you have it bookmarked.

I’ve got a few more adventures in android building coming up, including upgrading the BLU phone to Oreo ( I was able to boot Oreo the other day, it doesn’t work very well, but it is pretty good progress for a lollipop phone ), including marshmallow and nougat along the way.

Please keep the questions and suggestions coming in, as these help me understand what videos I should focus on next. Down the road I hope to make some videos on building without ninja and jack, as well as building generic system images ( gsi ). Thanks again everyone!


BLU Life XL (L0050UU) TWRP Complete!

I was fortunate enough to be given a used BLU Life XL (L0050UU) from my sister when she upgraded her phone. The great part about having a new toy is getting to build Android for it from scratch, since no one has made custom roms for it yet. But to God be the glory, today I just completed making TWRP for it, so it will have a custom recovery to make backups and flash the new roms I’m hoping to make.

You can download the TWRP image here:

And, as always you can check out the device tree on my GitLab!

Linux – keep it simple.