Skip to content

Commit e8071f0

Browse files
committed
opt: AboutPage get device_name on Android 16
f**k xiaomi
1 parent fe208a4 commit e8071f0

2 files changed

Lines changed: 27 additions & 2 deletions

File tree

  • app/src/main/java/com/sevtinge/hyperceiler/main/page
  • library/hook/src/main/java/com/sevtinge/hyperceiler/hook/utils

app/src/main/java/com/sevtinge/hyperceiler/main/page/AboutPage.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,10 @@
1919
package com.sevtinge.hyperceiler.main.page;
2020

2121
import static com.sevtinge.hyperceiler.hook.utils.PropUtils.getProp;
22+
import static com.sevtinge.hyperceiler.hook.utils.PropUtils.getPropSu;
2223
import static com.sevtinge.hyperceiler.hook.utils.devicesdk.DeviceSDKKt.getDeviceToken;
2324
import static com.sevtinge.hyperceiler.hook.utils.devicesdk.SystemSDKKt.getSystemVersionIncremental;
25+
import static com.sevtinge.hyperceiler.hook.utils.devicesdk.SystemSDKKt.isMoreAndroidVersion;
2426

2527
import android.content.res.Configuration;
2628
import android.graphics.Rect;
@@ -38,7 +40,6 @@
3840
import androidx.preference.SwitchPreference;
3941
import androidx.recyclerview.widget.RecyclerView;
4042

41-
import com.hchen.hooktool.log.AndroidLog;
4243
import com.sevtinge.hyperceiler.BuildConfig;
4344
import com.sevtinge.hyperceiler.R;
4445
import com.sevtinge.hyperceiler.common.utils.MainActivityContextHelper;
@@ -257,13 +258,22 @@ public void initPrefs() {
257258
mDeviceInfoAndroid = findPreference("prefs_key_about_device_info_android");
258259
mDeviceInfoOs = findPreference("prefs_key_about_device_info_os");
259260
mDeviceInfoPadding = findPreference("prefs_key_about_device_info_padding");
260-
String deviceName = getProp("persist.sys.device_name");
261+
262+
String deviceName;
263+
if (isMoreAndroidVersion(36)) {
264+
// 我就说我设备名字怎么就对不上了,这玩意还要 Root 获取,破烂
265+
deviceName = getPropSu("persist.private.device_name");
266+
} else {
267+
deviceName = getProp("persist.sys.device_name");
268+
}
261269
String marketName = getProp("ro.product.marketname");
262270
String androidVersion = getProp("ro.build.version.release");
263271
String osVersion = getSystemVersionIncremental();
272+
264273
if (Objects.equals(marketName, "")) marketName = android.os.Build.MODEL;
265274
if (Objects.equals(deviceName, "")) deviceName = marketName;
266275
if (Objects.equals(osVersion, "")) osVersion = androidVersion;
276+
267277
mDeviceName.setTitle(deviceName);
268278
mDeviceInfoDevice.setTitle(marketName);
269279
mDeviceInfoAndroid.setTitle(androidVersion);

library/hook/src/main/java/com/sevtinge/hyperceiler/hook/utils/PropUtils.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
*/
1919
package com.sevtinge.hyperceiler.hook.utils;
2020

21+
import static com.sevtinge.hyperceiler.hook.utils.shell.ShellUtils.checkRootPermission;
22+
2123
import android.annotation.SuppressLint;
2224
import android.content.Context;
2325
import android.util.Log;
@@ -89,6 +91,19 @@ public static String getProp(String name) {
8991
}
9092
}
9193

94+
public static String getPropSu(String name) {
95+
try {
96+
if (checkRootPermission() == 0) {
97+
return ShellUtils.rootExecCmd("getprop " + name);
98+
} else {
99+
return "";
100+
}
101+
} catch (Throwable e) {
102+
Log.e(TAG, "PropUtils getPropSu String no def", e);
103+
return "";
104+
}
105+
}
106+
92107
/**
93108
* 系统限制只能使用Root。
94109
* 返回 true 表示成功。

0 commit comments

Comments
 (0)