[MOD] [GUIDE] AOSP Lockscreen shortcuts

Didact74

Senior Member
Sep 2, 2010
609
1,877
0
Lake Shore, MD
Who wants another tutorial? LOL

[Q] What will this MOD do?

[A] If you have implemented my AOSP lockscreen toggle MOD, this will add two more shortcuts to the lockscreen. SMS and Phone.

Using this guide you can also extrapolate the means necassary to add other shortcuts as well. All you would need are the pngs and xml files to do so.

I am including in this guide a zip file that will have the needed pngs and xmls for the SMS and Phone shortcuts. The xmls are simple and easily modified if you choose to get creative and try some new shortcuts.

This will work for stock phone and SMS apps. If you are using handscent or someother sms client it will still shortcut you to the stock sms client not handscent.

Lets get on with it......


We will be working with several files to get the job done here.

framework-res.apk
framework2.jar
android.policy.jar

We will begin with framework-res

Before we get going if you have implemented the AOSP lock already, you may have noticed that the carrier info is still on the screens in both portrait and landscape modes. Let get rid of them first. If you dont care about them....move on to the next step.

Navigate to res/values/layout/keyguard_screen_tab_unlock.xml

Locate the following code and ADD the parts in RED

Code:
<TextView android:textAppearance="?textAppearanceMedium" android:textSize="@dimen/keyguard_lockscreen_status_line_font_size" android:textColor="?textColorSecondary" android:ellipsize="marquee" android:gravity="center_horizontal" android:id="@id/carrier" [COLOR="red"]android:visibility="gone"[/COLOR] android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="12.0dip" android:singleLine="true" android:layout_alignParentBottom="true" />
        <TextView android:textAppearance="?textAppearanceMedium" android:ellipsize="marquee" android:id="@id/statement" [COLOR="red"]android:visibility="gone"[/COLOR] android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="12.0dip" android:singleLine="true" android:drawablePadding="4.0dip" android:layout_below="@id/carrier" android:layout_centerHorizontal="true" android:marqueeRepeatLimit="marquee_forever" />
Navigate to res/values/layout/keyguard_screen_tab_unlock_land.xml

Locate the following code and ADD the parts in RED

Code:
<TextView android:textAppearance="?textAppearanceMedium" android:textSize="@dimen/keyguard_lockscreen_status_line_font_size" android:textColor="?textColorSecondary" android:ellipsize="marquee" android:gravity="right" android:layout_gravity="fill_horizontal" android:id="@id/carrier" [COLOR="Red"]android:visibility="gone"[/COLOR] android:layout_width="0.0dip" android:layout_marginBottom="12.0dip" android:singleLine="true" />
    <TextView android:textAppearance="?textAppearanceMedium" android:ellipsize="marquee" android:id="@id/statement" [COLOR="red"]android:visibility="gone"[/COLOR] android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="24.0dip" android:layout_marginTop="12.0dip" android:singleLine="true" android:drawablePadding="4.0dip" android:layout_below="@id/carrier" android:marqueeRepeatLimit="marquee_forever" />
Okay, thats it for the carrier stuff. Lets add some shortcuts.

Code:
[B]Using the supplied zip file put the following files in the following locations[/B].
ic_lockscreen_phone_activated.png
ic_lockscreen_phone_normal.png
ic_lockscreen_sms_activated.png
ic_lockscreen_sms_normal.png 
....all go in /res/drawable-hdpi

[B]Using the supplied zip file put the following files in the following locations.[/B]
ic_lockscreen_phone.xml
ic_lockscreen_sms.xml
......all go in /res/drawable
Navigate to res/values/arrays

Find the following line

Code:
<array name="lockscreen_targets_with_camera">
Make the entire array look like this

Code:
<array name="lockscreen_targets_with_camera">
        <item>@drawable/ic_lockscreen_unlock</item>
        <item>@drawable/ic_lockscreen_sms</item>
        <item>@drawable/ic_action_assist_generic</item>
        <item>@drawable/ic_lockscreen_phone</item>
        <item>@drawable/ic_lockscreen_camera</item>
        <item>@null</item>
        <item>@null</item>
        <item>@null</item>
    </array>
Find the following line

Code:
 <array name="lockscreen_target_descriptions_with_camera">
Make the entire array look like this

Code:
<array name="lockscreen_target_descriptions_with_camera">
        <item>@string/description_target_unlock</item>
        <item>@string/description_target_sms</item>
        <item>@string/description_target_search</item>
        <item>@string/description_target_phone</item>
        <item>@string/description_target_camera</item>
        <item>@null</item>
        <item>@null</item>
        <item>@null</item>
    </array>
Navigate to res/values-land/arrays.xml

Find the following line

Code:
<array name="lockscreen_targets_with_camera">
Make the entire array look like this

