RSSAmplifier

Blog

jebware.com

Android development, mostly

jebware.comRSS feed ↗10 posts

Latest posts

Everybody Loves Early Voting

I live in North Carolina, where you have three options for voting: Early Voting several sites around the county that are open for ~10 days before Election Day. Mail-in absentee you request that a ballot be mailed to you, you fill it in by hand, and mail it in. Election Day you Continue reading "Everybody Loves Early Voting"

Inbox Ten

Because 10 > 0 I’ve heard people recommend Inbox Zero as a way of managing your email that you try to get and/or keep zero messages in your inbox. I’ve tried it, but I’ve always struggled, because there always seem to be a couple of emails that I’m not ready to file or delete Continue reading "Inbox Ten"

Reverse Engineering on the Device – Slides from Droidcon UK 2019

I have the opportunity to present an expanded version of my talk about reverse engineering Android apps on the device, at this year s Droidcon UK. The video is available on the SkillsMatter website. Links: The StackOverflow answer about resource ID assignments. A gist with my code for resource enumeration. Smali / baksmali dex-member-list You can Continue reading "Reverse Engineering on the Device…

Enumerating Resources in Android

Typically in Android development you know your resource identifiers (e.g. R.string.hello_world). But if you ever wanted to list out the available resources by enumerating the valid IDs (without trying every Int), here s the code I came up with for it:

Reverse Engineering on the Device – Slides from Droidcon NYC 2019

At this year s Droidcon NYC, I had the chance to talk about some oddball techniques for reverse engineering Android apps from another app on a device. Thanks to everyone who came out, and the slides are available now.

Where is your team’s center of gravity?

As more workers push for remote work, we’ve begun trying to find a common vocabulary to classify how well an organization supports its remote workers. There’s the idea of “remote-friendly” vs. “remote-first” how do your teams tools and processes enable your remote teammates to succeed? The problem is that these terms are very subjective Continue reading "Where is your team’s center of gravity?"

Save time and reduce risk with Gradle’s includeGroup

With the recently released version 5.1, Gradle has added a great, subtle new feature that lets you specify which dependencies should be pulled from which repositories. To explain what this is, let’s start with the default behavior. In your Gradle file, you probably have multiple repositories defined, like this: When Gradle needs to find a Continue reading "Save time and reduce risk with Gradle’s…

What’s the point of Lockdown Mode in Android P?

“Lockdown Mode” is a new feature in Android P it disables fingerprint login, forcing you to enter your PIN/passcode to unlock the device. This is an important, but subtle, distinction. Ultimately, what’s the difference between your passcode and your fingerprint? The difference comes down to legal precedents in the US. Legally, the police can compel Continue reading "What’s the point of Lockdown…

Yes, you should run ProGuard / R8 on open-source library dependencies

I have seen a few people argue that there’s no reason to let ProGuard run on the open-source libraries that they include in their app, because if the source is publicly available, there’s no point of obfuscating, right? Who are you fooling? Here s an example from one library s README file: Their ProGuard rules file is Continue reading "Yes, you should run ProGuard / R8 on open-source library…

Quick-and-dirty flat-file storage

Not every app needs cloud storage with a SQLite cache. I’m going to let you in on a little secret that helps me prototype apps quickly. Sometimes, when nobody s looking, I just write my data to disk. I don’t build a cloud backend. I don’t build a SQLite database. I just serialize my data to Continue reading "Quick-and-dirty flat-file storage"