Audacity on a Mac running Catalina


Well, we haven’t seen an Apple product on this website in a long time. I think the last time I wrote about an Apple product, I was trying to emulate a Mac so I could use the IDE to emulate an iPhone, so I could convert an Android app into an iPhone one. But, here we are.

And the backstory: I do some IT work for a local church that I attend. They use a Macintosh computer in the sound room to record the sermon audio, as well as display projector images or songs, and the like. Recently, the computer automatically updated itself from 10.14 to 10.15, or what Apple calls “Catalina”.

Unfortunately, this caused a problem. The sound recording program, Audacity, still launched like normal, and looked like normal, but it didn’t act like normal. First, it couldn’t open any files from previous recordings to be edited. To make matters worse, it couldn’t record any audio. After fiddling for a bit, I decided to make sure we had the latest version of Audacity, and to my surprise, I found this article on their website outlining how Audacity was not compatible with the latest Mac version.

Ultimately, the issue seems to be a matter of permissions. Fortunately, someone had found that if you elevated your permissions by launching it from a terminal, you could make it work, or so they said. So, I opened the terminal:

open /Applications/

And it launched Audacity, which is great, and even better, it would prompt for permission, but then allow you to record audio and view/open files from the computer. Great and more great. But, well, that’s fine for a keyboard ninja like myself, but what about the average user coming in to use the computer to do the recording? I can’t expect them to know how to launch the terminal and run these commands. If only there was a way to have a button or icon that they click on and launch Audacity properly? Oh, wait, there is, appify!

You can read all about the process on their website, but I’ll walk you through it.

Open the terminal. Conveniently, Mac’s are sort of butchered Unix, which is like Linux, so I was right at home….

sudo su

(type your password)

cd /usr/local/

mkdir bin

cd bin

nano appify

That opens up Nano editor, and you can paste in the program:

#!/usr/bin/env bash

APPNAME=${2:-$(basename “${1}” ‘.sh’)};

if [ -a “${APPNAME}.app” ]; then
echo “
${PWD}/${APPNAME}.app already exists 😦“;
exit 1;

mkdir -p “${DIR}“;
cp “
${1}” “${DIR}/${APPNAME}“;
chmod +x “

echo “${PWD}/$“;

Then press CTRL-x to exit, it will ask if you want to save this, so press y for yes.

Now, back at the terminal, we have to make appify an executable:

chmod a+x appify


You are now exited from being the root or super user, and are your regular old self again. Now we need to create a shell script to launch the terminal window, with a command to launch Audacity. I tried just making a shell script to launch Audacity, but then the permissions were not right. So, to make our shell script:


mkdir install

cd install


Once again, we are in the Nano editor, to which I put this:

#!/usr/bin/env bash

open -a Terminal “open /Applications/”

exit 0

Then press CTRL-x to exit, it will ask if you want to save this, so press y for yes. Which once again brings us back to the terminal window.

appify “audacity”

Now I have an icon in the “install” folder in my user folder. It had a weird icon, but if you double clicked it, a terminal window would open and Audacity would launch with the right permissions, all audio recording and file saving/loading worked! To fix the icon:

  1. CTRL-click on real Audacity app icon, and say “get info”
  2. Click on the Audacity icon at the top left of the get info window, and press the apple key – c to copy it.
  3. CTRL-click on the new icon, and say “get info”
  4. Click on the paper icon at the top left of the get info window, and press the apple key – v to paste it here.

Now, my home brew icon matched the real Audacity icon. I simply removed the old Audacity icon from the dock, and dragged my new audacity app/shortcut that I made to the dock at the bottom of the screen, and it was now launch-able with one click!

That was a lot of work, but in the end, for the end user making recordings, they use it just like they did before. They click the Audacity icon at the bottom of the screen on the dock, and the only perceptible difference is the terminal window also opens in the background. Hopefully, Audacity will work things out with the next revision, but until then, they can keep doing their recordings.

Linux – keep it simple.

LG Watch Urbane gave up on me!

At some point, everything will fail. And for my LG watch Urbane, fail it did. It wasn’t epic. Rather it was quiet. One morning, after it sat in the charger all night, it didn’t power on. No matter how hard I tried, I couldn’t make it power on. Wiggling it around on the charger didn’t seem to help either.

So, I took it apart. Everything seemed in order, but the battery was dead. Using a regular cell phone battery with a few wires, I hot wired it and was able to start the watch. It would appear that the built in battery was just dead. The question was, though, has the battery failed, or the in watch charger circuit quit charging.

A few quick searches online taught me that I could buy a new battery for about $35, shipped to my house. But, I also noticed that for $50, I could just buy another used Urbane watch that was working. So, I decided for the later. In less than a week, I was wearing my new to me Urbane, as if nothing had ever happened.

Begs the question though, what about the old watch? I think I’ll tinker on it more later when I have some time. It’s hard to charge and check voltages because of the unique carrier/charge caddy you have to put it into in order to charge it. I’ll probably wire something in and see how it works then.

In the mean time, I’ll just wear my new to me watch!

Linux – keep it simple.

Still Gapp-less?


