Skip to content

Removes root and bootloader checks from e-government apps

License

GPL-3.0, LGPL-3.0 licenses found

Licenses found

GPL-3.0
LICENSE
LGPL-3.0
LICENSE.LESSER
Notifications You must be signed in to change notification settings

Crazyphil/digitales-amt-liberator

Repository files navigation

E-Government Liberator (formerly Digitales Amt Liberator)

This repository contains an Xposed module that removes root and bootloader checks from Austrian e-government apps. These are

As an additional bonus, this module also supports some other apps with those kinds of checks, but doesn't offer first-class support for them (i.e. if something breaks, it won't be fixed until someone creates an issue). This is not because we are mean, but none of the authors use these apps and therefore will not notice for themselves when something goes wrong.

  • mObywatel by Ministerstwo Cyfryzacji 🇵🇱

Mission statement

The problem

When your Android phone is rooted or its bootloader unlocked, the app starts, but it doesn't allow users to connect their ID Austria to it (for "security reasons"), or it already denies starting for the same reason. This makes the e-government app basically useless.

To check for rooted devices, it utilizes the RootBeer library. This check can easily be circumvented, for example with the Universal SafetyNet Fix module for Magisk. However, to test for an unlocked bootloader, it checks whether the certificate chain for Key Attestation is trusted. The result of this check cannot be faked in software because of the cryptography used.

The solution

E-Government Liberator removes any calls in supported Austrian e-government apps to root and bootloader checks and therefore provides a tailored solution to running the app on rooted devices.

Installation

Install and activate Xposed or one of its derivatives. One of the more modern variants is LSPosed. Ensure that loading Xposed modules for the supported apps is activated in the Xposed settings, and the app is not blocklisted in Magisk, if you use that.

Download the app-release.apk file from the latest E-Government Liberator release and install it on your device. After completion, you should be automatically prompted to activate the new Xposed module.

Restart your device and ensure that the module is up and running in your Xposed settings. Ensure that all Austrian e-government apps you want to liberate are checked in the module's settings (tap on E-Government Liberator on the Modules tab)

You're done. Beginning with the next start of the app, you are able to connect your ID Austria to the app and use it for e-government stuff.

Support

If this module doesn't work for you, first check whether you've followed the installation instructions to the point. Refer to this issue comment if you'd like to have some screenshots to compare with your configuration.

If it still doesn't work, check whether you recently installed an update for the app that isn't working now. If you've got an update and the app now is broken, please create an issue and don't forget to mention the version of the app that now breaks. In any other case, just create an issue giving as much detail about what problem you have and what you've already done to try fixing it, and we'll see what we can do for you.

Development

The module is written in Kotlin. It only consists of one class, it.kapfer.digitalesamt.liberator.ModuleMain, which hooks loading supported apps' package loading process and replaces the calls to the root detection methods in the class responsible for this (e.g. at.asitplus.utils.deviceintegrity.DeviceIntegrityCheck) to always indicate that the device is unmodified. It also contains some app version checks for certain method hooks to ensure that both older and newer versions of the supported apps can be used.

Build it using Gradle.

About

Removes root and bootloader checks from e-government apps

Topics

Resources

License

GPL-3.0, LGPL-3.0 licenses found

Licenses found

GPL-3.0
LICENSE
LGPL-3.0
LICENSE.LESSER

Stars

Watchers

Forks

Languages