Code:
<array name="lockscreen_targets_with_camera">
        <item>@null</item>
        <item>@null</item>
        <item>@drawable/ic_lockscreen_unlock</item>
        <item>@drawable/ic_lockscreen_sms</item>
        <item>@drawable/ic_action_assist_generic</item>
        <item>@drawable/ic_lockscreen_phone</item>
        <item>@drawable/ic_lockscreen_camera</item>
        <item>@null</item>
    </array>
Find the following line

Code:
 <array name="lockscreen_target_descriptions_with_camera">
Make the entire array look like this

Code:
<array name="lockscreen_target_descriptions_with_camera">
        <item>@null</item>
        <item>@null</item>
        <item>@string/description_target_unlock</item>
        <item>@string/description_target_sms</item>
        <item>@string/description_target_search</item>
        <item>@string/description_target_phone</item>
        <item>@string/description_target_camera</item>
        <item>@null</item>
    </array>
Navigate to res/values/strings and add the following to the file

Code:
   <string name="description_target_sms">Sms</string>
    <string name="description_target_phone">Phone</string>
A this point you need to recompile framework-res and then decompile it. We do this because we are allowing system to generate public IDs for the info we just added. So recompile framework-res and delete the old apk. Decompile the new apk and continue.....

Navigate to res/values/public

Find the following lines and write down thier IDs in the order you see them below and set aside for a step later in the tutorial. Make sure you have the correct ID, some will have more than one instance but only one will look EXACTLY like whats below.