Back in July, I decided to go Google App-less, or gappless. Cold turkey. No baby steps, just quit using Google Apps on my phone. Of course, this is possible only with custom ROMs, and then I don’t install the Google Apps packages into those ROMs. I don’t want to belabor the point, but the one thing I want to say about going gappless is: I can’t even tell they’re gone.

I thought it would be a little inconvenient, or that it would be difficult to work with on a day to day basis, but the truth is, since going gappless, I don’t even notice a difference. Other than using a few different apps to do the exact same thing I was doing before, nothing has changed. Kind of makes me wonder what all those Google Apps were for anyways….

Truth be told, Google does make some great apps. But most of the time, even before going gappless, I wasn’t using them anyways. For instance, GMail is a great app, but I have multiple email accounts (because of work, etc.) and so I was using a different email app (librem, K-9, even AquaMail at one point) for all of my phone email needs.

The only big ticket item was the Play Store, which now I realize I can get just about any app (well, any app I ever needed) from F-Droid, Aptoid, or Amazon Apps. The other contender being Google Photos to store all of my pictures. Of course, if you’ve been around my blog a while, you’ve surely seen my home piwigo photo storage system, so I wasn’t using Google Photos either.

Overall, looking long term at my phone these past few months, my battery typically has a higher charge at the end of the day. Typically I was seeing around 60-65% at the end of the day, now I see about 70-80% when I get ready for bed. My data plan uses less data, usually in the 500 MB to 1 GB per month range over these past few months as well, which is a plus. Also, my phone uses about 200 MB ram to run during the day.

I’m actually not writing this to bash on Google or their apps. They actually work really well if you use them. I am writing this to answer that question that I’ve been asked dozens of times lately: “Are you still gappless? How’s that working out for you?” Truth is, yes, and I don’t even miss it.

Linux – keep it simple.

Android 10 on the XA2 Ultra!

Okay, so I’ve been playing around some more with the SODP material and AOSP 10. That’s right, they decided to stop naming Android versions after deserts and just give them numbers. Seems lame to me, but, oh well.

Either way, I did a build of Android 10 with the SODP material, and it is interesting. I’m also using the new 4.14 kernel as well, which is great to keep progressing with newer kernels.

Unfortunately, it’s not quite ready for release yet, it has random crashes and many issues at present, so perhaps I’ll go back and build Android 10 with the 4.9 kernel instead.

Linux – keep it simple.

Fix for MTP/PTP crashes on the XA2 Ultra!

One of the prevailing issues with the SODP build of AOSP was that every time I hooked up my phone to the computer to transfer files, it would cause the phone to crash and reboot. Obviously that is not very productive. I was a bit stumped and decided to join the unofficial SODP telegram group and ask if the developers there had ever seen this issue.

Sure enough, they had. Not only that, but they pointed me to a bug-tacker tool that allowed me to search issues they’ve seen before! It was a huge help! In there, I found a post by a user who had similar problems with another SODP phone. More importantly, there was a helpful response from a developer who pointed out what the issue was, and how to fix it!

It appears that the problem is the buffer size for the file transfer. All one has to do to fix it was make a simple change to the buffer size in


Once you make the edits, then MTP works. He put together a patch, if you don’t want to hand edit them. Here it is:

diff --git a/drivers/usb/gadget/function/f_mtp.c b/drivers/usb/gadget/function/f_mtp.c
index 7692b9d86633..ddf5faedc3c6 100644
--- a/drivers/usb/gadget/function/f_mtp.c
+++ b/drivers/usb/gadget/function/f_mtp.c
@@ -42,8 +42,8 @@
 #include "../configfs.h"
-#define MTP_RX_BUFFER_INIT_SIZE    1048576
-#define MTP_TX_BUFFER_INIT_SIZE    1048576
+#define MTP_RX_BUFFER_INIT_SIZE    16384
+#define MTP_TX_BUFFER_INIT_SIZE    16384
 #define MTP_BULK_BUFFER_SIZE       16384
 #define INTR_BUFFER_SIZE           28
 #define MAX_INST_NAME_LEN          40

It’s great to have that working properly now! It’s also great to work with a team of really helpful developers, for a change.

Linux – keep it simple.

Google Apps on the SODP AOSP for the XA2 Ultra?

As you know, I’ve gone Google App-less, or “gappless”. But, for better or worse, not all of my ROM users have done the same. Typically, when you build a custom ROM, you build it without things like ROOT or GAPPS, and leave it to the ROM user to decide what they would like to install. In the case of installing GAPPS, they typically use TWRP to flash an opengapps zip file that installs all the desired Google Apps.

This is useful, because there are lots of Google Apps, and users may want some of them, but not all of them. Thus, when you install your zip from opengapps, you choose how many Google Apps you would like, pico, nano, mini, stock, full, etc., the bigger the tag, the more Google Apps you get.

Unfortunately, my SODP based AOSP ROM has an issue with Gapps. As I said, I don’t use Gapps anymore, but my users reported that they could not install Gapps. So I tried installing it myself to see what the issue was. Sure enough, it would install properly, but when you booted into the phone, the Gapps were not there! It was as if they never installed. I’d like to take credit for the Gapps resistant ROM, but it was purely unintentional.

