Skip to content

Commit

Permalink
Introduce support for edu.digicard
Browse files Browse the repository at this point in the history
  • Loading branch information
sdrgeek committed Aug 12, 2023
1 parent 3579f70 commit 3cf06d5
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 4 deletions.
17 changes: 13 additions & 4 deletions app/src/main/java/it/kapfer/digitalesamt/liberator/ModuleMain.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import de.robv.android.xposed.IXposedHookZygoteInit
import de.robv.android.xposed.XC_MethodReplacement
import de.robv.android.xposed.XposedBridge
import de.robv.android.xposed.XposedHelpers
import de.robv.android.xposed.callbacks.XC_LoadPackage
import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam

// Classes to hook in Digitales Amt app
const val DEVICE_INTEGRITY_CHECK_CLASS: String = "at.asitplus.utils.deviceintegrity.DeviceIntegrityCheck"
Expand All @@ -17,27 +17,30 @@ const val ATTESTATION_HELPER_CLASS: String = "at.gv.bmf.bmf2go.taxequalization.t
class ModuleMain : IXposedHookZygoteInit, IXposedHookLoadPackage {
private lateinit var digitalesAmtPackageName: String
private lateinit var bmf2GoPackageName: String
private lateinit var eduDigicardPackageName: String

override fun initZygote(startupParam: IXposedHookZygoteInit.StartupParam) {
val moduleResources = XModuleResources.createInstance(startupParam.modulePath, null)
digitalesAmtPackageName = moduleResources.getString(R.string.digitales_amt_package_name)
bmf2GoPackageName = moduleResources.getString(R.string.bmf2go_package_name)
eduDigicardPackageName = moduleResources.getString(R.string.edudigicard_package_name)
}

override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
override fun handleLoadPackage(lpparam: LoadPackageParam) {
when (lpparam.packageName) {
digitalesAmtPackageName -> handleDigitalesAmt(lpparam)
bmf2GoPackageName -> handleBmf2Go(lpparam)
eduDigicardPackageName -> handleEduDigicard(lpparam)
}
}

private fun handleDigitalesAmt(lpparam: XC_LoadPackage.LoadPackageParam) {
private fun handleDigitalesAmt(lpparam: LoadPackageParam) {
XposedBridge.log("Hooking DeviceIntegrityCheck")
XposedHelpers.findAndHookMethod(DEVICE_INTEGRITY_CHECK_CLASS, lpparam.classLoader, "checkIntegrity", XC_MethodReplacement.DO_NOTHING)
XposedHelpers.findAndHookMethod(DEVICE_INTEGRITY_CHECK_CLASS, lpparam.classLoader, "checkIntegrityForceCheck", XC_MethodReplacement.DO_NOTHING)
}

private fun handleBmf2Go(lpparam: XC_LoadPackage.LoadPackageParam) {
private fun handleBmf2Go(lpparam: LoadPackageParam) {
XposedBridge.log("Hooking RootBeer")
// Hook RootBeer's isRooted() method
XposedHelpers.findAndHookMethod(ROOTBEER_CLASS, lpparam.classLoader, "isRootedWithoutBusyBoxCheck", XC_MethodReplacement.returnConstant(false))
Expand All @@ -46,4 +49,10 @@ class ModuleMain : IXposedHookZygoteInit, IXposedHookLoadPackage {
// Hook method that checks whether hardware key attestation is supported
XposedHelpers.findAndHookMethod(ATTESTATION_HELPER_CLASS, lpparam.classLoader, "isBootStateOk", XC_MethodReplacement.returnConstant(true))
}

private fun handleEduDigicard(lpparam: LoadPackageParam) {
XposedBridge.log("Hooking RootBeer")
// Hook RootBeer's isRooted() method
XposedHelpers.findAndHookMethod(ROOTBEER_CLASS, lpparam.classLoader, "isRooted", XC_MethodReplacement.returnConstant(false))
}
}
1 change: 1 addition & 0 deletions app/src/main/res/values/arrays.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@
<string-array name="xposed_scope" translatable="false">
<item>@string/digitales_amt_package_name</item>
<item>@string/bmf2go_package_name</item>
<item>@string/edudigicard_package_name</item>
</string-array>
</resources>
1 change: 1 addition & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@
<string name="app_name">Digitales Amt Liberator</string>
<string name="digitales_amt_package_name" translatable="false">at.gv.oe.app</string>
<string name="bmf2go_package_name" translatable="false">at.gv.bmf.bmf2go</string>
<string name="edudigicard_package_name">at.asitplus.digitalid.wallet.pupilid</string>
</resources>

0 comments on commit 3cf06d5

Please sign in to comment.