当前位置:网站首页 > 收益展现 > 正文

xposed简介以及小米去桌面广告的简单实现

作者:admin发布时间:2021-09-29分类:收益展现浏览:评论:4


导读:如何开发自己的模块关于开发自己的模块在项目的wiki中有很详细的介绍并且开发模块的话确实比较简单难点在于找到你想实现功能的切入点我们这里以去掉小米桌面的广告为例。关于如何开发模块前...

xposed简介以及小米去桌面广告的简单实现

如何开发自己的模块

关于开发自己的模块在项目的wiki中有很详细的介绍并且开发模块的话确实比较简单难点在于找到你想实现功能的切入点我们这里以去掉小米桌面的广告为例。关于如何开发模块前往查看学习

要想实现去广告首先我们需要想一些办法我最初想到的办法是从广告的Api入手替换掉url地址经过试验失败了。但是发现小米桌面文件夹(就那个好几个app放在一起的地方)有个隐藏的功能修改名称的时候下面有个是否推荐那个这里可以关掉广告所以从这里入手。

第一步我们需要拿到小米Home的代码这个对于我们root了的手机简单的很不过这里我们要对代码进行一些操作因为我们能拿到的是odex文件我们要将其转化为jar文件,转换过程odex--dex-jar这里我们借助两个开源项目可以轻松完成。…(…)

github.com/pxb1988/dex…

第二步找到对应点击文件夹图标的方法我们直接在Launcher中搜索openF(older)关于Launcher这里不多说。我们能搜索到如下代码。

publicvoidopenFolder(FolderInfoparamFolderInfo,ViewparamView){this.mFolderClosingInNormalEditfalse;this.mWorkspace.post(newRunnable(this,paramFolderInfo){publicvoidrun(){if(Launcher.access$1100(this.this$0).isOpened())return;Launcher.access$3702(this.this$0,false);ShortcutIcon.setEnableLoadingAnim(true);Launcher.access$1100(this.this$0).bind(this.val$folderInfo);Launcher.access$1100(this.this$0).open();this.this$0.updateStatusBarClock();Launcher.access$3800(this.this$0).cancel();if((this.this$0.isInNormalEditing())||(this.this$0.isSceneShowing()))Launcher.access$3800(this.this$0).setDuration(Folder.DEFAULT_FOLDER_BACKGROUND_SHORT_DURATION);while(true){do{Launcher.access$3800(this.this$0).setFloatValues(newfloat[]{0F,1F});Launcher.access$3800(this.this$0).setInterpolator(newCubicEaseInOutInterpolater());Launcher.access$3800(this.this$0).start();}while(this.this$0.isInEditing();this.val$folderInfo.onLaunch();LauncherModel.updateItemFlagAndLaunchCount(this.this$0,this.val$folderInfo);return;Launcher.access$3800(this.this$0).setDuration(Folder.DEFAULT_FOLDER_OPEN_DURATION);}}});}复制代码

我们这里能发现FolderInfo这个类作为了一个参数很明显这是描述Folder的信息的那么是否推荐这个属性一定是在这里面了。我们进去看看。

在这里搜索recommend我们能发现这么一个变量。

privatebooleanmEnbaleRecommendAppsViewfalse;复制代码

细心的同学发现他这个变量名是不是手抖了。。。

private那么我们不管三七二十一直接干掉get方法直接返回false是不是就可以实现呢尝试一波写下如下代码。

publicclassXposedDemoimplementsIXposedHookLoadPackage{privatestaticfinalStringTAGmyxposedOverridepublicvoidhandleLoadPackage(XC_LoadPackage.LoadPackageParamlpparam)throwsThrowable{Log.e(TAG,handleLoadPackage:lpparam.packageName-----lpparam.appInfo.sourceDir);if(lpparam.packageName.equals(com.miui.home)){Log.e(TAG,handleLoadPackage:miui.homefindAndHookMethod(com.miui.home.launcher.FolderInfo,lpparam.classLoader,isRecommendAppsViewEnable,Context.class,newXC_MethodReplacement(){OverrideprotectedObjectreplaceHookedMethod(MethodHookParamparam)throwsThrowable{Log.e(TAG,replaceHookedMethod:被调用了returnfalse;}});}}}复制代码

安装勾选重启。然后点开文件夹发现舒服的很确实没了在编辑文件夹属性把这个推荐打开哈还是没有。果然我们成功了。

最后

有没有学到呢我把小米Home的jar包以及当时做的简陋的ppt放在了blog_resource这个仓库有需要的可以去拿。


已有4位网友发表了看法:

欢迎 发表评论: