Connecting Ibo Player Pro_4.3 (AndyHax Mod) to the Cockpit Panel Print

  • 3

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

  1. After all changes, tap the Save button in MT Manager and then choose Compile.
  2. Sign the APK using the built-in signer in MT Manager.
  3. 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.


Was this answer helpful?

« Back