smali 简单注入之添加textView & activity 替换
新手们福利来了 今天要讲的是1.给activity,布局添加自己的textView2.替换掉原来activity的布局,显示自己的布局
3.替换掉原来activity,显示自己的activity
东西都很简单,慢慢尝试。
0x1 给activity,布局添加自己的textView
新建一个安卓工程,直接生产apk。导入AK里修改。
复制上面的textView 添加到下面
看效果
0x2替换掉原来activity的布局,显示自己的布局
在 layout 下面新建activity_mylayout.xml注意布局字母必须小写
下面是布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="Click"
android:text="click" />
</LinearLayout>
重要的一步来了
1.打开public.xml
2.复制上一行,修改name 和 id
还需要修改
最有一步
打开MainActivity.smaliconst 后面的去掉
看效果
下面来把窗体改为透明色
在清单文件配置
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
看效果
如果把返回键屏蔽掉 呵呵。。
0x3替换掉原来activity,显示自己的activity
创建一个MyActivity.smali 为我们的启动界面
布局还是加载上一个mylayout
给button 添加点击事件
看代码
.class public Lcom/example/smaliinjection/MyActivity;
.super Landroid/app/Activity;
.source "MyActivity.java"
# direct methods
.method public constructor <init>()V
.locals 0
.prologue
.line 7
invoke-direct {p0}, Landroid/app/Activity;-><init>()V
return-void
.end method
# virtual methods
.method protected onCreate(Landroid/os/Bundle;)V
.locals 1
.param p1, "savedInstanceState" # Landroid/os/Bundle;
.prologue
.line 11
invoke-super {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V
.line 12
const v0, 0x7f030001
invoke-virtual {p0, v0}, Lcom/example/smaliinjection/MainActivity;->setContentView(I)V
.line 13
return-void
.end method
.method public Click(Landroid/view/View;)V
.locals 2
.param p1, "v" # Landroid/view/View;
.prologue
.line 20
const-string v0, "hehe"
const/4 v1, 0x0
invoke-static {p0, v0, v1}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
move-result-object v0
invoke-virtual {v0}, Landroid/widget/Toast;->show()V
.line 21
return-void
.end method
还需要在清单文件配置
看效果
不是透明的 因为是MyActivity 显示的
好了就这么多,很简单。。睡觉了 。。。 有空在写吧。。
直接在上面改就是 认真学习!!!!!
页:
[1]