So, this may seem counter productive, but I’ve release a build with built in Gapps as well. Since the end user can’t install it themselves, you can actually follow opengapps guide to build your ROM with Gapps included in the build. While I don’t like using Gapps anymore, I certainly want others to have the freedom to do so. The only difficult thing was figuring out which level of Gapps to include. In the end I decided with “stock”, which is less that full or all, and more than pico, nano, and mini. I figure that if you want Gapps, you probably want the standard, or stock amount of programs.

The only downside, is it makes my build almost three times the size! Believe me, it took three times longer to upload too! I think next go around, I’ll probably use mini for the Gapps level, to save myself some uploading bandwidth. I of course, still release my own builds without Gapps, for those so inclined.

Linux – keep it simple.

Fixing Camera issues with SODP/AOSP on the XA2 Ultra


Well, last post I was telling you how I started using the SODP material to build AOSP on the XA2 Ultra, and how well it worked. However, there were a few issues. One notable issue was with the camera preview, and how it would look green. The pictures themselves would be fine, but the display would look green while taking them. That obviously would not do.

One thing I came to realize is that the manifest I was using downloaded the 4.9 kernel source, but also a pre-built 4.9 kernel to be used during the build. Once it was deemed stable, they start using the pre-built kernel instead of building them from source while you build Android. This saves time and resources, but isn’t (in my opinion) a good idea.

So, I decided to build the kernel from source myself, instead of using the pre-built one. Long story short, I simply had to delete the kernel/sony/4.9/common-kernel/ folder and all of it’s contents to force the build process to also build the kernel from the already available source code.

Once I did that, not only did it build the 4.9 kernel from source, but, to God be the glory, it also fixed the green camera display issue! So, it looks like some code or another was updated somewhere along the line and the older pre-built kernel did not interact well with that code, or did not take advantage of it…. Either way, I’m quite pleased to have the kernel built from source and the camera working properly!

Linux – keep it simple.

AOSP with the SODP on XA2 Ultra!

Alright! Well, the first build of AOSP using the SODP on the XA2 Ultra are out! For those who are caught in acronym paralysis, that is the Android Open Source Project built using the Sony Open Devices Project. I used the SODP material to build my first AOSP ROM with it. And, I like it.

There are, however, a few issues. So far, the camera sometimes turns green when displaying the preview, but the pictures come out normal. Also, MTP/PTP (connecting to your computer to transfer files) causes the phone to crash at times. This is a bit of a problem. The FM radio does not work, and the gallery app can’t play back videos.

Originally, I thought the videos were not recording properly, but I found installing any other app to view/playback videos worked just fine. Just the built in app doesn’t have the ability to play back videos.

Well, that is very interesting, no I need to figure out how to fix this. On the plus side, I did use the newer 4.9 kernel, as opposed to the original 4.4 kernel, so that is an exciting step in the right direction! You can check out my builds on XDA if you’d like.

Linux – keep it simple.

Sony Open Device Project and the Xperia XA2 Ultra….

Now that I’ve built a few ROMs for the XA2 Ultra (AOKP and Resurrection Remix), I’ve turned my attention to the Sony Open Devices Project. The SODP, as it is abbreviated, is an effort to make custom ROMs for various Sony devices that are as open source as possible. This includes reducing the amount of vendor blobs (binary large objects) by replacing them with open source code wherever possible.

While the phones in this program are not 100% vendor blob free, they are dramatically reduced and continue progressing as time goes on and developers continue their work. It’s a great idea with several volunteer and professional staff members (courtesy of Sony), and I am all for it. Here is their statement from their web page linked above:

For some of the Xperia™ devices, we provide Android™ Open Source Project (AOSP) device configurations on GitHub. This means that the software will be open for you as a developer to use and contribute to. This is a way for us to support the open Android community, and it is also a tool for us to facilitate and verify contributions to AOSP.

That said, I’ve started progressing in that direction. I’m not skilled enough to do the helpful work of breaking down blobs and coding an open source alternative, but I’m jumping in by using their material as a base for my ROMs that I build.

One of the greatest advantages I see in using this material is the newer kernels. The XA2 Ultra comes with kernel version 4.4. However, the SODP includes kernels 4.9 and 4.14! Using a newer kernel brings better performance and enhanced security, which is always a plus!

It will be interesting to see what comes of this, how functional the ROMs are, and where I can go from here….

Linux – Keep it simple.

Homemade Bluetooth Auto-start Still Trucking!


Well, after a year of service, thousands of miles, and a full fall, winter, spring, and summer, my home made Bluetooth auto-start is still trucking! It’s been really convenient as the weather once again turns cold to pull out my phone, press start, and hear my truck fire up!

There was, however, one blip along the way. several months ago, one of the relays inside the control unit failed. It was simple enough to replace, and within a few minutes, the whole ordeal was over. I don’t think that was a design flaw (not that my design is perfect), but rather a part issue with using cheap relays. The relay that I replaced has worked flawlessly since, and none of the other relays failed, either, leading me to believe it was just a defect in that particular relay.


Linux – keep it simple.