Code:
ic_action_assist_generic
ic_lockscreen_camera
ic_lockscreen_silent
ic_lockscreen_unlock
ic_lockscreen_unlock_phantom
ic_lockscreen_phone
ic_lockscreen_sms
[/hide/

Recompile framework-res and move to the next step



Go to the next post to continue......
 

Attachments

Last edited:

Didact74

Senior Member
Sep 2, 2010
609
1,877
0
Lake Shore, MD
PART 2



Now for framework2.jar

Navigate to com/android/internal/widget/multiwaveview/GlowPadView.smali

Find the following method

Code:
.method private getDirectionDescription(I)Ljava/lang/String;
Replace the entire method with the following code

Code:
.method private getDirectionDescription(I)Ljava/lang/String;
    .locals 4
    .parameter "index"

    .prologue
    .line 1119
    iget-object v2, p0, Lcom/android/internal/widget/multiwaveview/GlowPadView;->mDirectionDescriptions:Ljava/util/ArrayList;

    if-eqz v2, :cond_0

    iget-object v2, p0, Lcom/android/internal/widget/multiwaveview/GlowPadView;->mDirectionDescriptions:Ljava/util/ArrayList;

    invoke-virtual {v2}, Ljava/util/ArrayList;->isEmpty()Z

    move-result v2

    if-eqz v2, :cond_1

    .line 1120
    :cond_0
    iget v2, p0, Lcom/android/internal/widget/multiwaveview/GlowPadView;->mDirectionDescriptionsResourceId:I

    invoke-direct {p0, v2}, Lcom/android/internal/widget/multiwaveview/GlowPadView;->loadDescriptions(I)Ljava/util/ArrayList;

    move-result-object v2

    iput-object v2, p0, Lcom/android/internal/widget/multiwaveview/GlowPadView;->mDirectionDescriptions:Ljava/util/ArrayList;

    .line 1121
    iget-object v2, p0, Lcom/android/internal/widget/multiwaveview/GlowPadView;->mTargetDrawables:Ljava/util/ArrayList;

    invoke-virtual {v2}, Ljava/util/ArrayList;->size()I

    move-result v2

    iget-object v3, p0, Lcom/android/internal/widget/multiwaveview/GlowPadView;->mDirectionDescriptions:Ljava/util/ArrayList;

    invoke-virtual {v3}, Ljava/util/ArrayList;->size()I

    move-result v3

    if-eq v2, v3, :cond_1

    .line 1122
    const-string v2, "GlowPadView"

    const-string v3, "The number of target drawables must be equal to the number of direction descriptions."

    invoke-static {v2, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I

    .line 1124
    const/4 v0, 0x0

    .line 1133
    :goto_0
    return-object v0

    .line 1130
    :cond_1
    :try_start_0
    iget-object v2, p0, Lcom/android/internal/widget/multiwaveview/GlowPadView;->mDirectionDescriptions:Ljava/util/ArrayList;

    invoke-virtual {v2, p1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/lang/String;
    :try_end_0
    .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0

    .line 1131
    .local v0, directionZ:Ljava/lang/String;
    goto :goto_0

    .line 1132
    .end local v0           #directionZ:Ljava/lang/String;
    :catch_0
    move-exception v1

    .line 1133
    .local v1, e:Ljava/lang/Exception;
    const-string v0, ""

    goto :goto_0
.end method
Find the following method

Code:
.method private getTargetDescription(I)Ljava/lang/String;
    .locals 4
    .parameter "index"

    .prologue
    .line 1099
    iget-object v2, p0, Lcom/android/internal/widget/multiwaveview/GlowPadView;->mTargetDescriptions:Ljava/util/ArrayList;

    if-eqz v2, :cond_0

    iget-object v2, p0, Lcom/android/internal/widget/multiwaveview/GlowPadView;->mTargetDescriptions:Ljava/util/ArrayList;

    invoke-virtual {v2}, Ljava/util/ArrayList;->isEmpty()Z

    move-result v2

    if-eqz v2, :cond_1

    .line 1100
    :cond_0
    iget v2, p0, Lcom/android/internal/widget/multiwaveview/GlowPadView;->mTargetDescriptionsResourceId:I

    invoke-direct {p0, v2}, Lcom/android/internal/widget/multiwaveview/GlowPadView;->loadDescriptions(I)Ljava/util/ArrayList;

    move-result-object v2

    iput-object v2, p0, Lcom/android/internal/widget/multiwaveview/GlowPadView;->mTargetDescriptions:Ljava/util/ArrayList;

    .line 1101
    iget-object v2, p0, Lcom/android/internal/widget/multiwaveview/GlowPadView;->mTargetDrawables:Ljava/util/ArrayList;

    invoke-virtual {v2}, Ljava/util/ArrayList;->size()I

    move-result v2

    iget-object v3, p0, Lcom/android/internal/widget/multiwaveview/GlowPadView;->mTargetDescriptions:Ljava/util/ArrayList;

    invoke-virtual {v3}, Ljava/util/ArrayList;->size()I

    move-result v3

    if-eq v2, v3, :cond_1

    .line 1102
    const-string v2, "GlowPadView"

    const-string v3, "The number of target drawables must be equal to the number of target descriptions."

    invoke-static {v2, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I

    .line 1104
    const/4 v1, 0x0

    .line 1114
    :goto_0
    return-object v1

    .line 1109
    :cond_1
    const-string v1, ""

    .line 1111
    .local v1, targetZ:Ljava/lang/String;
    :try_start_0
    iget-object v2, p0, Lcom/android/internal/widget/multiwaveview/GlowPadView;->mTargetDescriptions:Ljava/util/ArrayList;

    invoke-virtual {v2, p1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;

    move-result-object v2

    move-object v0, v2

    check-cast v0, Ljava/lang/String;

    move-object v1, v0
    :try_end_0
    .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0

    goto :goto_0

    .line 1112
    :catch_0
    move-exception v2

    goto :goto_0
.end method
Thats it for Framework2.jar

Now for android.policy

Navigate to com/android/internal/policy/impl/LockScreen.smali and ADD the following methods:

Code:
.method static synthetic access$1400(Lcom/android/internal/policy/impl/LockScreen;)Landroid/content/Context;
    .locals 1
    .parameter "x0"

    .prologue
    .line 56
    iget-object v0, p0, Lcom/android/internal/policy/impl/LockScreen;->mContext:Landroid/content/Context;

    return-object v0
.end method

.method static synthetic access$1500(Lcom/android/internal/policy/impl/LockScreen;)Landroid/content/Context;
    .locals 1
    .parameter "x0"

    .prologue
    .line 56
    iget-object v0, p0, Lcom/android/internal/policy/impl/LockScreen;->mContext:Landroid/content/Context;

    return-object v0
.end method
Navigate to com/android/internal/policy/impl/LockScreen$GlowPadViewMethods.smali.

Find the following method

Code:
.method public onTrigger(Landroid/view/View;I)V
Replace the entire method with the following code.

Code:
.method public onTrigger(Landroid/view/View;I)V
    .locals 7
    .parameter "v"
    .parameter "target"

    .prologue
    const/high16 v6, 0x1000

    .line 313
    iget-object v4, p0, Lcom/android/internal/policy/impl/LockScreen$GlowPadViewMethods;->mGlowPadView:Lcom/android/internal/widget/multiwaveview/GlowPadView;

    invoke-virtual {v4, p2}, Lcom/android/internal/widget/multiwaveview/GlowPadView;->getResourceIdForTarget(I)I

    move-result v3

    .line 321
    .local v3, resId:I
    sparse-switch v3, :sswitch_data_0

    .line 367
    :goto_0
    return-void

    .line 323
    :sswitch_0
    iget-object v4, p0, Lcom/android/internal/policy/impl/LockScreen$GlowPadViewMethods;->this$0:Lcom/android/internal/policy/impl/LockScreen;

    invoke-static {v4}, Lcom/android/internal/policy/impl/LockScreen;->access$1200(Lcom/android/internal/policy/impl/LockScreen;)Landroid/content/Context;

    move-result-object v4

    invoke-static {v4}, Landroid/app/SearchManager;->getAssistIntent(Landroid/content/Context;)Landroid/content/Intent;

    move-result-object v0

    .line 324
    .local v0, assistIntent:Landroid/content/Intent;
    if-eqz v0, :cond_0

    .line 325
    invoke-direct {p0, v0}, Lcom/android/internal/policy/impl/LockScreen$GlowPadViewMethods;->launchActivity(Landroid/content/Intent;)V

    .line 329
    :goto_1
    iget-object v4, p0, Lcom/android/internal/policy/impl/LockScreen$GlowPadViewMethods;->this$0:Lcom/android/internal/policy/impl/LockScreen;

    invoke-static {v4}, Lcom/android/internal/policy/impl/LockScreen;->access$400(Lcom/android/internal/policy/impl/LockScreen;)Lcom/android/internal/policy/impl/KeyguardScreenCallback;

    move-result-object v4

    invoke-interface {v4}, Lcom/android/internal/policy/impl/KeyguardScreenCallback;->pokeWakelock()V

    goto :goto_0

    .line 327
    :cond_0
    const-string v4, "LockScreen"

    const-string v5, "Failed to get intent for assist activity"

    invoke-static {v4, v5}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I

    goto :goto_1

    .line 333
    .end local v0           #assistIntent:Landroid/content/Intent;
    :sswitch_1
    new-instance v4, Landroid/content/Intent;

    const-string v5, "android.media.action.STILL_IMAGE_CAMERA"

    invoke-direct {v4, v5}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V

    invoke-direct {p0, v4}, Lcom/android/internal/policy/impl/LockScreen$GlowPadViewMethods;->launchActivity(Landroid/content/Intent;)V

    .line 334
    iget-object v4, p0, Lcom/android/internal/policy/impl/LockScreen$GlowPadViewMethods;->this$0:Lcom/android/internal/policy/impl/LockScreen;

    invoke-static {v4}, Lcom/android/internal/policy/impl/LockScreen;->access$400(Lcom/android/internal/policy/impl/LockScreen;)Lcom/android/internal/policy/impl/KeyguardScreenCallback;

    move-result-object v4

    invoke-interface {v4}, Lcom/android/internal/policy/impl/KeyguardScreenCallback;->pokeWakelock()V

    goto :goto_0

    .line 339
    :sswitch_2
    new-instance v2, Landroid/content/Intent;

    const-string v4, "android.intent.action.MAIN"

    invoke-direct {v2, v4}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V

    .line 340
    .local v2, phoneIntent:Landroid/content/Intent;
    const-string v4, "com.android.contacts"

    const-string v5, "com.android.contacts.activities.DialtactsActivity"

    invoke-virtual {v2, v4, v5}, Landroid/content/Intent;->setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;

    .line 341
    invoke-virtual {v2, v6}, Landroid/content/Intent;->setFlags(I)Landroid/content/Intent;

    .line 342
    iget-object v4, p0, Lcom/android/internal/policy/impl/LockScreen$GlowPadViewMethods;->this$0:Lcom/android/internal/policy/impl/LockScreen;

    invoke-static {v4}, Lcom/android/internal/policy/impl/LockScreen;->access$1300(Lcom/android/internal/policy/impl/LockScreen;)Landroid/content/Context;

    move-result-object v4

    invoke-virtual {v4, v2}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V

    .line 343
    iget-object v4, p0, Lcom/android/internal/policy/impl/LockScreen$GlowPadViewMethods;->this$0:Lcom/android/internal/policy/impl/LockScreen;

    invoke-static {v4}, Lcom/android/internal/policy/impl/LockScreen;->access$400(Lcom/android/internal/policy/impl/LockScreen;)Lcom/android/internal/policy/impl/KeyguardScreenCallback;

    move-result-object v4

    invoke-interface {v4}, Lcom/android/internal/policy/impl/KeyguardScreenCallback;->goToUnlockScreen()V

    goto :goto_0

    .line 348
    .end local v2           #phoneIntent:Landroid/content/Intent;
    :sswitch_3
    new-instance v1, Landroid/content/Intent;

    const-string v4, "android.intent.action.MAIN"

    invoke-direct {v1, v4}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V

    .line 349
    .local v1, mmsIntent:Landroid/content/Intent;
    const-string v4, "com.android.mms"

    const-string v5, "com.android.mms.ui.ConversationList"

    invoke-virtual {v1, v4, v5}, Landroid/content/Intent;->setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;

    .line 350
    invoke-virtual {v1, v6}, Landroid/content/Intent;->setFlags(I)Landroid/content/Intent;

    .line 351
    iget-object v4, p0, Lcom/android/internal/policy/impl/LockScreen$GlowPadViewMethods;->this$0:Lcom/android/internal/policy/impl/LockScreen;

    invoke-static {v4}, Lcom/android/internal/policy/impl/LockScreen;->access$1400(Lcom/android/internal/policy/impl/LockScreen;)Landroid/content/Context;

    move-result-object v4

    invoke-virtual {v4, v1}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V

    .line 352
    iget-object v4, p0, Lcom/android/internal/policy/impl/LockScreen$GlowPadViewMethods;->this$0:Lcom/android/internal/policy/impl/LockScreen;

    invoke-static {v4}, Lcom/android/internal/policy/impl/LockScreen;->access$400(Lcom/android/internal/policy/impl/LockScreen;)Lcom/android/internal/policy/impl/KeyguardScreenCallback;

    move-result-object v4

    invoke-interface {v4}, Lcom/android/internal/policy/impl/KeyguardScreenCallback;->goToUnlockScreen()V

    goto :goto_0

    .line 357
    .end local v1           #mmsIntent:Landroid/content/Intent;
    :sswitch_4
    iget-object v4, p0, Lcom/android/internal/policy/impl/LockScreen$GlowPadViewMethods;->this$0:Lcom/android/internal/policy/impl/LockScreen;

    invoke-static {v4}, Lcom/android/internal/policy/impl/LockScreen;->access$500(Lcom/android/internal/policy/impl/LockScreen;)V

    .line 358
    iget-object v4, p0, Lcom/android/internal/policy/impl/LockScreen$GlowPadViewMethods;->this$0:Lcom/android/internal/policy/impl/LockScreen;

    invoke-static {v4}, Lcom/android/internal/policy/impl/LockScreen;->access$400(Lcom/android/internal/policy/impl/LockScreen;)Lcom/android/internal/policy/impl/KeyguardScreenCallback;

    move-result-object v4

    invoke-interface {v4}, Lcom/android/internal/policy/impl/KeyguardScreenCallback;->pokeWakelock()V

    goto/16 :goto_0

    .line 364
    :sswitch_5
    iget-object v4, p0, Lcom/android/internal/policy/impl/LockScreen$GlowPadViewMethods;->this$0:Lcom/android/internal/policy/impl/LockScreen;

    invoke-static {v4}, Lcom/android/internal/policy/impl/LockScreen;->access$400(Lcom/android/internal/policy/impl/LockScreen;)Lcom/android/internal/policy/impl/KeyguardScreenCallback;

    move-result-object v4

    invoke-interface {v4}, Lcom/android/internal/policy/impl/KeyguardScreenCallback;->goToUnlockScreen()V

    goto/16 :goto_0

    .line 321
    :sswitch_data_0
    .sparse-switch
        0x1080294 -> :sswitch_0      #generic
        0x10802dd -> :sswitch_1      #camera
        0x10802f6 -> :sswitch_4       #silent
        0x10802fe -> :sswitch_5       #unlock
        0x1080301 -> :sswitch_5      #unlock phantom
        0x1080604 -> :sswitch_2      #phone
        0x1080607 -> :sswitch_3      #sms
    .end sparse-switch
.end method
You need to copy the correct IDs into the switch bank from the framework-res step earlier. The ones shown are not correct for your phone.

Push all files to /system/framework

Done!


Hit that thanks button if this was useful![/hide]
 
Last edited:

Mirko ddd

Inactive Recognized Developer
Nov 7, 2010
1,713
4,982
0
Piazza Armerina
Question or statement? LOL.

But yes, should be easy to port over, most files are the same with the exception of maybe framework/framework2.

Thanks!
No no, statement of course :) ten minutes and was done :)
Needed some little edit due to public values ( that u explained excellently) and some other little thing but all went good :)

Of course credits to you ;) i tried my self several times but i was mistakin in framework2, so thanks :)
 

shoman94

Recognized Contributor
Mar 27, 2009
8,902
12,311
0
Maine
Nevermind... Chef error... lol

My only suggestion is to remove the Framework and android.policy content from post 1 and only use post 2 since they repeat and post2 is a little different.

Thanks! Works great!
 
Last edited:

Didact74

Senior Member
Sep 2, 2010
609
1,877
0
Lake Shore, MD
Nevermind... Chef error... lol

My only suggestion is to remove the Framework and android.policy content from post 1 and only use post 2 since they repeat and post2 is a little different.

Thanks! Works great!
Oops, my mistake...:) My terrible html tagging was hiding the code and i didnt even realize it was aslo in post #1...LOL.

Thanks for the heads up!

I could use some help with something shoman if you have a few minutes? You being one of the first peope I saw posting how-to's for the time, am/pm, and AOSP lock screen toggles I am sure you can help. Can you PM me when you get time?

Thanks,
 

anybuddy

Senior Member
Aug 1, 2012
328
129
0
AW: [MOD] [GUIDE] AOSP Lockscreen shortcuts

Hi, i use go sms instead of the stock one (freezed with TB) and if I choose the sms Icon on the LS it hang on and i'm getting a bootloop, do you know a solution how I can use go sms with the LS?
And i also freezed Google stuff that i don't use so the Google Icon is gone. How can I replace it with the Browser?


----------------------------------------------
Gesendet von meinem GT-I9305
ROM: | Pandoriam 6 | Kernel: | Perseus a31.2 |
Don't say thanks, hit Thanks!
----------------------------------------------
 

davidwilson83

Retired Forum Moderator / Inactive Recognized Them
Apr 20, 2012
4,150
12,707
263
37
Perth
Fantastic guide mate.

Super easy to follow for noobs like me.

I wish there were more people like you and mirko_ddd on XDA who are so helpful.

All the best,

Dave
 

efaustino84

Senior Member
Feb 13, 2013
773
257
0
Harare
Firstly thank you for this TUT I am finding it very useful (been using it for s3 mini)
however I have a question
would it not have been easier to map the shortcuts to the already existing configurable shortcuts found in secsettings.apk?
or rather is it possible to make the shortcuts configurable from secsettings.apk?
I ask this question in case you have tried it and it caused issues
and also cause i am still learning
 

AskinSavascisi

Senior Member
Nov 1, 2012
907
525
0
Antwerp
www.droidturk.tk
im getting these error :/ any idea??

java version "1.7.0_21"
Java(TM) SE Runtime Environment (build 1.7.0_21-b11)
Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)
W: Could not find sources
I: Checking whether resources has changed...
I: Building resources...
C:\Users\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects\fra
mework-res.apk\res\layout\keyguard_screen_password_landscape.xml:22: error: Erro
r: No resource found that matches the given name (at 'layout' with value '@layou
t/keyguard_transport_control').
C:\Users\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects\fra
mework-res.apk\res\layout\keyguard_screen_password_portrait.xml:22: error: Error
: No resource found that matches the given name (at 'layout' with value '@layout
/keyguard_transport_control').
C:\Users\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects\fra
mework-res.apk\res\layout\keyguard_screen_tab_unlock.xml:23: error: Error: No re
source found that matches the given name (at 'layout' with value '@layout/keygua
rd_transport_control').
C:\Users\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects\fra
mework-res.apk\res\layout\keyguard_screen_tab_unlock_land.xml:17: error: Error:
No resource found that matches the given name (at 'layout' with value '@layout/k
eyguard_transport_control').
C:\Users\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects\fra
mework-res.apk\res\layout\keyguard_screen_unlock_landscape.xml:18: error: Error:
No resource found that matches the given name (at 'layout' with value '@layout/
keyguard_transport_control').
C:\Users\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects\fra
mework-res.apk\res\layout\keyguard_screen_unlock_portrait.xml:23: error: Error:
No resource found that matches the given name (at 'layout' with value '@layout/k
eyguard_transport_control').
aapt: warning: string 'default_audio_route_name_hdmi' has no default translation
in C:\Users\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects
\framework-res.apk\res; found: en_GB es
aapt: warning: string 'default_permission_group' has no default translation in C
:\Users\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects\fram
ework-res.apk\res; found: en_GB es
aapt: warning: string 'perms_hide' has no default translation in C:\Users\T÷re\D
esktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects\framework-res.apk\
res; found: en_GB es
aapt: warning: string 'perms_show_all' has no default translation in C:\Users\T÷
re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects\framework-res.
apk\res; found: en_GB es
aapt: warning: string 'securekeypad_restrict' has no default translation in C:\U
sers\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects\framewo
rk-res.apk\res; found: zh_CN
aapt: warning: string 'ss_clear_default_hint_msg' has no default translation in
C:\Users\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects\fra
mework-res.apk\res; found: zh_CN
aapt: warning: string 'ss_clear_default_hint_msg_all' has no default translation
in C:\Users\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects
\framework-res.apk\res; found: zh_CN
aapt: warning: string 'ss_clear_default_hint_msg_applicationmanager' has no defa
ult translation in C:\Users\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\ot
her\..\projects\framework-res.apk\res; found: zh_CN
aapt: warning: string 'ss_clear_default_hint_msg_more' has no default translatio
n in C:\Users\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\project
s\framework-res.apk\res; found: zh_CN
aapt: warning: string 'ss_clear_default_hint_msg_settings' has no default transl
ation in C:\Users\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\pro
jects\framework-res.apk\res; found: zh_CN
Exception in thread "main" brut.androlib.AndrolibException: brut.androlib.Androl
ibException: brut.common.BrutException: could not exec command: [aapt, p, --min-
sdk-version, 17, --target-sdk-version, 17, -F, C:\Users\TRE~1\AppData\Local\Temp
\APKTOOL949134031025011882.tmp, -x, -0, arsc, -S, C:\Users\T÷re\Desktop\APK-Mult
i-Toolv1.0.11\APK-Multi-Tool\other\..\projects\framework-res.apk\res, -M, C:\Use
rs\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects\framework
-res.apk\AndroidManifest.xml]
at brut.androlib.Androlib.buildResourcesFull(Androlib.java:358)
at brut.androlib.Androlib.buildResources(Androlib.java:283)
at brut.androlib.Androlib.build(Androlib.java:206)
at brut.androlib.Androlib.build(Androlib.java:176)
at brut.apktool.Main.cmdBuild(Main.java:228)
at brut.apktool.Main.main(Main.java:79)
Caused by: brut.androlib.AndrolibException: brut.common.BrutException: could not
exec command: [aapt, p, --min-sdk-version, 17, --target-sdk-version, 17, -F, C:
\Users\TRE~1\AppData\Local\Temp\APKTOOL949134031025011882.tmp, -x, -0, arsc, -S,
C:\Users\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects\fr
amework-res.apk\res, -M, C:\Users\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-T
ool\other\..\projects\framework-res.apk\AndroidManifest.xml]
at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.jav
a:357)
at brut.androlib.Androlib.buildResourcesFull(Androlib.java:336)
... 5 more
Caused by: brut.common.BrutException: could not exec command: [aapt, p, --min-sd
k-version, 17, --target-sdk-version, 17, -F, C:\Users\TRE~1\AppData\Local\Temp\A
PKTOOL949134031025011882.tmp, -x, -0, arsc, -S, C:\Users\T÷re\Desktop\APK-Multi-
Toolv1.0.11\APK-Multi-Tool\other\..\projects\framework-res.apk\res, -M, C:\Users
\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects\framework-r
es.apk\AndroidManifest.xml]
at brut.util.OS.exec(OS.java:89)
at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.jav
a:355)
... 6 more
W: Could not find sources
I: Checking whether resources has changed...
I: Building resources...
aapt: warning: string 'default_audio_route_name_hdmi' has no default translation
in C:\Users\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects
\framework-res.apk\res; found: en_GB es
aapt: warning: string 'default_permission_group' has no default translation in C
:\Users\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects\fram
ework-res.apk\res; found: en_GB es
aapt: warning: string 'perms_hide' has no default translation in C:\Users\T÷re\D
esktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects\framework-res.apk\
res; found: en_GB es
aapt: warning: string 'perms_show_all' has no default translation in C:\Users\T÷
re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects\framework-res.
apk\res; found: en_GB es
aapt: warning: string 'securekeypad_restrict' has no default translation in C:\U
sers\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects\framewo
rk-res.apk\res; found: zh_CN
aapt: warning: string 'ss_clear_default_hint_msg' has no default translation in
C:\Users\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects\fra
mework-res.apk\res; found: zh_CN
aapt: warning: string 'ss_clear_default_hint_msg_all' has no default translation
in C:\Users\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects
\framework-res.apk\res; found: zh_CN
aapt: warning: string 'ss_clear_default_hint_msg_applicationmanager' has no defa
ult translation in C:\Users\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\ot
her\..\projects\framework-res.apk\res; found: zh_CN
aapt: warning: string 'ss_clear_default_hint_msg_more' has no default translatio
n in C:\Users\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\project
s\framework-res.apk\res; found: zh_CN
aapt: warning: string 'ss_clear_default_hint_msg_settings' has no default transl
ation in C:\Users\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\pro
jects\framework-res.apk\res; found: zh_CN
C:\Users\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects\fra
mework-res.apk\res\layout\keyguard_screen_password_landscape.xml:22: error: Erro
r: No resource found that matches the given name (at 'layout' with value '@layou
t/keyguard_transport_control').
C:\Users\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects\fra
mework-res.apk\res\layout\keyguard_screen_password_portrait.xml:22: error: Error
: No resource found that matches the given name (at 'layout' with value '@layout
/keyguard_transport_control').
C:\Users\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects\fra
mework-res.apk\res\layout\keyguard_screen_tab_unlock.xml:23: error: Error: No re
source found that matches the given name (at 'layout' with value '@layout/keygua
rd_transport_control').
C:\Users\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects\fra
mework-res.apk\res\layout\keyguard_screen_tab_unlock_land.xml:17: error: Error:
No resource found that matches the given name (at 'layout' with value '@layout/k
eyguard_transport_control').
C:\Users\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects\fra
mework-res.apk\res\layout\keyguard_screen_unlock_landscape.xml:18: error: Error:
No resource found that matches the given name (at 'layout' with value '@layout/
keyguard_transport_control').
C:\Users\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects\fra
mework-res.apk\res\layout\keyguard_screen_unlock_portrait.xml:23: error: Error:
No resource found that matches the given name (at 'layout' with value '@layout/k
eyguard_transport_control').
Exception in thread "main" brut.androlib.AndrolibException: brut.androlib.Androl
ibException: brut.common.BrutException: could not exec command: [aapt, p, --min-
sdk-version, 17, --target-sdk-version, 17, -F, C:\Users\TRE~1\AppData\Local\Temp
\APKTOOL3686413752443725557.tmp, -x, -0, arsc, -S, C:\Users\T÷re\Desktop\APK-Mul
ti-Toolv1.0.11\APK-Multi-Tool\other\..\projects\framework-res.apk\res, -M, C:\Us
ers\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects\framewor
k-res.apk\AndroidManifest.xml]
at brut.androlib.Androlib.buildResourcesFull(Androlib.java:358)
at brut.androlib.Androlib.buildResources(Androlib.java:283)
at brut.androlib.Androlib.build(Androlib.java:206)
at brut.androlib.Androlib.build(Androlib.java:176)
at brut.apktool.Main.cmdBuild(Main.java:228)
at brut.apktool.Main.main(Main.java:79)
Caused by: brut.androlib.AndrolibException: brut.common.BrutException: could not
exec command: [aapt, p, --min-sdk-version, 17, --target-sdk-version, 17, -F, C:
\Users\TRE~1\AppData\Local\Temp\APKTOOL3686413752443725557.tmp, -x, -0, arsc, -S
, C:\Users\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects\f
ramework-res.apk\res, -M, C:\Users\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-
Tool\other\..\projects\framework-res.apk\AndroidManifest.xml]
at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.jav
a:357)
at brut.androlib.Androlib.buildResourcesFull(Androlib.java:336)
... 5 more
Caused by: brut.common.BrutException: could not exec command: [aapt, p, --min-sd
k-version, 17, --target-sdk-version, 17, -F, C:\Users\TRE~1\AppData\Local\Temp\A
PKTOOL3686413752443725557.tmp, -x, -0, arsc, -S, C:\Users\T÷re\Desktop\APK-Multi
-Toolv1.0.11\APK-Multi-Tool\other\..\projects\framework-res.apk\res, -M, C:\User
s\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects\framework-
res.apk\AndroidManifest.xml]
at brut.util.OS.exec(OS.java:89)
at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.jav
a:355)
... 6 more
Druk op een toets om door te gaan. . .
 

andybones

Recognized Contributor / Inactive Recognized Devel
May 18, 2010
14,448
14,653
263
Upstate NY
AskinSavas37887 said:
im getting these error :/ any idea??
You're missing things. Just from the first error.

C:\Users\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects\framework-res.apk\res\layout\keyguard_screen_password_landsc ape.xml:22: error: Error: No resource found that matches the given name (at 'layout' with value '@layout/keyguard_transport_control').


This says you're missing the keyguard_transport_control.xml suppose to be in res/layout folder.
 
Last edited:
  • Like
Reactions: AskinSavascisi

AskinSavascisi

Senior Member
Nov 1, 2012
907
525
0
Antwerp
www.droidturk.tk
You're missing things. Just from the first error.

C:\Users\T÷re\Desktop\APK-Multi-Toolv1.0.11\APK-Multi-Tool\other\..\projects\framework-res.apk\res\layout\keyguard_screen_password_landsc ape.xml:22: error: Error: No resource found that matches the given name (at 'layout' with value '@layout/keyguard_transport_control').


This says you're missing the keyguard_transport_control.xml suppose to be in res/layout folder.

yeah thanks man, managed to get it working :)))

before




After

 

AskinSavascisi

Senior Member
Nov 1, 2012
907
525
0
Antwerp
www.droidturk.tk
There is a weird "bug" i think..

before i made the shortcuts switching between aosp toggle and riple effet went fine.. but now , after i made the shortcuts my system is crashing.. with crashing i mean lets say i disable toggle for AOSP and turn on ripple effect..

i close my phone and when i press the HOME key it jumps directly to inhome/menu in stead of lockscreen and after that phone reboots and has boot loops :/
 

efaustino84

Senior Member
Feb 13, 2013
773
257
0
Harare
There is a weird "bug" i think..

before i made the shortcuts switching between aosp toggle and riple effet went fine.. but now , after i made the shortcuts my system is crashing.. with crashing i mean lets say i disable toggle for AOSP and turn on ripple effect..

i close my phone and when i press the HOME key it jumps directly to inhome/menu in stead of lockscreen and after that phone reboots and has boot loops :/
you need to disable ripple effect when enabling AOSP Lock screen or you will run into various issues of the screen locking or the phone rebooting.
 

AskinSavascisi

Senior Member
Nov 1, 2012
907
525
0
Antwerp
www.droidturk.tk
you need to disable ripple effect when enabling AOSP Lock screen or you will run into various issues of the screen locking or the phone rebooting.
i make sure that when i enable ripple aosp is disabled.. or before when enabling aosp ripple was disabled..

tried that steps with the added shortcut files..

it reboots (bootloop)..

when i do a factory reset my phone boots back up.. so now it try to disable AOSP, disable RIPPLE and see what happens. yeah i get that unlock icon wherever i push and i can unlock again..

so the problem is WHENEVER i want RIPPLE efect my phone goes into bootloop


EDIT: found something odd.. when normally someone wants to close his screen/phone he gets to hear some lock sound.. i do get that while on AOSP or normal unlock... but not when i try with RIPPLE.. i dont get the sound (lock) and phone screen turns off.. when i trun back on im on my home page (screen dimmed) after 3 secs phone gets in bootloop
 
Last edited:

Daniel D.

Senior Member
Apr 19, 2012
1,153
498
0
Nice tutorial! I didn't found any thread helping me to add this to a Sony phone. I've only a framework.jar and the GlowPadView.smali is missing. I would like to add it, but I don't know where to start. Nevermind...

You have two code snippets in the second step with "Find the code..." but nothing to replace with. Is this correct?
 
Last edited: