[MOD] [GUIDE] AOSP Lockscreen shortcuts - Verizon Samsung Galaxy S III

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......

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]

easy to port on S2, thanks

Mirko ddd said:
easy to port on S2, thanks
Click to expand...
Click to collapse
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!

Didact74 said:
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!
Click to expand...
Click to collapse
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

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!

shoman94 said:
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!
Click to expand...
Click to collapse
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,

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!
----------------------------------------------

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

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

worked to perfection. Thanks Didact !

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. . .
Click to expand...
Click to collapse

AskinSavas37887 said:
im getting these error :/ any idea??
Click to expand...
Click to collapse
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.

andybones said:
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.
Click to expand...
Click to collapse
yeah thanks man, managed to get it working ))
before
After

AskinSavascisi said:
yeah thanks man, managed to get it working ))
before
After
Click to expand...
Click to collapse
Very nice, Sir! Well done.

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 :/

AskinSavascisi said:
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 :/
Click to expand...
Click to collapse
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.

efaustino84 said:
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.
Click to expand...
Click to collapse
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

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?

Ported to Xperia devices without any problems.
Thanks for the guide buddy!!

Related

ShutdownThread->Reboot() "reason" question

I'm trying to ask a generic question about ShutdownThread->Reboot() so please don't stop reading when I say, the device I'm on is a Novo 7 Aurora on ICS 4.0.3.
I have implemented some of the advanced power menu for my tablet in .smali. Unfortunately, I can't figure out what to put in for the "reason" to make it reboot normally. I can make it shutdown, I can make it reboot recovery, but I cannot make it reboot normally. Every attempt to reboot normally results in recovery.
I've looked at the "reason" in a few ROMs that I've disassembled and it seems to be different in different ROMs... (example: "null", "" , "now").
Do you have any tips on this?
Is the "reason" for reboot() different depending upon kernel or upon CWM?
Is there a reasonable way to hack the native code to find it? Or another way to find it?
As a work-around, would it be possible to get a shell from within system code (framework.jar) and use the shell command to reboot? I think I know how to do this, but don't want to try if it's not possible to get a shell from within system code.
now seems to be a normal reboot, and the extra args that you need to define are either "recovery", "download" or "bootloader" afaik
From my ext power menu:
For rebooting normally: (now)
Code:
.class Lcom/android/internal/policy/impl/GlobalActions$10;
.super Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;
.source "GlobalActions.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/android/internal/policy/impl/GlobalActions;->createDialog()Landroid/app/AlertDialog;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x0
name = null
.end annotation
# instance fields
.field final synthetic this$0:Lcom/android/internal/policy/impl/GlobalActions;
# direct methods
.method constructor <init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
.registers 4
.parameter
.parameter "x0"
.parameter "x1"
.prologue
.line 267
iput-object p1, p0, Lcom/android/internal/policy/impl/GlobalActions$10;->this$0:Lcom/android/internal/policy/impl/GlobalActions;
invoke-direct {p0, p2, p3}, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;-><init>(II)V
return-void
.end method
# virtual methods
.method public onPress()V
.registers 3
.prologue
.line 271
iget-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions$10;->this$0:Lcom/android/internal/policy/impl/GlobalActions;
#getter for: Lcom/android/internal/policy/impl/GlobalActions;->mContext:Landroid/content/Context;
invoke-static {v0}, Lcom/android/internal/policy/impl/GlobalActions;->access$000(Lcom/android/internal/policy/impl/GlobalActions;)Landroid/content/Context;
move-result-object v0
const/4 v1, 0x0
const-string p0, "now"
invoke-static {v0, p0, v1}, Lcom/android/internal/app/ShutdownThread;->reboot(Landroid/content/Context;Ljava/lang/String;Z)V
.line 272
return-void
.end method
.method public showBeforeProvisioning()Z
.registers 2
.prologue
.line 279
const/4 v0, 0x1
return v0
.end method
.method public showDuringKeyguard()Z
.registers 2
.prologue
.line 275
const/4 v0, 0x1
return v0
.end method
for rebooting in recovery:
Code:
.class Lcom/android/internal/policy/impl/GlobalActions$11;
.super Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;
.source "GlobalActions.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/android/internal/policy/impl/GlobalActions;->createDialog()Landroid/app/AlertDialog;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x0
name = null
.end annotation
# instance fields
.field final synthetic this$0:Lcom/android/internal/policy/impl/GlobalActions;
# direct methods
.method constructor <init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
.registers 4
.parameter
.parameter "x0"
.parameter "x1"
.prologue
.line 267
iput-object p1, p0, Lcom/android/internal/policy/impl/GlobalActions$11;->this$0:Lcom/android/internal/policy/impl/GlobalActions;
invoke-direct {p0, p2, p3}, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;-><init>(II)V
return-void
.end method
# virtual methods
.method public onPress()V
.registers 3
.prologue
.line 271
iget-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions$11;->this$0:Lcom/android/internal/policy/impl/GlobalActions;
#getter for: Lcom/android/internal/policy/impl/GlobalActions;->mContext:Landroid/content/Context;
invoke-static {v0}, Lcom/android/internal/policy/impl/GlobalActions;->access$000(Lcom/android/internal/policy/impl/GlobalActions;)Landroid/content/Context;
move-result-object v0
const/4 v1, 0x0
const-string p0, "recovery"
invoke-static {v0, p0, v1}, Lcom/android/internal/app/ShutdownThread;->reboot(Landroid/content/Context;Ljava/lang/String;Z)V
.line 272
return-void
.end method
.method public showBeforeProvisioning()Z
.registers 2
.prologue
.line 279
const/4 v0, 0x1
return v0
.end method
.method public showDuringKeyguard()Z
.registers 2
.prologue
.line 275
const/4 v0, 0x1
return v0
.end method
and for download/bootloader it's the same as above one, but then with the state changed to either "download" or "bootloader".
To shutdown the phone
Code:
.class Lcom/android/internal/policy/impl/GlobalActions$4;
.super Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;
.source "GlobalActions.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/android/internal/policy/impl/GlobalActions;->createDialog()Landroid/app/AlertDialog;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x0
name = null
.end annotation
# instance fields
.field final synthetic this$0:Lcom/android/internal/policy/impl/GlobalActions;
# direct methods
.method constructor <init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
.registers 4
.parameter
.parameter "x0"
.parameter "x1"
.prologue
.line 267
iput-object p1, p0, Lcom/android/internal/policy/impl/GlobalActions$4;->this$0:Lcom/android/internal/policy/impl/GlobalActions;
invoke-direct {p0, p2, p3}, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;-><init>(II)V
return-void
.end method
# virtual methods
.method public onPress()V
.registers 3
.prologue
.line 271
iget-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions$4;->this$0:Lcom/android/internal/policy/impl/GlobalActions;
#getter for: Lcom/android/internal/policy/impl/GlobalActions;->mContext:Landroid/content/Context;
invoke-static {v0}, Lcom/android/internal/policy/impl/GlobalActions;->access$000(Lcom/android/internal/policy/impl/GlobalActions;)Landroid/content/Context;
move-result-object v0
const/4 v1, 0x0
invoke-static {v0, v1}, Lcom/android/internal/app/ShutdownThread;->shutdown(Landroid/content/Context;Z)V
.line 272
return-void
.end method
.method public showBeforeProvisioning()Z
.registers 2
.prologue
.line 279
const/4 v0, 0x1
return v0
.end method
.method public showDuringKeyguard()Z
.registers 2
.prologue
.line 275
const/4 v0, 0x1
return v0
.end method
Hope this helped you, And btw I also would like to know how to execute adb shell commands from smali
broodplank1337 said:
now seems to be a normal reboot, and the extra args that you need to define are either "recovery", "download" or "bootloader" afaik
For rebooting normally: (now)
Hope this helped you, And btw I also would like to know how to execute adb shell commands from smali
Click to expand...
Click to collapse
Thanks for trying to help but "now" also takes me to recovery for some reason. Is this defined in CWM or somewhere else?
Here is an example of how to run a shell script as root from smali. I just don't know if it works from a system jar. This is decompiled from "Novotools" by genokolar. He claims the tool itself is copywrited but I would think there is no harm in learning from the smali.
Code:
.method public static execRootCmdSilent(Ljava/lang/String;)I
.locals 6
.parameter "paramString"
.prologue
.line 40
:try_start_0
const-string v4, "RootCmd"
invoke-static {v4, p0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
.line 41
invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime;
move-result-object v4
const-string v5, "su"
invoke-virtual {v4, v5}, Ljava/lang/Runtime;->exec(Ljava/lang/String;)Ljava/lang/Process;
move-result-object v2
.line 42
.local v2, localProcess:Ljava/lang/Process;
new-instance v0, Ljava/io/DataOutputStream;
invoke-virtual {v2}, Ljava/lang/Process;->getOutputStream()Ljava/io/OutputStream;
move-result-object v4
invoke-direct {v0, v4}, Ljava/io/DataOutputStream;-><init>(Ljava/io/OutputStream;)V
.line 44
.local v0, localDataOutputStream:Ljava/io/DataOutputStream;
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v4, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
const-string v5, "\n"
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
.line 45
.local v3, str:Ljava/lang/String;
invoke-virtual {v0, v3}, Ljava/io/DataOutputStream;->writeBytes(Ljava/lang/String;)V
.line 46
invoke-virtual {v0}, Ljava/io/DataOutputStream;->flush()V
.line 47
const-string v4, "exit\n"
invoke-virtual {v0, v4}, Ljava/io/DataOutputStream;->writeBytes(Ljava/lang/String;)V
.line 48
invoke-virtual {v0}, Ljava/io/DataOutputStream;->flush()V
.line 49
invoke-virtual {v2}, Ljava/lang/Process;->waitFor()I
.line 50
invoke-virtual {v2}, Ljava/lang/Process;->exitValue()I
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
move-result v4
.line 55
.end local v0 #localDataOutputStream:Ljava/io/DataOutputStream;
.end local v2 #localProcess:Ljava/lang/Process;
.end local v3 #str:Ljava/lang/String;
:goto_0
return v4
.line 52
:catch_0
move-exception v1
.line 53
.local v1, localException:Ljava/lang/Exception;
invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
.line 55
const/4 v4, 0x1
goto :goto_0
.end method
It's called like this:
Code:
:try_start_0
const-string v2, "reboot"
invoke-static {v2}, Lcom/genokolar/Novotools/RootCmd;->execRootCmdSilent(Ljava/lang/String;)I
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
I just don't want to resort to this when the stupid reboot command should work.
KevlarTheGreat said:
Thanks for trying to help but "now" also takes me to recovery for some reason. Is this defined in CWM or somewhere else?
Here is an example of how to run a shell script as root from smali. I just don't know if it works from a system jar. This is decompiled from "Novotools" by genokolar. He claims the tool itself is copywrited but I would think there is no harm in learning from the smali.
Code:
.method public static execRootCmdSilent(Ljava/lang/String;)I
.locals 6
.parameter "paramString"
.prologue
.line 40
:try_start_0
const-string v4, "RootCmd"
invoke-static {v4, p0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
.line 41
invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime;
move-result-object v4
const-string v5, "su"
invoke-virtual {v4, v5}, Ljava/lang/Runtime;->exec(Ljava/lang/String;)Ljava/lang/Process;
move-result-object v2
.line 42
.local v2, localProcess:Ljava/lang/Process;
new-instance v0, Ljava/io/DataOutputStream;
invoke-virtual {v2}, Ljava/lang/Process;->getOutputStream()Ljava/io/OutputStream;
move-result-object v4
invoke-direct {v0, v4}, Ljava/io/DataOutputStream;-><init>(Ljava/io/OutputStream;)V
.line 44
.local v0, localDataOutputStream:Ljava/io/DataOutputStream;
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v4, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
const-string v5, "\n"
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
.line 45
.local v3, str:Ljava/lang/String;
invoke-virtual {v0, v3}, Ljava/io/DataOutputStream;->writeBytes(Ljava/lang/String;)V
.line 46
invoke-virtual {v0}, Ljava/io/DataOutputStream;->flush()V
.line 47
const-string v4, "exit\n"
invoke-virtual {v0, v4}, Ljava/io/DataOutputStream;->writeBytes(Ljava/lang/String;)V
.line 48
invoke-virtual {v0}, Ljava/io/DataOutputStream;->flush()V
.line 49
invoke-virtual {v2}, Ljava/lang/Process;->waitFor()I
.line 50
invoke-virtual {v2}, Ljava/lang/Process;->exitValue()I
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
move-result v4
.line 55
.end local v0 #localDataOutputStream:Ljava/io/DataOutputStream;
.end local v2 #localProcess:Ljava/lang/Process;
.end local v3 #str:Ljava/lang/String;
:goto_0
return v4
.line 52
:catch_0
move-exception v1
.line 53
.local v1, localException:Ljava/lang/Exception;
invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
.line 55
const/4 v4, 0x1
goto :goto_0
.end method
It's called like this:
Code:
:try_start_0
const-string v2, "reboot"
invoke-static {v2}, Lcom/genokolar/Novotools/RootCmd;->execRootCmdSilent(Ljava/lang/String;)I
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
I just don't want to resort to this when the stupid reboot command should work.
Click to expand...
Click to collapse
That's strange.. "now" or null should work. if it doesn't you can just use the smali code i posted, and if that code doesn't work then you know the problem is something else good luck on trying.
btw, thanks for the shell execution script ^^

[GUIDE] How to add lollipop Platlogo In Your ROM

Hey Guyzzz.This is Guide About How To Add Lollipop Platlogo In Your ROM ICS/JB/KK
Disclaimer:I or XDA Developers will not be responsible for any damage of your Device.A Backup is highly recomanded.
Things You Will Needed:
1) A fully de-odxed rom
2) framework.jar from your rom
3) Tools for .jar Decompiling
4) A tiny brain
Instruction:
1) De-compile your framework.jar. (In some cases like some Samsung Roms, it can be framework2.jar)
2) now navigate to smali/com/android/internal/app and open PlatLogoActivity.smali and open the file.
3) And replace the whole with it:
Code:
.class public Lcom/android/internal/app/PlatLogoActivity;
.super Landroid/app/Activity;
.source "PlatLogoActivity.java"
# direct methods
.method public constructor <init>()V
.registers 1
.prologue
.line 12
invoke-direct {p0}, Landroid/app/Activity;-><init>()V
return-void
.end method
# virtual methods
.method protected onCreate(Landroid/os/Bundle;)V
.registers 7
.parameter "savedInstanceState"
.prologue
.line 16
invoke-super {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V
.line 18
new-instance v1, Landroid/content/Intent;
const-string v2, "android.intent.action.MAIN"
invoke-direct {v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
.line 19
.local v1, intent:Landroid/content/Intent;
new-instance v2, Landroid/content/ComponentName;
const-string v3, "bloody.badboy.LollipopEasterEgg"
const-string v4, "bloody.badboy.LollipopEasterEgg.MainActivity"
invoke-direct {v2, v3, v4}, Landroid/content/ComponentName;-><init>(Ljava/lang/String;Ljava/lang/String;)V
invoke-virtual {v1, v2}, Landroid/content/Intent;->setComponent(Landroid/content/ComponentName;)Landroid/content/Intent;
.line 23
:try_start_16
invoke-virtual {p0, v1}, Lcom/android/internal/app/PlatLogoActivity;->startActivity(Landroid/content/Intent;)V
:try_end_19
.catch Landroid/content/ActivityNotFoundException; {:try_start_16 .. :try_end_19} :catch_1d
.line 39
:goto_19
invoke-virtual {p0}, Lcom/android/internal/app/PlatLogoActivity;->finish()V
.line 41
return-void
.line 31
:catch_1d
move-exception v0
.line 35
.local v0, e:Landroid/content/ActivityNotFoundException;
const-string v2, "First install that app i have told you to!"
const/4 v3, 0x0
invoke-static {p0, v2, v3}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
move-result-object v2
invoke-virtual {v2}, Landroid/widget/Toast;->show()V
goto :goto_19
.end method[/HIDE]
4) Now recompile your framework.jar And flash it with the both apk from attachment, using CWM of Use AROMA file manager
If You Like it then Hit My Thanks Button. :good:
Special thanks to for his Easter Egg: iamareebjamal

[GUIDE]How To Get Lumia Launcher In Expanded

Hello Devs Today I bring a Mod By sir @iian Armas all credit goes to him for this awesome mod
What Is This?
-A mod Which Can Change ur Notification panel into Wp8 Type Launcher
Requirements
-apktool
-notepad++
-brain.jar
-Decompile Ur SystemUI.apk
-Download Attachments from the link & Merge it into ur decompiled folder
Files Required https://www.dropbox.com/s/ui56buimmldfpff/res.zip?dl=0
-open res/layout/tw_status_bar_expanded_dual.xml or status_bar_expandes for diff Phones
-Copy This Lines
Code:
<LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content">
<include android:layout_width="match_parent" android:layout_height="wrap_content" layout="@layout/1lumia_main" />
</LinearLayout>
Paste It anywhere u want its depends on u :fingers-crossed:
-open Values/colors.xml
Copy this Codes paste it before <\resources>
Code:
<color name="lumia">#ff0000ff</color>
<color name="lumia_app_color">#ff0074ff</color>
<color name="lumia_app_color1">#ffff3800</color>
<color name="lumia_app_color2">#ff00aaff</color>
-Open values/dimens.xml
-Copy This Codes & paste it before </resources>
Code:
<dimen name="lumia_text_height">10dp</dimen>
<dimen name="lumia_notif_max_height">162dp</dimen>
-Open Values/styles.xml & paste this codes before & paste there
Code:
<style name="lumiaText">
<item name="android:textColor">#ffffffff</item>
<item name="android:shadowColor">#ff000000</item>
<item name="android:shadowDy">1.5</item>
<item name="android:shadowDx">-1.5</item>
<item name="android:shadowRadius">1.5</item>
</style>
<style name="1lumia.clock" parent="@style/TextAppearance.StatusBar.Expanded">
<item name="android:textSize">25dp</item>
<item name="android:textStyle">normal</item>
<item name="android:textColor">#ffffffff</item>
<item name="android:fontFamily">sans-serif-light</item>
</style>
<style name="1lumia.date" parent="@style/TextAppearance.StatusBar.Expanded">
<item name="android:textSize">10dp</item>
<item name="android:textStyle">normal</item>
<item name="android:textColor">#ffffffff</item>
<item name="android:textAllCaps">false</item>
</style>
-open smali/com/android/systemui/SystemUIService.smali
Copy this codes & paste it to then end of the file
Code:
.method public iian_contacts(Landroid/view/View;)V
.locals 5
.parameter "view"
.prologue
.line 99
.line 100
:try_start_0
new-instance v1, Landroid/content/Intent;
invoke-direct {v1}, Landroid/content/Intent;-><init>()V
.line 102
.local v1, intent:Landroid/content/Intent;
const-string v2, "android.intent.action.MAIN"
invoke-virtual {v1, v2}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;
.line 105
const/high16 v2, 0x1000
invoke-virtual {v1, v2}, Landroid/content/Intent;->setFlags(I)Landroid/content/Intent;
.line 107
const-string v2, "com.android.contacts"
const-string v3, "com.android.contacts.activities.PeopleActivity"
invoke-virtual {v1, v2, v3}, Landroid/content/Intent;->setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
invoke-virtual {p0, v1}, Lcom/android/systemui/SystemUIService;->startActivity(Landroid/content/Intent;)V
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
.line 109
.line 112
.end local v1 #intent:Landroid/content/Intent;
:goto_0
return-void
.line 115
:catch_0
move-exception v0
.line 117
.local v0, e:Ljava/lang/Exception;
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
goto :goto_0
.end method
.method public iian_mms(Landroid/view/View;)V
.locals 5
.parameter "view"
.prologue
.line 99
.line 100
:try_start_0
new-instance v1, Landroid/content/Intent;
invoke-direct {v1}, Landroid/content/Intent;-><init>()V
.line 102
.local v1, intent:Landroid/content/Intent;
const-string v2, "android.intent.action.MAIN"
invoke-virtual {v1, v2}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;
.line 105
const/high16 v2, 0x1000
invoke-virtual {v1, v2}, Landroid/content/Intent;->setFlags(I)Landroid/content/Intent;
.line 107
const-string v2, "com.android.mms"
const-string v3, "com.android.mms.ui.ConversationList"
invoke-virtual {v1, v2, v3}, Landroid/content/Intent;->setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
invoke-virtual {p0, v1}, Lcom/android/systemui/SystemUIService;->startActivity(Landroid/content/Intent;)V
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
.line 109
.line 112
.end local v1 #intent:Landroid/content/Intent;
:goto_0
return-void
.line 115
:catch_0
move-exception v0
.line 117
.local v0, e:Ljava/lang/Exception;
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
goto :goto_0
.end method
.method public iian_camera(Landroid/view/View;)V
.locals 5
.parameter "view"
.prologue
.line 99
.line 100
:try_start_0
new-instance v1, Landroid/content/Intent;
invoke-direct {v1}, Landroid/content/Intent;-><init>()V
.line 102
.local v1, intent:Landroid/content/Intent;
const-string v2, "android.intent.action.MAIN"
invoke-virtual {v1, v2}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;
.line 105
const/high16 v2, 0x1000
invoke-virtual {v1, v2}, Landroid/content/Intent;->setFlags(I)Landroid/content/Intent;
.line 107
const-string v2, "com.android.gallery3d"
const-string v3, "com.android.camera.CameraLauncher"
invoke-virtual {v1, v2, v3}, Landroid/content/Intent;->setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
invoke-virtual {p0, v1}, Lcom/android/systemui/SystemUIService;->startActivity(Landroid/content/Intent;)V
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
.line 109
.line 112
.end local v1 #intent:Landroid/content/Intent;
:goto_0
return-void
.line 115
:catch_0
move-exception v0
.line 1
Save
Recompile
Sign
Push
Reboot
Enjoy
Credits
Iian Armas
Good job for you ....... Excellent job for the owner

[HELP] How to enable touchwiz page transitions effect (Select in Display Settings)

This mod is an adaptation for ROMs that does not have RomControl. Link of the original topic at the end of the post.
First I made the modification on TouchwizHome this way:
Go to: Touhcwizhome_2016\smali\com\android\launcher2\PagedView.smali
Find this line:
Code:
.method public setDefaultTransitionEffect(Lcom/android/launcher2/PagedView$TransitionEffect;)V
It replaces the complete method with this here:
Code:
.method public setDefaultTransitionEffect(Lcom/android/launcher2/PagedView$TransitionEffect;)V
.locals 4
.param p1, "transitionEffect" # Lcom/android/launcher2/PagedView$TransitionEffect;
.prologue
.line 3487
invoke-virtual {p0}, Lcom/android/launcher2/PagedView;->getContext()Landroid/content/Context;
move-result-object v1
invoke-virtual {v1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v1
const-string v2, "tw_page_effect"
const/4 v3, 0x1
invoke-static {v1, v2, v3}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v1
const v2, 0x1
if-eq v1, v2, :cond_0
const v2, 0x2
if-eq v1, v2, :cond_1
const v2, 0x3
if-eq v1, v2, :cond_2
const v2, 0x4
if-eq v1, v2, :cond_3
const v2, 0x5
if-eq v1, v2, :cond_4
const v2, 0x6
if-eq v1, v2, :cond_5
const v2, 0x7
if-eq v1, v2, :cond_6
sget-object v0, Lcom/android/launcher2/PagedView$TransitionEffect;->CARD:Lcom/android/launcher2/PagedView$TransitionEffect;
goto :goto_0
:cond_0
sget-object v0, Lcom/android/launcher2/PagedView$TransitionEffect;->NONE:Lcom/android/launcher2/PagedView$TransitionEffect;
goto :goto_0
:cond_1
sget-object v0, Lcom/android/launcher2/PagedView$TransitionEffect;->CASCADE:Lcom/android/launcher2/PagedView$TransitionEffect;
goto :goto_0
:cond_2
sget-object v0, Lcom/android/launcher2/PagedView$TransitionEffect;->OUTERCUBE:Lcom/android/launcher2/PagedView$TransitionEffect;
goto :goto_0
:cond_3
sget-object v0, Lcom/android/launcher2/PagedView$TransitionEffect;->INNERCUBE:Lcom/android/launcher2/PagedView$TransitionEffect;
goto :goto_0
:cond_4
sget-object v0, Lcom/android/launcher2/PagedView$TransitionEffect;->CAROUSAL:Lcom/android/launcher2/PagedView$TransitionEffect;
goto :goto_0
:cond_5
sget-object v0, Lcom/android/launcher2/PagedView$TransitionEffect;->PLAIN:Lcom/android/launcher2/PagedView$TransitionEffect;
goto :goto_0
:cond_6
sget-object v0, Lcom/android/launcher2/PagedView$TransitionEffect;->CONVEYOR:Lcom/android/launcher2/PagedView$TransitionEffect;
:goto_0
iput-object v0, p0, Lcom/android/launcher2/PagedView;->mDefaultTransitionEffect:Lcom/android/launcher2/PagedView$TransitionEffect;
iput-object v0, p0, Lcom/android/launcher2/PagedView;->mCurrentTransitionEffect:Lcom/android/launcher2/PagedView$TransitionEffect;
.line 3488
return-void
.end method
Okay, I've recompiled.
Now I have to make the modification in SecSettings2 (In the original guide, it stays in the RomControl)
Go to: SecSettings\res\values\strings.xml add the text below at the end (before /resources)
Code:
<string-array name="tw_effect_entries">
<item>None</item>
<item>Cascade</item>
<item>Outer cube</item>
<item>Inner Cube</item>
<item>Carousal</item>
<item>Plain</item>
<item>Conveyor</item>
<item>Card</item>
</string-array>
<string-array name="tw_effect_values">
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>5</item>
<item>6</item>
<item>7</item>
<item>8</item>
</string-array>
Go to: SecSettings\res\xml\display_settings.xml and add this text in the end, before </ PreferenceScreen>:
Code:
ListPreference android:entries="@array/tw_effect_entries" android:title="Touchwiz Transition Effect" android:key="tw_page_effect" android:defaultValue="1" android:entryValues="@array/tw_effect_values" />
After that, I recompiled. The option appears in Settings> Display. But even selecting one of the effects did not work. I need help to finish this mod. Please help me!
Below, the link to the original guide using RomControl. Credits to @tamirda
How to enable Touchwiz Page Transition effects

[GUIDE] how to add Marshmallow Platlogo to your JellyBean Device

This guide will tell you how you can add Marshmallow Platlogo to your JellyBean Device.​(Found it on Internet)​
Requirements :​-> Android 4.1 or up
-> APK Tools (Download Here)
-> 7-zip
-> framework.jar (from System\Framework\framework.jar)
-> Marshmallow.zip (Link Below)
-> Notepad++
-> Custom Recovery (eg.CWM)
-> Basic Knowledge of Decompiling, Recompiling, Flashing
Now, How to do it :​
STEP 1: Decompile 'framework.jar' using APK Tools. (If you don't know how to do it, Click Here)
STEP 2: Go to '\smali\com\android\internal\app\PlatLogoActivity.smali'
STEP 3: Open 'PlatLogoActivity.smali' using Notepad++ and delete all content. and Copy the code from here down below and save the file.
Code:
.class public Lcom/android/internal/app/PlatLogoActivity;
.super Landroid/app/Activity;
.source "PlatLogoActivity.java"
# direct methods
.method public constructor <init>()V
.locals 0
.prologue
.line 12
invoke-direct {p0}, Landroid/app/Activity;-><init>()V
return-void
.end method
# virtual methods
.method protected onCreate(Landroid/os/Bundle;)V
.locals 5
.param p1, "savedInstanceState" # Landroid/os/Bundle;
.prologue
.line 16
invoke-super {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V
.line 18
new-instance v1, Landroid/content/Intent;
const-string v2, "android.intent.action.MAIN"
invoke-direct {v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
.line 19
.local v1, "intent":Landroid/content/Intent;
new-instance v2, Landroid/content/ComponentName;
const-string v3, "androstarkdeveloper.marshamlloweasteregg"
const-string v4, "androstarkdeveloper.marshamlloweasteregg.MainActivity"
invoke-direct {v2, v3, v4}, Landroid/content/ComponentName;-><init>(Ljava/lang/String;Ljava/lang/String;)V
invoke-virtual {v1, v2}, Landroid/content/Intent;->setComponent(Landroid/content/ComponentName;)Landroid/content/Intent;
.line 23
:try_start_0
invoke-virtual {p0, v1}, Lcom/android/internal/app/PlatLogoActivity;->startActivity(Landroid/content/Intent;)V
:try_end_0
.catch Landroid/content/ActivityNotFoundException; {:try_start_0 .. :try_end_0} :catch_0
.line 39
:goto_0
invoke-virtual {p0}, Lcom/android/internal/app/PlatLogoActivity;->finish()V
.line 41
return-void
.line 31
:catch_0
move-exception v0
.line 35
.local v0, "e":Landroid/content/ActivityNotFoundException;
const-string v2, "Error"
const/4 v3, 0x0
invoke-static {p0, v2, v3}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
move-result-object v2
invoke-virtual {v2}, Landroid/widget/Toast;->show()V
goto :goto_0
.end method
STEP 4: Recompile the framework.jar file and place it back into the System. (Permissions : rw- r-- r--)
STEP 5: Flash the 'Marshmallow Platlogo.zip' using CWM or other recovery (Available in the Download link gicen below)
Downloads and Credits : http://www.romclaims.com/2017/09/apktool-4.1.x-how-to-add-android-marshmallow-platlogo-on-jellybean-device.html
[RESERVED]
[RESERVED]
Good work thanks you

Categories

Resources