Slowargo
Slowargo
关注数: 1
粉丝数: 10
发帖数: 86
关注贴吧数: 3
我也来晒个ymtoys玫...这款是不是中奖概率比较高? 买了2颗头,这颗扫码抽奖中了。 感觉肤色偏白,显得妆比较淡,自己补了点腮红。头雕风格还是有点偏CG,不太像真人。大小不算大,感觉搭配窄肩素体还不错。算是比较少有和白肌窄肩素体比较搭的?
继续练习用PS修图捏脸...
PS捏脸... 原型是SDH015,捏得面目全非了,哈
随手搭随手搭 说明一下,脸和素体有PS过,和实物不一样……
随手搭 呃,这都还能违规?
双马尾小姐姐(Part2) Part1 - https://tieba.baidu.com/p/6991969237
双马尾小姐姐...
继续扔一些新手照 几个月前拍的,后来回头一看惨不忍睹,挑几张勉强能看的吧... 拍完后素体就手指骨折了,目前已经包起来吃灰了
新人又来发照片啦~随便搭了一下 懒得搭景了,几块板子凑合一下 修图修到爆肝...
继续丢几张入坑照~
新人,一波入坑照 摄影+娃娃,穷三代啊
(伪)2075年广州地下城的市井生活 摄于广州时尚天河
☆1931 返图☆年会现场~ 就一首歌,随便拍拍
请问a4版 mini5最新固件是啥版本? 1.0.3?
【miui】MIUI dexspy简析 dexspy是小米基于著名的xposed框架修改的新patchrom框架。这几天瞄了一下反编译的代码,做个笔记。 与smali注入相比,新的机制借助xposed的hook机制可以使未来MIUI移植适配变得更简单。 dexspy的java部分代码在framework_ext中,核心类是miui/dexspy/*,代码和xposed旧机制的源码还是挺类似的,不过做了一个修改: arrayOfString[0] = "android.app.Activity"; arrayOfString[1] = "android.app.ActivityManager"; arrayOfString[2] = "android.app.ApplicationPackageManager"; arrayOfString[3] = "android.app.Dialog"; arrayOfString[4] = "android.app.DownloadManager$CursorTranslator"; arrayOfString[5] = "android.app.LoadedApk"; .... sHookedClassNames = arrayOfString; 这个数组定义了所有需要hook的类。在初始化时,会对每个类的特定方法挂上before和after钩子: private static void initDexspyZygote() throws Exception { for(String className : sHookedClassNames) { hookMethodsThroughHandler(className, getHookClassName(className)); } } public static void hookMethodsThroughHandler(String className, String handlerClassName) { Class<?> clazz = ReflectionUtils.findClass(className, 0x0); Class<?> handlerClazz = ReflectionUtils.findClass(handlerClassName, 0x0); Method[] methods = handlerClazz.getMethods(); for(Method method : methods) { if((!method.getName().startsWith("before_")) && (!method.getName().startsWith("after_"))) { } Member hookedMethod = findHookedMethod(clazz, method); hookMethod(hookedMethod, MethodHookTemplate.sInstance); } } 然而每个类都可能有n多方法,dexspy怎么知道要hook哪些呢? framework_ext反编译出来后,可以看到很多Injector.java文件,比如android/app/Injector.java放的就是前面那些android.app.*的钩子: static class ActivityHook { private static final String TAG = "Activity"; public static void after_onCreate(MethodHook.MethodHookParam paramMethodHookParam, Bundle paramBundle) { Activity localActivity = (Activity)paramMethodHookParam.thisObject; if ((UiUtils.isV5Ui(localActivity)) && (UiUtils.resolveAttribute(localActivity, 16842926) == 101515270)) localActivity.getWindow().setGravity(80); } public static void after_onOptionsItemSelected(MethodHook.MethodHookParam paramMethodHookParam, MenuItem paramMenuItem) { Activity localActivity = (Activity)paramMethodHookParam.thisObject; if ((UiUtils.isV5Ui(localActivity)) && (paramMenuItem.getItemId() == 16908332)) { localActivity.finish(); paramMethodHookParam.setResult(Boolean.valueOf(true)); } } ... 比如这个就是android.app.Activity类的钩子了,里面hook了onCreate(), onOptionsItemSelected()等方法。dexspy加载时会对扫描这些Injector,将相应方法的before和after钩子挂上。 跟xposed主要的区别就在这里,好处就是以后这套框架如果开放了,模块编写自己的Injector类就能方便实现挂钩。当然现在的xposed也挺方便,但代码没这么直观清晰就是了。 另外就是dexspy是基于旧xposed的,效率不如目前版本的xposed,尤其hook很多时效率会比较糟糕,估计未来会对dexspy做一次升级吧。
中文输入法的问题还有解不 next一直没办法直接在地址栏/快速搜索栏等地方输入中文,除非先敲一个字符
1
下一页