[Android Apps and Games] S0bes:
[MENTION=5044197]The Peterle[/MENTION] , try this one

works for me, I bypassed root check as you can see on the attached screenshot. I can't go further and setup the wallet because of my location but that window goes right after the root check.

please ensure that your xposed version >=54. If it's lower then upgrade it

Just in case someone'll find it useful here my xposed code:

package com.s0bes.vwrcd;

import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XC_MethodReplacement;
import de.robv.android.xposed.XposedHelpers;
import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam;
public class xposed implements IXposedHookLoadPackage {

@Override
public void handleLoadPackage(LoadPackageParam lpparam) throws Throwable {

if (lpparam.packageName.equals("com.vodafone.mwallet")) {
ClassLoader classLoader = lpparam.classLoader;
XC_MethodReplacement methodreplacer = new XC_MethodReplacement() {
protected Object replaceHookedMethod(
XC_MethodHook.MethodHookParam paramAnonymousMethodHookParam)
throws Throwable {
return false;
}
};

XposedHelpers.findAndHookMethod("com.skcc.wallet.core.d.j",
classLoader, "b", methodreplacer);
}
}
}

If you decompile apk you can find at com\skcc\wallet\core\d\j.smali method which is responsible for root check:

.method public static b()Z
.locals 4

const/4 v0, 0x1

:try_start_0
invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime;

move-result-object v1

const-string/jumbo v2, "su"

invoke-virtual {v1, v2}, Ljava/lang/Runtime;->exec(Ljava/lang/String;)Ljava/lang/Process;

sget-object v1, Lcom/skcc/wallet/core/d/j;->c:Lcom/skcc/wallet/core/d/k;

const-string/jumbo v2, "Executed \ufffd\ufffdsu\ufffd\ufffd command"

sget-object v3, Landroid/os/Build;->TAGS:Ljava/lang/String;

invoke-interface {v1, v2, v3}, Lcom/skcc/wallet/core/d/k;->a(Ljava/lang/String;Ljava/lang/String;)V
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0

:cond_0
:goto_0
return v0

:catch_0
move-exception v1

sget-object v2, Lcom/skcc/wallet/core/d/j;->a:Lorg/slf4j/Logger;

invoke-static {v1}, Lcom/skcc/wallet/core/d/h;->a(Ljava/lang/Exception;)Ljava/lang/String;

move-result-object v1

invoke-interface {v2, v1}, Lorg/slf4j/Logger;->debug(Ljava/lang/String;)V

sget-object v1, Lcom/skcc/wallet/core/d/j;->e:[Ljava/lang/String;

invoke-static {v1}, Lcom/skcc/wallet/core/d/j;->a([Ljava/lang/String;)[Ljava/io/File;

move-result-object v1

invoke-static {v1}, Lcom/skcc/wallet/core/d/j;->a([Ljava/io/File;)Z

move-result v1

if-eqz v1, :cond_1

sget-object v1, Lcom/skcc/wallet/core/d/j;->c:Lcom/skcc/wallet/core/d/k;

const-string/jumbo v2, "Found \ufffd\ufffdsu\ufffd\ufffd binaries in system files"

sget-object v3, Landroid/os/Build;->TAGS:Ljava/lang/String;

invoke-interface {v1, v2, v3}, Lcom/skcc/wallet/core/d/k;->a(Ljava/lang/String;Ljava/lang/String;)V

goto :goto_0

:cond_1
sget-object v1, Landroid/os/Build;->TAGS:Ljava/lang/String;

if-eqz v1, :cond_2

const-string/jumbo v2, "test-keys"

invoke-virtual {v1, v2}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z

move-result v2

if-eqz v2, :cond_2

sget-object v2, Lcom/skcc/wallet/core/d/j;->c:Lcom/skcc/wallet/core/d/k;

const-string/jumbo v3, "Kernel signed with Test-keys"

invoke-interface {v2, v3, v1}, Lcom/skcc/wallet/core/d/k;->a(Ljava/lang/String;Ljava/lang/String;)V

:cond_2
if-eqz v1, :cond_3

const-string/jumbo v2, "test-keys"

invoke-virtual {v1, v2}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z

move-result v1

if-nez v1, :cond_0

:cond_3
const/4 v0, 0x0

goto :goto_0
.end method

So, for those who do not use xposed for whatever reason it's possible I think just replace this entire method with this:

.method public static b()Z
.locals 1
const/4 v0, 0x0
return v0
.end method