New Sony Xperia with floating gadget features, you can easily use without switching applications computer, notebooks and other. Today to teach you how to port this functionality to other Xperia CM systems.
This article is not suitable for user with no frustrating experience, please set up your own Android APK decompile environment, the authors not responsible for any accidents.
A first step:
Decompilation of your current ROM framework-Res.APK
Found in the export directory RES/values/strings.XML insert the following lines to the end
Code:
Open the AndroidManifest.xml
And then add the following two lines of code Juicy iPhone 6 case
Code:
As well as the
Code:
As shown in the following figure
Recompile framework-Res.APK
The second step:
Decompiler Android.policy.jar
Found com\android\internal\policy\impl\PhoneWindowManager.smal
Add the following paragraphs Red
Code:
.field static final RECENT_APPS_BEHAVIOR_DISMISS_AND_SWITCH:I = 0x3 .field static final RECENT_APPS_BEHAVIOR_EXIT_TOUCH_MODE_AND_SHOW:I = 0x1 .field static final RECENT_APPS_BEHAVIOR_SHOW_OR_DISMISS:I = 0x0 .field static final SHOW_PROCESSES_ON_ALT_MENU:Z = false . Field static final SHOW_STARTING_ANIMATIONS:Z = true add----------------------this line, if you don't already have .field static final SMALLAPP_LAYER:I = 0x3 .field public static final SYSTEM_DIALOG_REASON_ASSIST:Ljava/lang/String; = "assist" .field public static final SYSTEM_DIALOG_REASON_GLOBAL_ACTIONS:Ljava/lang/String; = "globalactions" .field public static final SYSTEM_DIALOG_REASON_HOME_KEY:Ljava/lang/String; = "homekey" .field public static final SYSTEM_DIALOG_REASON_KEY:Ljava/lang/String; = "reason" .field public static final SYSTEM_DIALOG_REASON_RECENT_APPS:Ljava/lang/String; = "recentapps"
And then locate the following parts
Code:
.method public checkAddPermission(Landroid/view/WindowManager$LayoutParams;)I .locals 4 .parameter "attrs" .prologue const/4 v2, 0x0 .line 1588 iget v1, p1, Landroid/view/WindowManager$LayoutParams;->type:I .line 1590 .local v1, type:I const/16 v3, 0x7d0 if-lt v1, v3, :cond_0 const/16 v3, 0xbb7 if-le v1, v3, :cond_1 .line 1622 :cond_0 :goto_0 return v2 .line 1594 :cond_1 const/4 v0, 0x0 .line 1595 .local v0, permission:Ljava/lang/String; sparse-switch v1, :sswitch_data_0 .line 1614 const-string v0, "android.permission.INTERNAL_SYSTEM_WINDOW" .line 1616 :goto_1 :sswitch_0 if-eqz v0, :cond_0 .line 1617 iget-object v3, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mContext:Landroid/content/Context; invoke-virtual {v3, v0}, Landroid/content/Context;->checkCallingOrSelfPermission(Ljava/lang/String;)I move-result v3 if-eqz v3, :cond_0 .line 1619 const/4 v2, -0x8 goto :goto_0 .line 1611 :sswitch_1 const-string v0, "android.permission.SYSTEM_ALERT_WINDOW" .line 1612 goto :goto_1 .line 1595 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 .end sparse-switch .end method
All blue parts replaced by Red Tags section
Code:
.method public checkAddPermission(Landroid/view/WindowManager$LayoutParams;)I .locals 4 .parameter "attrs" .prologue const/4 v2, 0x0 .line 1115 iget v1, p1, Landroid/view/WindowManager$LayoutParams;->type:I .line 1117 .local v1, type:I const/16 v3, 0x7d0 if-lt v1, v3, :cond_0 const/16 v3, 0xbb7 if-le v1, v3, :cond_1 .line 1152 :cond_0 :goto_0 return v2 .line 1121 :cond_1 const/4 v0, 0x0 .line 1122 .local v0, permission:Ljava/lang/String; sparse-switch v1, :sswitch_data_0 .line 1144 const-string v0, "android.permission.INTERNAL_SYSTEM_WINDOW" .line 1146 :goto_1 :sswitch_0 if-eqz v0, :cond_0 .line 1147 iget-object v3, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mContext:Landroid/content/Context; invoke-virtual {v3, v0}, Landroid/content/Context;->checkCallingOrSelfPermission(Ljava/lang/String;)I move-result v3 if-eqz v3, :cond_0 .line 1149 const/4 v2, -0x8 goto :goto_0 .line 1137 :sswitch_1 const-string v0, "android.permission.SYSTEM_ALERT_WINDOW" .line 1138 goto :goto_1 .line 1141 :sswitch_2 const-string v0, "com.sony.smallapp.permission.SMALLAPP" .line 1142 goto :goto_1 .line 1122 :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 .end sparse-switch .end method
Save and rebuild the Android policy.jar
The third step:
Download 1
Decompiler framework.jar
Export the whole Sony folder into the folder smali/com
Then recompile framework.jar
Fourth step:
Download 2 Juicy Couture iPhone 6 Case
Add a floating frame to system/app, system/etc and system/framewrok
All files are packed, they can also be used directly to your made of machine.
Fifth step:
You also need to download a Slauncher to start the tool, can be found in the Google play
Finish! You can enjoy these in the most CM ROM based gadget.
Screenshot to run Galaxy SL CM10 and install xperia theme.
This method is used only most Xperia devices as well as Galaxy SL CM9 cm10, PA, PACMAN in the test.
Learn more about the new cool device, please pay attention to @ love machine
4255 votes
Galaxy Note 5
After London and Shanghai after rehashing the event, Samsung's new flagship Galaxy S6 edge+ and Galaxy Note5 has come before us, and we got in the first retail version of Galaxy Note5, then this Note what's new flagship series features? Come and see ... ...
View details of the voting >>
No comments:
Post a Comment