Sony漂浮窗口小工具移植教程.docx

上传人:b****8 文档编号:10197060 上传时间:2023-02-09 格式:DOCX 页数:9 大小:160.96KB
下载 相关 举报
Sony漂浮窗口小工具移植教程.docx_第1页
第1页 / 共9页
Sony漂浮窗口小工具移植教程.docx_第2页
第2页 / 共9页
Sony漂浮窗口小工具移植教程.docx_第3页
第3页 / 共9页
Sony漂浮窗口小工具移植教程.docx_第4页
第4页 / 共9页
Sony漂浮窗口小工具移植教程.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

Sony漂浮窗口小工具移植教程.docx

《Sony漂浮窗口小工具移植教程.docx》由会员分享,可在线阅读,更多相关《Sony漂浮窗口小工具移植教程.docx(9页珍藏版)》请在冰豆网上搜索。

Sony漂浮窗口小工具移植教程.docx

Sony漂浮窗口小工具移植教程

Sony漂浮窗口小工具移植教程

相信不少机友都已经对索尼新发布的Xperia带有的悬浮小工具功能虎视眈眈了。

Xperia可以很方便的不切换应用程序下使用计算器笔记本等等。

可是有些手机本身不支持Xperia,那样怎么办呢?

小编接下来就告诉各位机友们如何移植Xperia到CM系统之上。

  警告:

本教程涉及到的修改比较深层次,如果无法看懂教程请不要盲目尝试操作。

请自行搭建好反编译环境。

 

  第一步:

  反编译你当前ROM里的framework-res.apk文件,在导出目录中找到res/values/strings.xml将下面几行插到最后代码:

 

 

  打开AndroidManifest.xml,然后添加下面两行代码:

 

 

  以及

 

 

  如下图所示

 

  重新编译framework-res.apk

 

  第二步:

  反编译android.policy.jar,找到com\android\internal\policy\impl\PhoneWindowManager.smal,添加下面红色的段落Code:

 

  .fieldstaticfinalRECENT_APPS_BEHAVIOR_DISMISS_AND_SWITCH:

I=0x3

  .fieldstaticfinalRECENT_APPS_BEHAVIOR_EXIT_TOUCH_MODE_AND_SHOW:

I=0x1

  .fieldstaticfinalRECENT_APPS_BEHAVIOR_SHOW_OR_DISMISS:

I=0x0

  .fieldstaticfinalSHOW_PROCESSES_ON_ALT_MENU:

Z=false

  .fieldstaticfinalSHOW_STARTING_ANIMATIONS:

Z=true----------------------添加这行,如果你没有的话

  .fieldstaticfinalSMALLAPP_LAYER:

I=0x3

  .fieldpublicstaticfinalSYSTEM_DIALOG_REASON_ASSIST:

Ljava/lang/String;="assist"

  .fieldpublicstaticfinalSYSTEM_DIALOG_REASON_GLOBAL_ACTIONS:

Ljava/lang/String;="globalactions"

  .fieldpublicstaticfinalSYSTEM_DIALOG_REASON_HOME_KEY:

Ljava/lang/String;="homekey"

  .fieldpublicstaticfinalSYSTEM_DIALOG_REASON_KEY:

Ljava/lang/String;="reason"

  .fieldpublicstaticfinalSYSTEM_DIALOG_REASON_RECENT_APPS:

Ljava/lang/String;="recentapps"

 

  然后找到如下部分

 

  .methodpubliccheckAddPermission(Landroid/view/WindowManager$LayoutParams;)I

  .locals4

  .parameter"attrs"

  .prologue

  const/4v2,0x0

  .line1588

  igetv1,p1,Landroid/view/WindowManager$LayoutParams;->type:

I

  .line1590

  .localv1,type:

I

  const/16v3,0x7d0

  if-ltv1,v3,:

cond_0

  const/16v3,0xbb7

  if-lev1,v3,:

cond_1

  .line1622

  :

cond_0

  :

goto_0

  returnv2

  .line1594

  :

cond_1

  const/4v0,0x0

  .line1595

  .localv0,permission:

Ljava/lang/String;

  sparse-switchv1,:

