shortx命令
1 subscriber
1 photo
1 file
5 links
Download Telegram
Forwarded from 𝓗𝓮
android.os.ServiceManager.getService("clipboard").areClipboardAccessNotificationsEnabledForUser(0);
// 获取指定用户剪贴板访问通知是否启用
// 例如已将剪贴板中内容粘贴到**的吐司通知

#MVEL表达式 #Javascript
Forwarded from 𝓗𝓮
android.os.ServiceManager.getService("clipboard").setClipboardAccessNotificationsEnabledForUser(false, 0);
// 设置指定用户剪贴板访问通知关闭
// 例如已将剪贴板中内容粘贴到**的吐司通知

#MVEL表达式 #Javascript
Forwarded from 𝓗𝓮
android.os.ServiceManager.getService("clipboard").setClipboardAccessNotificationsEnabledForUser(true, 0);
// 设置指定用户剪贴板访问通知开启
// 例如已将剪贴板中内容粘贴到**的吐司通知

#MVEL表达式 #Javascript
Forwarded from 𝓗𝓮
android.os.ServiceManager.getService("usb").isFunctionEnabled("adb");
/*
rndis → USB共享网络
none → 仅充电
mtp → 文件传输
ptp → 图片传输
adb → 设备调试
*/
// 检查USB功能是否启用(如adb、mtp)

#MVEL表达式 #Javascript
Forwarded from 𝓗𝓮
android.os.ServiceManager.getService("adb").clearDebuggingKeys();
// 清除ADB调试密钥

#MVEL表达式 #Javascript
Forwarded from 𝓗𝓮
android.os.ServiceManager.getService("adb").getAdbWirelessPort();
// 获取ADB无线端口

#MVEL表达式 #Javascript
Forwarded from 𝓗𝓮
android.os.ServiceManager.getService("adb").allowWirelessDebugging(true, "**:**:**:**:**:**")
// 无线调试授权指定公钥
/*
写入非当前wifi的BSSID前,需关闭无线调试开关。
如果写入的是当前WiFi的BSSID会自动打开无线ADB调试
具体观察/data/misc/adb/adb_temp_keys.xml
**:**这个参数是指wifi的BSSID,一般都是授权当前WiFi
*/

#MVEL表达式 #Javascript
Forwarded from 𝓗𝓮
bssid = android.os.ServiceManager.getService("wifi").getConnectionInfo("android", null).getBSSID();
android.os.ServiceManager.getService("adb").allowWirelessDebugging(true, bssid)
// 无线ADB授权当前WiFi并启动无线ADB调试

#MVEL表达式 #Javascript
Forwarded from 𝓗𝓮
android.os.ServiceManager.getService("wifi").getConnectionInfo("android", null).getBSSID();
// 获取当前WiFi的BSSID

#MVEL表达式 #Javascript
Forwarded from 𝓗𝓮
android.os.ServiceManager.getService("wifi").getConnectionInfo("android", null).getSSID();
// 获取当前WiFi的名称

#MVEL表达式 #Javascript
Forwarded from 𝓗𝓮
android.os.ServiceManager.getService("wifi").getConnectionInfo("android", null).getMacAddress();
// 获取当前WiFi的MAC地址

#MVEL表达式 #Javascript
Forwarded from 𝓗𝓮
ip = android.os.ServiceManager.getService("wifi").getConnectionInfo("android", null).getIpAddress();
(ip & 0xff) + "." + ((ip >> 8) & 0xff) + "." +
((ip >> 16) & 0xff) + "." + ((ip >> 24) & 0xff);
// 获取当前WiFi IP

#MVEL表达式 #Javascript
Forwarded from 𝓗𝓮
android.os.ServiceManager.getService("wifi").getConnectionInfo("android", null);
// 获取当前WiFi 全部信息
// 我就不一个一个弄了,有些我自己也不需要

#MVEL表达式 #Javascript
Forwarded from 𝓗𝓮
发一些我之前在官方群组发过的命令吧,重构后同时兼容两种语法,且代码更加简洁
Forwarded from 𝓗𝓮
statusbar = context.getSystemService("statusbar");
// 设置禁用标志(禁用通知图标、系统信息、时钟)
statusbar.disable(statusbar.DISABLE_NOTIFICATION_ICONS | statusbar.DISABLE_SYSTEM_INFO | statusbar.DISABLE_CLOCK);
// 设置隐藏状态栏基本内容显示
/*
禁用后台多任务界面
DISABLE_RECENT
禁用导航栏
DISABLE_NAVIGATION
全家桶(禁用所有能禁用的组件)(慎用)
DISABLE_MASK
禁用下拉状态栏(个别系统恢复下拉状态栏,执行恢复命令后需锁屏一次)
DISABLE_EXPAND

详情查看https://blog.csdn.net/qq_45146250/article/details/131088228
*/

#MVEL表达式 #Javascript
Forwarded from 𝓗𝓮
context.getSystemService("statusbar").disable(0);
//设置显示状态栏所有内容

#MVEL表达式 #Javascript
Forwarded from 𝓗𝓮
Build = android.os.Build;
IBinder = android.os.IBinder;
Parcel = android.os.Parcel;
ServiceManager = android.os.ServiceManager;
SurfaceControl = android.view.SurfaceControl;

displayMode = 0; // 直接设置电源模式 2: 开启, 0: 关闭

if (Build.VERSION.SDK_INT < 34) { // Android 14 之前的版本
// 获取 SurfaceControl 类(旧版本需要实例化)
surfaceControl = new SurfaceControl();

// 根据 Android 版本获取显示器 Token 方法
displayToken = (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) ?
surfaceControl.getBuiltInDisplay(0) : SurfaceControl.getInternalDisplayToken();

// 直接调用 SurfaceControl 的方法,设置电源模式
SurfaceControl.setDisplayPowerMode(displayToken, displayMode);

} else { // Android 14 及以上版本
// 获取 SurfaceFlinger 服务(AIDL 方式)
surfaceFlingerService = ServiceManager.getService("SurfaceFlingerAIDL");

// 获取显示器 ID 列表
parcelData = Parcel.obtain();
parcelReply = Parcel.obtain();
parcelData.writeInterfaceToken("android.gui.ISurfaceComposer");
surfaceFlingerService.transact(IBinder.FIRST_CALL_TRANSACTION + 5, parcelData, parcelReply, 0);
parcelReply.readException();
displayCount = parcelReply.readInt();

// 创建 long[] 数组存储显示器 ID
displayIds = java.lang.reflect.Array.newInstance(java.lang.Long.TYPE, displayCount);

// 读取显示器 ID
for (var i = 0; i < displayCount; i++) {
displayIds[i] = parcelReply.readLong();
}
parcelData.recycle();
parcelReply.recycle();

// 遍历每个显示器,设置电源模式
for (var i = 0; i < displayIds.length; i++) {
displayId = displayIds[i];

// 获取单个显示器的 Token
parcelData = Parcel.obtain();
parcelReply = Parcel.obtain();
parcelData.writeInterfaceToken("android.gui.ISurfaceComposer");
parcelData.writeLong(displayId);
surfaceFlingerService.transact(IBinder.FIRST_CALL_TRANSACTION + 6, parcelData, parcelReply, 0);
parcelReply.readException();
displayToken = parcelReply.readStrongBinder();
parcelData.recycle();
parcelReply.recycle();

// 直接调用 SurfaceControl 的方法,设置电源模式(0=强制息屏,2=开启电源模式)
SurfaceControl.setDisplayPowerMode(displayToken, displayMode);
}
}
// Extinguish 息屏挂机 息屏运行 听剧模式 仅关屏 息屏不锁屏 息屏不锁屏 游戏挂机 开屏伪装FakeSceen

#MVEL表达式 #Javascript
Forwarded from 𝓗𝓮
// 只对与手机分辨率相同的显示设备生效,可避免导致全部显示设备同时关闭屏幕电源
Build = android.os.Build;
IBinder = android.os.IBinder;
Parcel = android.os.Parcel;
ServiceManager = android.os.ServiceManager;
SurfaceControl = android.view.SurfaceControl;
Context = android.content.Context;
DisplayMetrics = android.util.DisplayMetrics;

// 设置电源模式,0: 关闭,2: 开启
displayMode = 0;

// 获取 DisplayManager 服务
displayManager = context.getSystemService("display");
// 获取手机的分辨率
metrics = new DisplayMetrics();
context.getSystemService(Context.WINDOW_SERVICE).getDefaultDisplay().getMetrics(metrics);
phoneWidth = metrics.widthPixels;
phoneHeight = metrics.heightPixels;

