Skip to content

Commit e233e2d

Browse files
committed
DNS fixes
1 parent 0815e4b commit e233e2d

3 files changed

Lines changed: 34 additions & 3 deletions

File tree

src/main/assets/hacks/resolv.conf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
nameserver 8.8.8.8
2+
nameserver 8.8.4.4

src/main/java/pojlib/install/Installer.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,8 +176,9 @@ public static void moveLocalAssets(Activity activity, MinecraftInstances.Instanc
176176
FileUtils.writeByteArrayToFile(new File(instance.gameDir + "/config/modernfix-mixins.properties"), FileUtil.loadFromAssetToByte(activity,"modernfix-mixins.properties"));
177177
FileUtils.writeByteArrayToFile(new File(instance.gameDir + "/options.txt"), FileUtil.loadFromAssetToByte(activity, "options.txt"));
178178
FileUtils.writeByteArrayToFile(new File(instance.gameDir + "/servers.dat"), FileUtil.loadFromAssetToByte(activity, "servers.dat"));
179-
FileUtils.writeByteArrayToFile(new File(Constants.USER_HOME + "/hacks/ResConfHack.jar"), FileUtil.loadFromAssetToByte(activity, "hacks/ResConfHack.jar"));
180179
FileUtils.writeByteArrayToFile(new File(instance.gameDir + "/config/vivecraft-client-config.json"), FileUtil.loadFromAssetToByte(activity, "vivecraft-client-config.json"));
180+
FileUtils.writeByteArrayToFile(new File(Constants.USER_HOME + "/hacks/ResConfHack.jar"), FileUtil.loadFromAssetToByte(activity, "hacks/ResConfHack.jar"));
181+
FileUtils.writeByteArrayToFile(new File(Constants.USER_HOME + "/hacks/resolv.conf"), FileUtil.loadFromAssetToByte(activity, "hacks/resolv.conf"));
181182
} catch (IOException e) {
182183
e.printStackTrace();
183184
}

src/main/java/pojlib/util/JREUtils.java

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
import android.app.Activity;
44
import android.app.ActivityManager;
55
import android.content.Context;
6+
import android.net.ConnectivityManager;
7+
import android.net.LinkProperties;
8+
import android.net.Network;
69
import android.os.Build;
710
import android.system.ErrnoException;
811
import android.system.Os;
@@ -14,7 +17,9 @@
1417
import java.io.BufferedReader;
1518
import java.io.File;
1619
import java.io.FileReader;
20+
import java.io.FileWriter;
1721
import java.io.IOException;
22+
import java.net.InetAddress;
1823
import java.util.ArrayList;
1924
import java.util.Arrays;
2025
import java.util.List;
@@ -252,6 +257,22 @@ public static int launchJavaVM(final Activity activity, final List<String> JVMAr
252257
return exitCode;
253258
}
254259

260+
private static void writeDNS(Context ctx, File out) throws IOException {
261+
FileWriter writer = new FileWriter(out);
262+
263+
ConnectivityManager cm = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE);
264+
Network activeNetwork = cm.getActiveNetwork();
265+
LinkProperties lp = cm.getLinkProperties(activeNetwork);
266+
if(lp == null)
267+
return;
268+
269+
List<InetAddress> dnsServers = lp.getDnsServers();
270+
for (InetAddress dns : dnsServers) {
271+
writer.write(String.format("nameserver %s\n", dns.getHostAddress()));
272+
writer.flush();
273+
}
274+
writer.close();
275+
}
255276

256277
/**
257278
* Gives an argument list filled with both the user args
@@ -260,6 +281,12 @@ public static int launchJavaVM(final Activity activity, final List<String> JVMAr
260281
* @return A list filled with args.
261282
*/
262283
public static List<String> getJavaArgs(Context ctx, MinecraftInstances.Instance instance) {
284+
File resConfFile = new File(Constants.USER_HOME + "/hacks/resolv.conf");
285+
try {
286+
writeDNS(ctx, resConfFile);
287+
} catch (IOException e) {
288+
Logger.getInstance().appendToLog("Couldn't write DNS servers! " + e.getMessage());
289+
}
263290
return new ArrayList<>(Arrays.asList(
264291
"-Djava.home=" + new File(ctx.getFilesDir(), "runtimes/JRE"),
265292
"-Djava.io.tmpdir=" + ctx.getCacheDir().getAbsolutePath(),
@@ -276,9 +303,10 @@ public static List<String> getJavaArgs(Context ctx, MinecraftInstances.Instance
276303
"-Dglfwstub.initEgl=false",
277304
"-Dlog4j2.formatMsgNoLookups=true", //Log4j RCE mitigation
278305
"-Dnet.minecraft.clientmodname=" + "QuestCraft",
279-
"-Dext.net.resolvPath=" + Constants.USER_HOME + "/hacks/ResConfHack.jar",
306+
"-Dext.net.resolvPath=" + resConfFile,
280307
"-Dsodium.checks.issue2561=false",
281-
"-Dorg.sqlite.lib.path=" + ctx.getApplicationInfo().nativeLibraryDir ));
308+
"-Dorg.sqlite.lib.path=" + ctx.getApplicationInfo().nativeLibraryDir
309+
));
282310
}
283311

284312
/**

0 commit comments

Comments
 (0)