آموزش پورت برنامه های کوچک سونی برای رامهای CM
با سلام
برنامه های کوچک سونی small app در رامهی سونی وجود دارند
با ما باشید با اموزش چگونگی پورت این برنامه ها برای رامهای سیانوژن
ما در نظر میگیریم که شما کامپایل و دیکامپایل را بلدید
مستقیم میریم برای آموزش
فایل framework-res.apk را دیکامپایل کنید
به مسیر res/values/strings.xml بروید
کدهای زیر را در پایان قرار دهید
<string name="permlab_externalTaskSwitcher">Start as an external task switcher</string> <string name="permdesc_externalTaskSwitcher">Allows the application to be an external task switcher replacing the native task switcher</string> <string name="permlab_smallapp">Small application overlay</string> <string name="permdesc_smallapp">Allows running movable small applications on top of other applications.</string>
فایل AndroidManifest.xml را باز کنید
کد زیر را اضافه کنید
<permission android:name="android.permission.SYSTEM_ALERT_WINDOW" android:label="@string/permlab_systemAlertWindow" android:description="@string/permdesc_systemAlertWindow" android:protectionLevel="dangerous" android:permissionGroup="android.permission-group.SYSTEM_TOOLS" />
کد زیر را نیز اضافه کنید
<permission android:name="com.sony.smallapp.permission.SMALLAPP" android:label="@string/permlab_smallapp" android:description="@string/permdesc_smallapp" android:protectionLevel="dangerous" />
همانند تصویر زیر میشود
تمام فایل framework-res.apk را ریکامپایل کنید
فایل android.policy.jar را دیکامپایل کنید
فایل com\android\internal\policy\impl\PhoneWindowManager.smal را باز کنید
دو کد زیر را در زیر کد
.field static final SHOW_PROCESSES_ON_ALT_MENU:Z = false
قرار دهید
.field static final SHOW_STARTING_ANIMATIONS:Z = true ----------------------این کد را اگر نداشتید اضافه کنید .field static final SMALLAPP_LAYER:I = 0x3
اکنون کدهای زیر را پیدا کنید
.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
و کدهای را با کد زیر جایگزین کنید
.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
فایل android.policy.jar را ریکامپایل کنید
فایل framework.jar را ریکامپایل کنید
فایل زیری که براتون میزارم را کامل در مسیر classout/com کپی کنید
مقداری برنامه هم نیاز دارید در مسیر system/etc و system/framework کپی کنید
آنها را در فایل زیر نیز براتون میزارم
یک لانچر اکسپریا نصب کنید و از برنامه های کوچک سونی استفاده کنید