diff --git a/.gitmodules b/.gitmodules index fc4e043f..37ddf116 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,8 +7,8 @@ [submodule "submodules/libpcap"] path = submodules/libpcap url = https://github.com/the-tcpdump-group/libpcap -[submodule "submodules/res"] - path = submodules/res +[submodule "app/src/main/res/raw"] + path = app/src/main/res/raw url = https://github.com/emanuele-f/PCAPdroid_res [submodule "submodules/MaxMind-DB-Reader-java"] path = submodules/MaxMind-DB-Reader-java diff --git a/app/build.gradle b/app/build.gradle index 6b329993..8f37a376 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -48,6 +48,10 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } + + sourceSets { + main.java.srcDirs += '../submodules/MaxMind-DB-Reader-java/src/main/java' + } } dependencies { diff --git a/app/src/main/java/com/emanuelef/remote_capture/Geolocation.java b/app/src/main/java/com/emanuelef/remote_capture/Geolocation.java index 015052a3..f9a923af 100644 --- a/app/src/main/java/com/emanuelef/remote_capture/Geolocation.java +++ b/app/src/main/java/com/emanuelef/remote_capture/Geolocation.java @@ -30,9 +30,7 @@ import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; -import java.io.OutputStream; import java.net.InetAddress; -import java.util.zip.GZIPInputStream; /* A class to query geolocation info from IP addresses. */ public class Geolocation { @@ -63,12 +61,12 @@ public class Geolocation { private void openDb() { try { File countryFile = new File(mContext.getCacheDir() + "/dbip_country_lite.mmdb"); - ungzip(R.raw.dbip_country_lite_2021_11_mmdb_gz, countryFile); + res_to_file(R.raw.dbip_country_lite, countryFile); mCountryReader = new Reader(countryFile); Log.d(TAG, "Country DB loaded: " + mCountryReader.getMetadata()); File asnFile = new File(mContext.getCacheDir() + "/dbip_asn_lite.mmdb"); - ungzip(R.raw.dbip_asn_lite_2021_11_mmdb_gz, asnFile); + res_to_file(R.raw.dbip_asn_lite, asnFile); mAsnReader = new Reader(asnFile); Log.d(TAG, "ASN DB loaded: " + mAsnReader.getMetadata()); } catch (IOException e) { @@ -77,13 +75,14 @@ public class Geolocation { } } - private void ungzip(int resid, File dst) throws IOException { - try(InputStream is = new GZIPInputStream(mContext.getResources().openRawResource(resid))) { + // We need to get a File from the resource so that the Reader can mmap it + private void res_to_file(int resid, File dst) throws IOException { + try(InputStream is = mContext.getResources().openRawResource(resid)) { try(BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(dst))) { byte[] bytesIn = new byte[4096]; - int read = 0; + int read; - while ((read = is.read(bytesIn)) != -1) + while((read = is.read(bytesIn)) != -1) bos.write(bytesIn, 0, read); } } diff --git a/app/src/main/java/com/maxmind b/app/src/main/java/com/maxmind deleted file mode 120000 index 8faf93d2..00000000 --- a/app/src/main/java/com/maxmind +++ /dev/null @@ -1 +0,0 @@ -../../../../../submodules/MaxMind-DB-Reader-java/src/main/java/com/maxmind \ No newline at end of file diff --git a/app/src/main/jni/common/utils.c b/app/src/main/jni/common/utils.c index 923a7fb7..62513c6a 100644 --- a/app/src/main/jni/common/utils.c +++ b/app/src/main/jni/common/utils.c @@ -241,7 +241,7 @@ void hexdump(const char *buf, size_t bufsize) { if((off % 16) != 0) { out[idx] = '\0'; log_d("%s", out); - idx = sprintf(out, "%06x", off); + idx = sprintf(out, "%06zx", off); } out[idx] = '\0'; diff --git a/app/src/main/res/raw b/app/src/main/res/raw deleted file mode 120000 index 94c1e772..00000000 --- a/app/src/main/res/raw +++ /dev/null @@ -1 +0,0 @@ -../../../../submodules/res/raw \ No newline at end of file diff --git a/app/src/main/res/raw b/app/src/main/res/raw new file mode 160000 index 00000000..936109f0 --- /dev/null +++ b/app/src/main/res/raw @@ -0,0 +1 @@ +Subproject commit 936109f0a2b30783bdf273e5e7c6092d2a4817bc diff --git a/submodules/res b/submodules/res deleted file mode 160000 index 64a2e49b..00000000 --- a/submodules/res +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 64a2e49b6ad58a094f8c726d054a02cbe945c6b5