sswitch_data_0

  .line1614

  const-stringv0,"android.permission.INTERNAL_SYSTEM_WINDOW"

  .line1616

  :

goto_1

  :

sswitch_0

  if-eqzv0,:

cond_0

  .line1617

  iget-objectv3,p0,Lcom/android/internal/policy/impl/PhoneWindowManager;->mContext:

Landroid/content/Context;

  invoke-virtual{v3,v0},Landroid/content/Context;->checkCallingOrSelfPermission(Ljava/lang/String;)I

  move-resultv3

  if-eqzv3,:

cond_0

  .line1619

  const/4v2,-0x8

  goto:

goto_0

  .line1611

  :

sswitch_1

  const-stringv0,"android.permission.SYSTEM_ALERT_WINDOW"

  .line1612

  goto:

goto_1

  .line1595

  nop

  :

sswitch_data_0

  .sparse-switch

  0x7d2->:

sswitch_1

  0x7d3->:

sswitch_1

  0x7d5->:

sswitch_0

  0x7d6->:

sswitch_1

  0x7d7->:

sswitch_1

  0x7da->:

sswitch_1

  0x7db->:

sswitch_0

  0x7dd->:

sswitch_0

  0x7e7->:

sswitch_0

  .endsparse-switch

  .endmethod

 

  将所有蓝色标记部分替换为红色标记部分

 

  .methodpubliccheckAddPermission(Landroid/view/WindowManager$LayoutParams;)I

  .locals4

  .parameter"attrs"

  .prologue

  const/4v2,0x0

  .line1115

  igetv1,p1,Landroid/view/WindowManager$LayoutParams;->type:

I

  .line1117

  .localv1,type:

I

  const/16v3,0x7d0

  if-ltv1,v3,:

cond_0

  const/16v3,0xbb7

  if-lev1,v3,:

cond_1

  .line1152

  :

cond_0

  :

goto_0

  returnv2

  .line1121

  :

cond_1

  const/4v0,0x0

  .line1122

  .localv0,permission:

Ljava/lang/String;

  sparse-switchv1,:

sswitch_data_0

  .line1144

  const-stringv0,"android.permission.INTERNAL_SYSTEM_WINDOW"

  .line1146

  :

goto_1

  :

sswitch_0

  if-eqzv0,:

cond_0

  .line1147

  iget-objectv3,p0,Lcom/android/internal/policy/impl/PhoneWindowManager;->mContext:

Landroid/content/Context;

  invoke-virtual{v3,v0},Landroid/content/Context;->checkCallingOrSelfPermission(Ljava/lang/String;)I

  move-resultv3

  if-eqzv3,:

cond_0

  .line1149

  const/4v2,-0x8

  goto:

goto_0

  .line1137

  :

sswitch_1

  const-stringv0,"android.permission.SYSTEM_ALERT_WINDOW"

  .line1138

  goto:

goto_1

  .line1141

  :

sswitch_2

  const-stringv0,"com.sony.smallapp.permission.SMALLAPP"

  .line1142

  goto:

goto_1

  .line1122

  :

sswitch_data_0

  .sparse-switch

  0x7d2->:

sswitch_1

  0x7d3->:

sswitch_1

  0x7d5->:

sswitch_0

  0x7d6->:

sswitch_1

  0x7d7->:

sswitch_1

  0x7da->:

sswitch_1

  0x7db->:

sswitch_0

  0x7dd->:

sswitch_0

  0xbb5->:

sswitch_2

  0xbb6->:

sswitch_2

  .endsparse-switch

  .endmethod

 

  保存并重新编译androidpolicy.jar

 

  第三步:

  反编译framework.jar,将整个sony文件夹放入导出文件夹中smali/com,然后重新编译framework.jar

 

  第四步:

  添加浮动工具框架到system/app、system/etc以及system/framewrok,所有文件都被打包好了,也可以使用它们直接加入到你制作的刷机包。

 

  第五步:

你还需要下载一个Slauncher来启动这些小工具,可以在googleplay里找到,完成!

你可以在多数基于CM的ROM中享受这些小工具。

截图为GalaxySL运行CM10并安装了xperia主题。

本文来源:

安卓软件网

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1