This guide shows how to modify Ibo Player Pro_4.3 (AndyHax Mod) to connect to your own Cockpit Panel API and disable string encryption if you're converting your own mod.
Prerequisites
- MT Manager installed
- APK file of Ibo Player Pro_4.3
- Your custom Cockpit Panel URL (e.g.
https://yourdomain.com/api/ibosol/)
Step 1: Modify the Panel URL
Path: com/PanelUrl
- Find:
const-string v0, "https://demo.cockpit.lol/api/ibosol/"
- Replace with:
const-string v0, "https://yourdomain.com/api/ibosol/"
Step 2: Disable Native String Encryption (For Custom Mods)
If you're converting your own mod and the app uses native methods for string encryption, you will need to replace the native method with a basic Java method that returns the input string unchanged, this is due to the lack of a publicly available RSA Private Key.
Path: com/andyhax/Crypt
Find and Replace:
.method public static native _____(Ljava/lang/String;)Ljava/lang/String;
.end method
Replace with:
.method public static _____(Ljava/lang/String;)Ljava/lang/String;
.registers 1
return-object p0
.end method
Step 3: Fixing WebViews from Panel (For Custom Mods)
If you're converting your own mod and the app opens your WebViews in a browser (not including the sport-tv-guide WebView) you will need to replace the native method with a Java implementation that works as expected.
Path: com/flextv/livestore/activities/HomeActivity
Find and Replace:
.method private native loadWebview()V
.end method
Replace with:
.method private loadWebview()V
.locals 7
.line 1
:try_find_webview
const v0, 0x7f0b0432
invoke-virtual {p0, v0}, Lcom/flextv/livestore/activities/HomeActivity;->findViewById(I)Landroid/view/View;
move-result-object v0
check-cast v0, Landroid/webkit/WebView;
if-eqz v0, :cond_return
.line 2
const/4 v1, 0x0
invoke-virtual {v0, v1}, Landroid/webkit/WebView;->setBackgroundColor(I)V
.line 3
invoke-virtual {v0}, Landroid/webkit/WebView;->getSettings()Landroid/webkit/WebSettings;
move-result-object v2
.line 4
const/4 v3, 0x1
invoke-virtual {v2, v3}, Landroid/webkit/WebSettings;->setJavaScriptEnabled(Z)V
:try_start_mixed_content
invoke-virtual {v2, v1}, Landroid/webkit/WebSettings;->setMixedContentMode(I)V
:try_end_mixed_content
.catch Ljava/lang/NoSuchMethodError; {:try_start_mixed_content .. :try_end_mixed_content} :catch_mixed_content
:catch_mixed_content
invoke-virtual {v2, v3}, Landroid/webkit/WebSettings;->setDomStorageEnabled(Z)V
invoke-virtual {v2, v3}, Landroid/webkit/WebSettings;->setLoadsImagesAutomatically(Z)V
invoke-virtual {v2, v3}, Landroid/webkit/WebSettings;->setUseWideViewPort(Z)V
new-instance v4, Landroid/webkit/WebViewClient;
invoke-direct {v4}, Landroid/webkit/WebViewClient;-><init>()V
invoke-virtual {v0, v4}, Landroid/webkit/WebView;->setWebViewClient(Landroid/webkit/WebViewClient;)V
iget-object v5, p0, Lcom/flextv/livestore/activities/HomeActivity;->q0:Lcom/flextv/livestore/models/AppInfoModel;
if-eqz v5, :cond_return
invoke-virtual {v5}, Lcom/flextv/livestore/models/AppInfoModel;->getHome_url1()Ljava/lang/String;
move-result-object v6
if-eqz v6, :cond_return
invoke-virtual {v0, v6}, Landroid/webkit/WebView;->loadUrl(Ljava/lang/String;)V
:cond_return
return-void
.end method
Final Steps
- After all changes, tap the Save button in MT Manager and then choose Compile.
- Sign the APK using the built-in signer in MT Manager.
- Install the APK and test to confirm it connects to your custom API and loads your panel data.
Note: Always back up the original APK before making changes.