Android CI/CD Pipeline Using GitHub Actions and Firebase Test Labs

Set up your pipeline for testing UI and Unit Tests

Android CI/CD Pipeline Using GitHub Actions and Firebase Test Labs
As a Software Engineer, knowing how to set up a solid CI/CD Pipeline for your project is a vital skill. Whether you’re starting a side project or working on a well established project, having a solid CI/CD pipeline is going to enable you or your team to move faster. The end goal is to protect your branches and ensure only quality code makes it in that passes your status checks. [Read More]

Removing Calendar Invites using PowerShell + Azure CLI

Getting around the `This parameter set requires WSMan` error on Mac OS

Removing Calendar Invites using PowerShell + Azure CLI
Apart from my day job, I moonlight helping small-to-medium size companies’ install and manage secure IT infrastructures, along with building and creating applications for them. I offer these services (and more) through my company, Attica, LLC. It is a passion of mine to help companies that are starting out have a solid IT/Cyber infrastructure that can scale with their company as these businesses are vulnerable and common targets of ransomware and phishing attacks. [Read More]

APKAnalyzer Error

Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema

APKAnalyzer Error
Recently, I was tasked with using Google provided tools to decompile an APK in a CI/CD pipeline. This is great, because Google provides a tool called APK Analyzer, and provide tools both within the IDE itself and options to run it via the Command Line. I can talk more about the actual task later. For now, I want to discuss the issue that I first ran into when attempting to run apkanalyzer from the terminal. [Read More]

DABS

Download Android Binary with Search Term

DABS
Hey Android Enthusiasts, Security Researchers, EL33T H@CK3Rs, and people who followed this link! Ever need to download a binary file from your Android device/emulator, but don’t know the package name or the path? Well, you could use the following, which I have been doing for years… adb shell pm list packages | grep <search term for app> adb shell pm path <package from above> adb pull <path> Easy, right? But these days with App Bundles, binaries don’t come nicely packaged up like they use to in a single . [Read More]

DIY Website with HUGO

Learn Firebase, Docker, and Github Actions along the way!

DIY Website with HUGO
Building a personal portfolio or blog website can be inexpensive and a fun learning experience. Sites like SquareSpace, Wix, WordPress are great if you just want to immediately start writing blogs, but they can either be pricey or lack some customization that you may desire. For instance, sites like Wix/SquareSpace monthly fee’s can be from $12.00 - $22.00 a month. Some may think that is worth it and decide to go that route. [Read More]

ProGuard & R8: Part 2

Java to DEX Compilation & Reading Smali

ProGuard & R8: Part 2
This blog post is the second in a series to teach about the build tools ProGuard and R8, and the first in the hands-on portion of the series. In the first post I talked about the Android Build Pipeline. In this blog, I would like to actually reinforce those concepts with hands on exercises. If you haven’t read the first blog on this topic, this is part two in that series, so I highly suggest going back and understanding that material first. [Read More]

ProGuard & R8: Part 1

Understanding the Android Build Pipeline

ProGuard & R8: Part 1
Tools such as R8 and ProGuard are available for free, but to many they are a black box that code goes into and stuff comes out. My goal is to demystify the black box and teach developers how to properly diagnose the code going into and coming out of these build tools. It will also explain why you should care and why applying these tools should be a priority before shipping any code into the wild. [Read More]

You are now a developer!

...thank you, Android.

You are now a developer!
Anyone who is an Android Developer has been welcomed with that beautiful message after sacrificing there device over to the development gods. But becoming a developer is not as easy as hitting a Build Number 7 times and calling it a day (if only). It takes consistency, practice, a willingness to learn, and perseverance to continue to work through problems that you run into (aka struggle). One place I consistently turn to for guidance when I am working through a problem are blog posts. [Read More]