Customizing an Android phone is possible once you know how to code an auto-generated runtime resource overlay (RRO) product. It’s a popular option for buyers and sellers of aftermarket Android phones for a variety of reasons, like appearance and speed.
An Android RRO project is a package that changes the resource values of a target package when a program is running. This means that new RRO resource files can be placed over a mobile app’s original resource files to change values like layouts, colors, and fonts.
Learn more about the Android RRO process and how to customize phones below.
An RRO is used in the customization of Android apps or a phone’s system user interface (UI) elements. The Android operating system has a theming framework built in by Google that you can customize through additional coding. Think of UI elements as the foundation of a software application. They’re all the components that come into play between the user and software, like features that help you navigate.
There are three types of UI elements in an Android system:
Using an RRO to alter UI elements greatly reduces the time and effort that’s usually needed to customize an Android device.
Phone customization is often an extension of personal style. There are certain looks and colors we appreciate or respond to more than others. Just like you can customize your wardrobe, you can create custom themes for an Android phone with an RRO project. You can also apply Android icon packs and themes through a launcher — which doesn’t require any coding — to create a more uniform look for the apps on the home screen.
Android RROs are dynamic RROs that are enabled at runtime. Runtime RROs can be enabled or disabled at a later point with programming by changing the package’s permissions. On the other hand, static RROs are enabled at build time when the software application is created. Static RROs can’t be deactivated or disabled any time after creation.
When you build a new Android RRO project, you don’t have to change all the resource files at runtime. For example, you can create an RRO to change the colors of an app but leave the layout as it was originally built.
It’s important to understand what you can and can’t change when creating an RRO project for an Android phone. Anything under the resource file of an application can be overlaid with an Android RRO, including:
There are some limitations to be aware of when creating an Android RRO project. You can’t overlay any source code files (e.g., Java or Kotlin source code) with an RRO. SRC files are also unchangeable, as they’re file extensions usually associated with source code files.
The user interface of an Android app is mostly created with XML files. When an app has separate XML resources for its appearance and attributes, the RRO framework enables you to overlay the existing files with custom XML resources.
Here’s a broad overview of how a normal app project converts and executes its files in runtime versus an RRO project’s process.
An app typically consists of three types of files when it’s built: the manifest file called AndroidManifest.xml, Java/Kotlin files, and resources files.
To run an app, the app project files must be converted into an Android Package (APK). During the conversion, the Java/Kotlin files are compiled into a file named “classes.dex” and the resources files are condensed into a “appresources.arsc” file. Android Studio and the Android Gradle Plugin use the Android Asset Packaging Tool (AAPT2) to compile and package an app’s resources.
The final step of the normal app process is the execution of the APK. Classes.dex and appresources.arsc are used to run the app during processing. This last step is when an RRO can come in and overlay any original resource file to customize the app.
The RRO process begins with the building of an RRO project, also known as a package. The project is assigned a package name and contains both a manifest file and resource files. An RRO project is converted into an RRO APK during the build process, so the overlay resources will be compiled into a resources.arsc file.
The RRO overlay package can now target a specific package, like fonts, in the original app you’re customizing. As the target application begins to run, it picks up the installed RRO APK resources.arsc file and uses the RRO identity mapping (IDMAP) to assign specific overlays to the correct target packages.
In a broad sense, the RRO resources.arsc overrides the appresources.arsc file of the original app. Your RRO tells the app to ignore its original build and use this new build instead.
The Android app must be a valid and signed APK for RRO customization to work.
An Android Package (APK) is the file format Android uses to distribute and install apps. Also known as an Android Package Kit or Android Application Package, an APK is an archive file that has all that’s needed for an app to be installed on a device. They’re like ZIP files that combine and compress multiple files into a single, more portable, and smaller package. Unlike a ZIP, though, an APK contains extra instructions for installation on a mobile phone.
As a security measure, all APKs must be digitally signed with a certificate before they can be installed. Creating a keystore is necessary because this is where the security certificate is stored. A signed Android APK enables an app to be available for download through the Google Play Store.
A signed APK identifies the app’s author, encourages trust between Google and developers, and ensures an original and unmodified app is delivered to a device correctly.
The difficulty of customizing an Android device with an RRO lies in the knowledge and skills of the developer. Google has made the Android OS an open-source operating system for cellphones.
The Android Open Source Project (AOSP) aims to offer the source code and information needed to create custom variants of the Android OS. It also ensures Android devices meet compatibility standards to keep the system functioning for millions of users.
You can develop apps and contribute code to the Android OS because of Google’s open-source project. Developers build Android apps with Android Platform application programming interfaces (APIs) in Kotlin or Java. The set of APIs that enable you to quickly and easily develop an app is known as the Android framework.
Anyone can build a new app or customize an Android once they learn how to do it. Whether working with a Google Pixel phone or a Samsung Galaxy, the operating system is the same and open to change. Custom Android ROMs and RROs allow for a variety of customization options.
There are two main ways to create an RRO. It should be easier for you to learn how to build an RRO package if you’re familiar with building apps. You’ll need to install Android SDK tools and use the Android Packaging Tool (AAPT) to build an overlay package manually. Search for online tutorials to help explain this method and more.
Developers can also use Android Studio for Android development and to build overlay packages. This software provides the fastest tools for building on an Android device and includes:
It’s easier to build RROs in Android Studio than manually. You can also test an app and RROs before installing them to see how your codes will function. Generic System Images (GSIs) can be installed and run on multiple Android devices to perform app testing.
Customizing phones in the Android aftermarket is popular among buyers and sellers. Just like the APK signing process adds trust to the process of app development, the Phonecheck complete device certification solution adds trust to the process of buying and selling used Android phones. We set the standards in used device certification; you’ll know that a Phonecheck-certified device is fully functioning and ready for customization.
Our industry-leading reports and certification process provides diagnostic information about a device, so you know exactly what you’re getting. Don’t buy a used device without obtaining a Phonecheck Device History Report. You can avoid costly hidden problems for about the cost of a cup of coffee.
Join the thousands of businesses already using Phonecheck to solve many of your Android aftermarket needs. Request a demo of our all-in-one services today.