if (Build.VERSION.SDK_INT < 34) { // Android 14 之前的版本
// 获取 SurfaceControl 类(旧版本需要实例化)
surfaceControl = new SurfaceControl();

// 根据 Android 版本获取显示器 Token 方法
displayToken = (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) ?
surfaceControl.getBuiltInDisplay(0) : SurfaceControl.getInternalDisplayToken();

// 直接调用 SurfaceControl 的方法,设置电源模式
SurfaceControl.setDisplayPowerMode(displayToken, displayMode);

} else { // Android 14 及以上版本
// 获取 SurfaceFlinger 服务(AIDL 方式)
surfaceFlingerService = ServiceManager.getService("SurfaceFlingerAIDL");

// 获取显示器 ID 列表
parcelData = Parcel.obtain();
parcelReply = Parcel.obtain();
parcelData.writeInterfaceToken("android.gui.ISurfaceComposer");
surfaceFlingerService.transact(IBinder.FIRST_CALL_TRANSACTION + 5, parcelData, parcelReply, 0);
parcelReply.readException();
displayCount = parcelReply.readInt();

// 创建 long[] 数组存储显示器 ID
displayIds = java.lang.reflect.Array.newInstance(java.lang.Long.TYPE, displayCount);

// 读取显示器 ID 并获取每个显示器分辨率
for (var i = 0; i < displayCount; i++) {
displayIds[i] = parcelReply.readLong();
parcelData.recycle();
parcelReply.recycle();

// 获取每个显示器的分辨率
display = displayManager.getDisplay(i);
display.getMetrics(metrics);
displayWidth = metrics.widthPixels;
displayHeight = metrics.heightPixels;

// 只有当显示器分辨率与手机屏幕相同,才设置电源模式
if (displayWidth == phoneWidth && displayHeight == phoneHeight) {
// 获取显示器的 Token
parcelData = Parcel.obtain();
parcelReply = Parcel.obtain();
parcelData.writeInterfaceToken("android.gui.ISurfaceComposer");
parcelData.writeLong(displayIds[i]);
surfaceFlingerService.transact(IBinder.FIRST_CALL_TRANSACTION + 6, parcelData, parcelReply, 0);
parcelReply.readException();
displayToken = parcelReply.readStrongBinder();
parcelData.recycle();
parcelReply.recycle();

// 设置电源模式(0=强制息屏,2=开启电源模式)
SurfaceControl.setDisplayPowerMode(displayToken, displayMode);
} else {
// 如果分辨率不匹配,跳过该显示器,继续遍历下一个显示器
continue;
}
}
}
// 只对与手机分辨率相同的显示设备生效,可避免导致全部显示设备同时关闭屏幕电源

#MVEL表达式 #Javascript
Forwarded from 𝓗𝓮
android.nfc.INfcAdapter.Stub.asInterface(android.os.ServiceManager.getService("nfc")).getState() == 3;
// 判断NFC是否开启

#MVEL表达式 #Javascript
Forwarded from 𝓗𝓮
InputDevice = android.view.InputDevice;

inputManager = android.os.ServiceManager.getService("input");

deviceIds = inputManager.getInputDeviceIds();

touchDeviceId = -1;

for (i = 0; i < deviceIds.length; i++) {
id = deviceIds[i];
sources = inputManager.getInputDevice(id).getSources();
if ((sources & InputDevice.SOURCE_TOUCHSCREEN) == InputDevice.SOURCE_TOUCHSCREEN) {
touchDeviceId = id;
}
}

inputManager.disableInputDevice(touchDeviceId);
// 禁用触摸设备

#MVEL表达式 #Javascript
Forwarded from 𝓗𝓮
InputDevice = android.view.InputDevice;

inputManager = android.os.ServiceManager.getService("input");

deviceIds = inputManager.getInputDeviceIds();

touchDeviceId = -1;

for (i = 0; i < deviceIds.length; i++) {
id = deviceIds[i];
sources = inputManager.getInputDevice(id).getSources();
if ((sources & InputDevice.SOURCE_TOUCHSCREEN) == InputDevice.SOURCE_TOUCHSCREEN) {
touchDeviceId = id;
}
}

inputManager.enableInputDevice(touchDeviceId);
// 设置启用屏幕触摸

#MVEL表达式 #Javascript