Mudfish App for Android
This section describes how to use the mudfish app for Android. You can install it by searching for "Mudfish" n the Play Store.
Introduction
Differences between Android and Desktop
Here's summary what's differences between mudfish app for iOS and mudfish vpn for desktop.
For mudfish app, it supports two mode; Full VPN mode and Per-app VPN mode. So you can pick whather apps you'd like to apply in the configuration menu.
At mudfish app, it doesn't apply "item configuration / program settings" which set from mudfish vpn for desktop. The configuration of mudfish app is completely separated.
Your data plan is shared. If your data plan is PPT (Pay Per Traffic), your credit usage will be charged how much you used.
However if your data plan is Subscription, no extra credit charges but the speed cap.
Mudfish credits are shared cross mudfish services. So you can use it at both mudfish apps and mudfish other services.
How to use at App Players
If you want to use mudfish app for Android at App Players such as Bluestacks, Nox, you should use mudfish app built for Android API 21. You can install it as follows:
Download API file at https://mudfish.net/releases/ link. The file ending with -21 (e.g. net.mudfish.vpn-release-4.4.12-21.apk) means it's for API 21.
To install APK file, please drag and drop the file into the app player.
Menu
Front
Front screen is the sign-in scrrent. By clicking (Plus) icon, you can sign up.
If you want to keep the sign-in alive, you can use "Remember Me" button.
Main screen
This is the screen you see after logging in. You will see summary information about various functions, and when you click on each item, detailed information will be displayed. The current items are respectively:
Credits
Shows the credits currently linked to your account. When you click on the item, you will be taken to the credit purchase menu.
Rate plan
It shows brief information about the rate plan you are currently using. Clicking on that item will take you to the rate plan change screen.
Nodes
Shows information about the Mudfish nodes to be currently used. If you click on the item, you can see the screen for changing the mudfish node.
Node Mode
Currently, the Mudfish app supports the following node modes.
Basic mode
In the basic mode, the destination is reached through one Mudfish node.
Multi-Path mode
In Multi-Path mode, the destination is reached via 2 to 3 mudfish nodes.
Basically, it uses the mudfish node set by the user, and additionally uses other relay servers that are deemed optimal to reach the destination.
Simple FEC mode
Simple FEC mode is designed for users who experience packet loss at their local ISP.
By transmitting the same packet multiple times, even if packet loss occurs in the middle, another packet replaces it.
Buy credits
Configuration
It can be used to change the configuration of mudfish app.
MTU configuration
If you want to change default MTU (Maximum Transmission Unit), it can be used.
Packet Dump
This menu could be used to capture the packets. To perform the packet dump, you can do as follows:
Launch the mudfish app and login with your ID/PWD.
Visit 'Preferences' menu of mudfish app and clicks "Packet Dump" option.
Go back to the main screen and touch 'Connect' button after picking up a mudfish node you'd like to use.
Reproduce your problem or play the game.
Touch 'Disconnect' menu when you completed to reproduce the issue or when you think packets are enough collected.
Visit 'Preferences' menu and turn off 'Packet Dump'.
Touch 'Packet Dump Upload' option and upload it after explaining it briefly.
Release Notes
4.10.0 (2024-08-18)
Added new authentication step.
Fixed two crash issues at the edge case.
4.9.0 (2024-07-28)
Added the advanced node mode.
Added the recommended path menu for the advanced and multi-path node modes.
Changes the android SDK target to API 34 and set the FOREGROUND_SERVICE_TYPE_SYSTEM_EXEMPTED foreground type.
4.8.6 (2024-03-30)
- Reuses the mudfish nodes information from the web server. This code sometimes is helpful if the user failed to fetch the mudfish nodes information due to the network firewall issue.
4.8.5 (2024-03-16)
No longer $2.99 price at the app due to the change of the pricing policy.
Adds a button at the Login screen to enable / disable the firewall bypass mode.
Fixed a buffer overflow issue when the input packet is malformed.
4.7.4 (2023-06-24)
Fixes some crash issues due to null pointer issue.
Adds a warning alert if the battery optimization is enabled for Mudfish app.
Adds a warning alert if Data Saving mode is enabled.
Applies an adaptive icon.
Be more verbose for UI move and adjusted the logging level.
4.6.3 (2023-03-03)
- Fixes a bug that on some devices, calling setrlimit() doesn't work.
4.6.2 (2023-03-02)
- Fixed a launcher permission issue.
4.6.1 (2023-02-26)
- Changed the minimum SDK version from 28 to 25.
- Be more verbose when the app starts to log a edge case that chdir() doesn't work properly.
- Logs the model and version information.
4.5.8 (2022-09-21)
- Uses startForegroundService() method to trigger VPN connection.
- Fixed one exception to crash the app crash.
4.5.7 (2022-09-09)
Support the configuration synchronization feature which saves and loads your mudfish app configuration into mudfish server.
Fixed some edge cases triggered by unexpected exceptions.
Adds a filtering option of mudfish nodes to support the case-insensitive or case-sensitive search.
Tags more error or warning messages.
4.5.5
Fixed some app crash issues at edge cases.
When the auto-login token is expired at beginning of the month, the app will be refreshed properly.
Adds 'Find username' and 'Find password' icons at the login screen.
4.5.4
Makes the VPN service in the foreground not to be killed by the system.
Fixes a crash while checking the credit dialog.
Fixed a crash when JNI calls aren't initialized yet.
4.5.3
- Fixed a crash on the login screen.
4.5.2
Fixed a bug of EBADF error. It was trigged by wrong use of ParcelFileDescriptor class.
Includes the RTT test logs in the problem report.
Fixed a crash issue while setting the configuration.
Fixed a crash issue while signing up to show the progress bar.
Shows a message properly if the data plan hits the speed cap.
4.5.1
- Implements the multi-path mode.
4.4.50
Requires ACCESS_NETWORK_STATE to check that it solves EPERM issue of the socket.
Code clean ups for ping checks. Now as default, it performs the RTT calculation to mudfish nodes.
Shows the recommended pathes for the per-app item if it's possible to show.
Some UI changes to show the data plan properly.
Saves the filtering pattern for the listing of mudfish nodes.
Fixed a crash issue if
fd
is larger than FD_SETSIZE.
4.4.46
Syncs the user configuration for android if you're using Per-App VPN.
Syncs the item configuration for Per-App VPN.
Fixed an exception issue crashing the app.
Added one more firewall check via HTTP request.
Error Codes
In this section, I'll describe each of the error codes that can come up using the Mudfish Android app and describe their solutions.
If the problem is not solved by the methods described below, please ask at the Mudfish Forum.
MUDEXP_00001
Firewall bypass feature is currently disabled.
This message means that the mudfish disabled the authentication via the firewall bypass feature temporarilly.
Normally it happens when Mudfish web site is under DDoS attack. Please don't use the firewall bypass feature. Or please use Mudfish under the environment where no the network firewall exists.
MUDEXP_00023
Failed to get information: (num)
This error can be caused by poor authentication with the mudfish authentication server. Depending on (num), its reason could be different. The reason for each (num) is as follows:
-1
This code means that the TCP connection to the mudfish master server failed to establish due to some unexpected reason.
Please check that there's a network firewall preventing the connection or try to change the network from WIFI to LTE/5G or LTE/5G to WIFI.
-2
This can occur if the connection to the Mudfish Authentication Server is established, but the response cannot be received after sending authentication information.
Usually, in this case, please check that there's a network firewall on your network that prevents you from connecting to the mudfish server, or if your personal firewall / antivirus program is blocking the connection.
-3
This number indicates that your ID/PWD isn't correct or found. Please try to sign out and sign in again. To sign up, you can find a menu at the app configuration.
-9
This number indicates that the authentication using the same ID was repeated several times within a short period of time so your connection was blacklisted by the authentication daemon.
When this error occurs, please stop using the mudfish for a while and try connecting again after about 5 minutes.
MUDEXP_00025
Failed to fetch the staticnodes. (r <error_num>
)
This message means that Mudfish app failed to fetch the information of mudfish nodes.
MUDEXP_00026
Failed to get the default gateway for DNS (sid <sid>
)
This issue means there's a problem to communicate with mudfish RTT server. When this issue happens, other mudfish error codes already are logged to show the details.
Please check that there's a network firewall between your phone and mudfish master servers. As temporary workaronds,
Please terminate the mudfish app completely and restart the mudfish app.
Or try to pick another mudfish node to use.
MUDEXP_00034
No mudfish credits available.
This error message indicates one of the followings:
If your data plan is PPT (Pay-Per-Traffic), the issue is caused by lack of mudfish credits. Please purchase mudfish credits at https://mudfish.net/admin/credits/buy link.
If your data plan is SUB (Subscriptioin), normally you don't have buy the Subscription voucher. For details, please visit Policy change for Data Plan - 20210607 link.
MUDEXP_00035
Can't use the mudfish node you picked.
In the case of this error, if you try to use the mudfish node picked in the mudfish app, but for some reason it can not be used, it could happen. It usually comes out for the following reasons.
If you have a PPT(Pay Per Traffic) data plan but no paid items are equipped.
In this case, log in to https://mudfish.net and equip at least one paid item.
If the mudfish server is dead, this could happen. Then try to log out and log back in to the app to get the latest relay server information.
MUDEXP_00045
Failed to read for auth (r <return_code>
errno <error_code>
<error_msg>
)
This error means that it's successful to connect to the authentication server
of Mudfish and send an information. <return_code>
shows more details:
-1
If
<return_code>
is -1, it means the mudfish authentication server doesn't response in time. Please check<error_code>
<error_msg>
to know the fundamental reason.
MUDEXP_00046
Failed to do auto-login: <errno>
This error message means Mudfish App failed to perform the auto-login due to
<errno>
. Each <errno>
points:
-3
This includes multiple meaning. Mostly, the token which used to perform the auto-login is no longer valid or expired.
MUDEXP_00079
talkc_open() fail.
This error indicates that there's a problem to connect to mudfish RTT daemon. Normally other error messages is already logged before showing this message.
MUDEXP_00099
Failed to prepare VPN interface.
This error means that the Mudfish app is not prepared to create a VPN profile on the system or is revoked while creating a VPN profile.
Please check that you're using other VPN programs or running. Sometimes other VPN prgoram running triggers this issue.
MUDEXP_00113
Problem setting up in-app billing: Response Code: <result_code>
This warning means that it failed to set up the in-app billing environment
<result_code>
BILLING_UNAVAILABLE, Debug Message: Billing service unavailable on device.
Problem
This error indicates that a user billing error occurred during the purchase process. Examples of when this can occur include:
- The Play Store app on the user's device is out of date.
- The user is in an unsupported country.
- The user is an enterprise user, and their enterprise admin has disabled users from making purchases.
- Google Play is unable to charge the user’s payment method. For example, the user's credit card might have expired.
Possible resolution
Automatic retries are unlikely to help in this case. However, a manual retry can help if the user addresses the condition that caused the issue. For example, if the user updates their Play Store version to a supported version, then a manual retry of the initial operation could work.
If this error occurs when the user is not in session, retrying might not make sense. When you receive a BILLING_UNAVAILABLE error as a result of the purchase flow, it’s very likely the user received feedback from Google Play during the purchase process and might be aware of what went wrong. In this case, you could show an error message specifying something went wrong and offer a “Try again” button to give the user the option of a manual retry after they address the issue.
MUDEXP_00124
Testing to mudfish.net:443 failed.
This error means that it failed to connect "mudfish.net:443". Due to this issue, the mudfish app enables the firewall bypass mode.
Please check your network has the network firewall which filters accesses to Mudfish.
MUDEXP_00160
tun -> server: Got <exception>
This error points that it failed to send UDP packet due to <exception>
error. It shows more details about why:
java.io.IOException: sendto failed
EPERM (Operation not permitted)
This error indicates that sendto(2) operatioin for UDP (this UDP is used by the mudfish communicateion between app and mudfish node) is blocked by some reason.
Please check you're using a firewall app on your phone or there's OS-dependent configuration to block mudfish.
MUDEXP_00245
Unsuccessful response
This error means
Mudfish app detects that you're under the nework firewall because it failed to pass the firewall test.
With the firewall bypass mode enabled, Mudfish app failed to fetch the list of mudfish nodes from the mudfish master server via the cloudflare CDN proxy.
If you think the firewall test was false positive, you can manually turn off the firewall bypass mode at the sign-in screen.
MUDEXP_00246
VSS_open(14.63.221.44:443) failed: <error_code>
<error_number>
.
Please check MUDEXP_00262
error link for details. This is triggered by
the same reason mentioned in MUDEXP_00262
section.
MUDEXP_00251
talkc__recv() error.
This error indicates that there's a problem to communicate between your phone and mudfish RTT daemon. Normally other error messages will follow up to point the detailed reason.
MUDEXP_00253
VSS_open(14.63.223.218:443) failed: <error_code>
<error_number>
.
For this error code, please check the below MUDEXP_00262 error section. The reason is same.
MUDEXP_00262
VSS_open(14.63.214.216:10010) failed: <error_code>
<error_number>
. Try next.
This error means that there's a problem to communicate between your phone and
mudfish RTT daemon. <error_code>
points more details:
2 SELECT_TIMEOUT
This means that there's no response from mudfish RTT daemon for a while. This could happen if 1) mudfish RTT daemon is down or 2) there's a network firewall which blocks the connections to Mudfish.
4 CONNECT_ERROR
This error means that it failed to perform connect(2) to the mudfish master server.
<error_number>
points why it failed to connect:101 ENETUNREACH
Network is unreachable. By some unknown reason, the network is unreachble to the mudfish master server. Please check what kind apps you're running in the background.
MUDEXP_00263
VSS_open(14.63.214.216:10009) failed: <error_code>
<error_number>
. Try next.
For this error code, please check the above MUDEXP_00262 error section. The reason is same.
MUDEXP_00267
connect(2) fail: <errno>
<err_string>
This warning means that it failed to calculate RTT (Round Trip Time) between
your mobile phone and mudfish nodes using TCP protocol. Please check <errno>
at below for details:
101 Network is unreachable
This code means the network is unreachable where Mudfish app tried to connect.
MUDEXP_00292
Failed to do the auto-login (reason <reason_code>
)
This error means that the mudfish app tried to perform the auto-login but
failed due to <reason_code>
error. <reason_code>
points
4
This reason code points that your authentication token is invalid or expired. You need to sign in again with your ID / password.