آموزش پورت برنامه های کوچک سونی برای رامهای 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 کپی کنید

آنها را در فایل زیر نیز براتون میزارم

یک لانچر اکسپریا نصب کنید و از برنامه های کوچک سونی استفاده کنید

   

لینک کوتاه مطلب : http://www.gsm-developers.com/?p=19532

درباره ی mohsen

محسن هستم 28 ساله طرفدار دنیایی متنوع اندروید و کاستوم رامها در Gsm-Developers

همچنین ببینید

آموزش شفاف کردن نوار اعلان و منوی کشوی اعلانها

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *