ColoThor 最近的时间轴更新
ColoThor

ColoThor

V2EX 第 371439 号会员,加入于 2018-12-19 11:28:10 +08:00
今日活跃度排名 823
一加氢系统相册疑似人脸识别日志
Android  •  ColoThor  •  2023-05-19 16:32:57 PM  •  最后回复来自 vivisidea
21
遭受到了高德地图的短信轰炸。。
  •  1   
    全球工单系统  •  ColoThor  •  2021-08-13 19:42:31 PM  •  最后回复来自 suifengdang666
    4
    赋值异常 bug,不知道怎么处理。。
    Java  •  ColoThor  •  2021-03-22 17:14:37 PM  •  最后回复来自 ColoThor
    7
    synchronized 引发的问题,进来解答一下
  •  1   
    Java  •  ColoThor  •  2019-05-30 21:32:36 PM  •  最后回复来自 ColoThor
    5
    ColoThor 最近回复了
    试试我的方法,在 initZygote 方法内添加代码
    ```language
    AndroidActivityManagerHook.getInstance().start();
    ```

    AndroidActivityManagerHook 类,把其中的 xxx.xxx.xxx.xxx,替换为实际的引用包名
    ```language
    public class AndroidActivityManagerHook {
    public static String TAG = AndroidActivityManagerHook.class.getSimpleName();

    public static AndroidActivityManagerHook getInstance() {
    return InstanceUtils.instance;
    }

    private AndroidActivityManagerHook() {

    }

    private static class InstanceUtils {
    private static final AndroidActivityManagerHook instance = new AndroidActivityManagerHook();
    }

    public void start() {
    hookActivityManager(null);
    }

    private void hookActivityManager(ClassLoader classLoader) {
    try {
    String activityManagerClassName = "android.app.ActivityManager";
    Class activityManagerClass = XposedHelpers.findClassIfExists(activityManagerClassName, classLoader);
    if (activityManagerClass != null) {
    XposedBridge.hookAllMethods(activityManagerClass, "checkComponentPermission", new XC_MethodHook() {
    @Override
    protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
    super.beforeHookedMethod(param);
    try {
    String permission = (String) param.args[0];
    if (TextUtils.isEmpty(permission)) {
    return;
    }

    if (!Manifest.permission.WRITE_SECURE_SETTINGS.equals(permission)) {
    return;
    }

    int uid = (int) param.args[1];
    if (uid == 0) {
    return;
    }

    Context context = AndroidAppHelper.currentApplication().getApplicationContext();
    if (context == null) {
    return;
    }

    String packageName = context.getPackageManager().getNameForUid(uid);
    if ("xxx.xxx.xxx.xxx".equals(packageName)) {
    param.setResult(PackageManager.PERMISSION_GRANTED);
    Log.w(TAG, "access " + permission + " to " + packageName);
    }
    } catch (Exception e) {
    e.printStackTrace();
    Log.e(TAG, param.method.getName() + " error\n" + Log.getStackTraceString(e));
    }
    }
    });
    } else {
    Log.e(TAG, "class not find: " + activityManagerClassName);
    }
    } catch (Exception e) {
    Log.e(TAG, "hookActivityManager error:\n" + Log.getStackTraceString(e));
    }
    }
    }
    ```

    最后别忘了添加作用域 系统框架
    38 天前
    回复了 SingeeKing 创建的主题 分享创造 利用 Cloudflare Workers 自建 Docker 镜像
    wrangler 命令要在 npm 环境下执行,Cloudflare 网页执行不了?
    @ALin596 #14 我以为这软件早就用不了了
    @ALin596 #10 怎么修改定位
    坐标福州,api.viyf.org [202.144.195.26] 三网都不通,代理才能访问
    24 层+1 手机获取到的 GPS 可以通过相关算法转成别的坐标系
    有 Azure 账号的安卓用户,可以试试我写的 Demo
    https://github.com/Colo-Thor/AzureTextSpeech
    @lemonTreeTop #9 可以了,谢谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1095 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 18:58 · PVG 02:58 · LAX 11:58 · JFK 14:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.