【准备事项】
1. 准备好工具apktool,确定你对apktool的反编译和重新编译有所了解,而且知道怎么使用。
2. 准备好文本编辑器notepad++ 。
3. 准备好工具backsmali 。
【详细修改步骤】
1、修改flashbarservice.apk
用apktool反编译system/app目录中的flashbarservice.apk
进入flashbarservicesmalicomsecandroidappFlashBar Service
用文件编辑器notepad++打开FlashBarInfo.smali文件
搜索方法 .method public generateFlashBarList()V
然后按照下面的说明来修改,左侧有-号的是你要删除的内容,有+号的是你要增加的内容
iget-object v10, v6, Landroid/content/pm/ResolveInfo;->filter:Landroid/content/IntentFilter;
- const-string v11, "android.intent.category.MULTIWINDOW_LAUNCHER"
+ const-string v11, "android.intent.category.LAUNCHER"
invoke-virtual {v10, v11}, Landroid/content/IntentFilter;->hasCategory(Ljava/lang/String;)Z
iget-object v10, v6, Landroid/content/pm/ResolveInfo;->filter:Landroid/content/IntentFilter;
- const-string v11, "com.sec.android.intent.category.MULTIWINDOW_LAUNCHER"
+ const-string v11, "com.sec.android.intent.category.LAUNCHER"
invoke-virtual {v10, v11}, Landroid/content/IntentFilter;->hasCategory(Ljava/lang/String;)Z
:try_end_0
iget-object v8, v7, Landroid/content/pm/ResolveInfo;->filter:Landroid/content/IntentFilter;
- const-string v9, "android.intent.category.MULTIWINDOW_LAUNCHER"
+ const-string v9, "android.intent.category.LAUNCHER"
invoke-virtual {v8, v9}, Landroid/content/IntentFilter;->hasCategory(Ljava/lang/String;)Z
iget-object v8, v7, Landroid/content/pm/ResolveInfo;->filter:Landroid/content/IntentFilter;
- const-string v9, "com.sec.android.intent.category.MULTIWINDOW_LAUNCHER"
+ const-string v9, "com.sec.android.intent.category.LAUNCHER"
invoke-virtual {v8, v9}, Landroid/content/IntentFilter;->hasCategory(Ljava/lang/String;)Z
:try_end_0
修改完成后,保存文件,然后重新编译回去,替换原文件,这一部分的修改就完成了。
2、修改services.jar
反编译system/framework目录中的services.jar文件
进入services.jar.outsmalicomandroidserveram目录
使用文本编辑器notepad++打开MultiWindowManagerService.smali文件
搜索方法 .method public isSupportApp(Ljava/lang/StringZ
然后按照下面的说明来修改,左侧有-号的是你要删除的内容,有+号的是你要增加的内容
.prologue
.line 567
+ const/4 v0, 0x1
+
+ goto :goto_0
+
iget-object v0, p0, Lcom/android/server/am/MultiWindowManagerService;->mSupportAppList:Ljava/util/ArrayList;
invoke-virtual {v0, p1}, Ljava/util/ArrayList;->contains(Ljava/lang/Object;)Z
修改完成后,保存文件,然后重新编译回去,替换原文件,这样就修改完了。