diff --git a/app/src/main/java/com/fongmi/android/tv/player/ParseJob.java b/app/src/main/java/com/fongmi/android/tv/player/ParseJob.java index 86aceae89..570fe79c3 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/ParseJob.java +++ b/app/src/main/java/com/fongmi/android/tv/player/ParseJob.java @@ -12,9 +12,9 @@ import com.fongmi.android.tv.impl.ParseCallback; import com.fongmi.android.tv.server.Server; import com.fongmi.android.tv.ui.custom.CustomWebView; import com.fongmi.android.tv.utils.UrlUtil; -import com.fongmi.android.tv.utils.Util; import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Json; +import com.github.catvod.utils.Util; import com.google.common.net.HttpHeaders; import com.google.gson.JsonElement; import com.google.gson.JsonObject; diff --git a/app/src/main/java/com/fongmi/android/tv/utils/Util.java b/app/src/main/java/com/fongmi/android/tv/utils/Util.java index 58273ff55..0cf135cda 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/Util.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/Util.java @@ -10,7 +10,6 @@ import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.res.Configuration; -import android.net.wifi.WifiManager; import android.os.Build; import android.os.IBinder; import android.os.Parcelable; @@ -23,10 +22,9 @@ import android.view.inputmethod.InputMethodManager; import com.fongmi.android.tv.App; import com.fongmi.android.tv.R; +import com.github.catvod.utils.Shell; -import java.io.BufferedReader; -import java.io.FileReader; -import java.io.IOException; +import java.net.NetworkInterface; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Formatter; @@ -106,18 +104,24 @@ public class Util { } public static String getSerial() { - try (BufferedReader reader = new BufferedReader(new FileReader("/proc/cpuinfo"))) { - String line; - while ((line = reader.readLine()) != null) if (line.startsWith("Serial")) return line.split(":")[1].trim(); - return ""; - } catch (IOException e) { - return ""; - } + return Shell.exec("getprop ro.serialno"); } public static String getMac() { - WifiManager manager = (WifiManager) App.get().getApplicationContext().getSystemService(Context.WIFI_SERVICE); - return manager.getConnectionInfo().getMacAddress(); + String eth = getMac("eth0"); + String wlan = getMac("wlan0"); + return !wlan.isEmpty() ? wlan : eth; + } + + public static String getMac(String name) { + try { + StringBuilder sb = new StringBuilder(); + NetworkInterface nif = NetworkInterface.getByName(name); + for (byte b : nif.getHardwareAddress()) sb.append(String.format("%02X:", b)); + return sb.substring(0, sb.length() - 1); + } catch (Exception e) { + return ""; + } } public static String getDeviceName() { @@ -126,15 +130,6 @@ public class Util { return model.startsWith(manufacturer) ? model : manufacturer + " " + model; } - public static String substring(String text) { - return substring(text, 1); - } - - public static String substring(String text, int num) { - if (text != null && text.length() > num) return text.substring(0, text.length() - num); - return text; - } - public static long format(SimpleDateFormat format, String src) { try { return format.parse(src).getTime(); diff --git a/catvod/src/main/java/com/github/catvod/utils/Shell.java b/catvod/src/main/java/com/github/catvod/utils/Shell.java index 6fde6a3e4..ee06ae985 100644 --- a/catvod/src/main/java/com/github/catvod/utils/Shell.java +++ b/catvod/src/main/java/com/github/catvod/utils/Shell.java @@ -2,16 +2,25 @@ package com.github.catvod.utils; import com.orhanobut.logger.Logger; +import java.io.BufferedReader; +import java.io.InputStreamReader; + public class Shell { private static final String TAG = Shell.class.getSimpleName(); - public static void exec(String command) { + public static String exec(String command) { try { - int code = Runtime.getRuntime().exec(command).waitFor(); - if (code != 0) Logger.t(TAG).d("Shell command '%s' failed with exit code '%s'", command, code); + StringBuilder sb = new StringBuilder(); + Process p = Runtime.getRuntime().exec(command); + BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); + String line; + while ((line = br.readLine()) != null) sb.append(line).append("\n"); + Logger.t(TAG).d("Shell command '%s' with exit code '%s'", command, p.waitFor()); + return Util.substring(sb.toString()); } catch (Exception e) { e.printStackTrace(); + return ""; } } } \ No newline at end of file diff --git a/catvod/src/main/java/com/github/catvod/utils/Util.java b/catvod/src/main/java/com/github/catvod/utils/Util.java index 0220732c1..39924985d 100644 --- a/catvod/src/main/java/com/github/catvod/utils/Util.java +++ b/catvod/src/main/java/com/github/catvod/utils/Util.java @@ -103,6 +103,15 @@ public class Util { } } + public static String substring(String text) { + return substring(text, 1); + } + + public static String substring(String text, int num) { + if (text != null && text.length() > num) return text.substring(0, text.length() - num); + return text; + } + public static String getIp() { try { WifiManager manager = (WifiManager) Init.context().getApplicationContext().getSystemService(Context.WIFI_SERVICE);