最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

「三星官方ROM状态栏下拉14键开关修改教程」

IT圈 admin 51浏览 0评论

2024年5月10日发(作者:侨子骞)

此开关代码完全适用于三星I9000/I897/T959/I9100/M110S等机型,我也将在这些机型

的新版本ROM中提供此功能,其中闪光灯的代码中会判断机型是否有提供闪光灯,如果没有

将会打开一个白色背景的窗口并将窗口亮度调至最高,比如I9000/T897/T959/M110S

等机型。

10月15日更新:重构下拉开关代码,增加到14键开关,并提供自定义设置程序。

10月6日更新:修复I9000/I897/T959/M110S等机型重启和关机权限问题。

下面讲一下基于三星官方2.3 ROM中的SystemUI.apk修改过程,附件有三个Quick

PanelSettings.apk、LidroidSystemUI.apk和lidroid-res.apk:

ﻫ1、下载附件中的LidroidSystemUI.apk并使用apktool反编译得到LidroidSystemU

I目录。ﻫ

2、使用apktool反编译你要修改的SystemUI.apk得到SystemUI目录,并将Lid

roidSystemUI/smali中的两个目录(分别为com、lidroid)复制到SystemUI/smali

目录中。

3、修改SystemUI/AndroidManifest.xml,在</application>之前添加以下代码

行:

<activity android:name="emui.quickpanel.Flashli

ghtActivity"

android:theme="@android:style/Theme.NoTitleBa

r.Fullscreen"

android:clearTaskOnLaunch="true"

android:configChanges="orientation|keyboardHidden"

android:launchMode="singleTask" />

并保存,有闪光灯的机型如I9100不需要做这一步。

4、打开SystemUI/smali/com/android/systemui/statusbar/StatusBarServ

,查找QuickSettingsView,将以下代码行

const v7, 0x7f030002

invoke-static {p1, v7, v9}, Landroid/view/View;->inflate(La

ndroid/content/Context;ILandroid/view/ViewGroup;)Landroid/view/Vi

ew;

move-result-object v3

check-cast v3, Lcom/android/systemui/statusbar/quickpanel/QuickSett

ingsView;

.line 379

.local v3, qsv:Lcom/android/systemui/statusbar/quickpanel/QuickSettingsView;

修改为

const v7, 0x3030003

invoke-static {p1, v7, v9}, Landroid/view/View;->inflate(Land

roid/content/Context;ILandroid/view/ViewGroup;)Landroid/view/View;

move-result-object v3

check-cast v3, Lcom/lidroid/systemui/quickpanel/PowerWidget;

.line 394

.local v3, qsv:Lcom/lidroid/systemui/quickpanel/PowerWidget;

invoke-virtual {v3}, Lcom/lidroid/systemui/quickpanel/PowerWidg

et;->setupWidget()V

并保存,不同的ROM版本const v7, 0x7f030002这个值可能不尽相同,没关系,只需

要复制上面的代码覆盖掉即可。

ﻫ5、用apktool编译Sys,修改过AndroidManifest.xml的话将Sys

temUI/dist/SystemUI.apk做一下重新签名即可(需跟ROM的整体签名保持一致),

如果没有修改过AndroidManifest.xml如I9100机型不需要重新签名,将SystemUI

/build/apk/classes.dex覆盖到SystemUI.apk中即可。ﻫ

6、将k放于你机器的/system/framework目录中,将QuickPanelSettin

gs.apk和修改好的放于/system/app目录中重启手机就OK了。

ﻫ如此简单的修改过程,不要再去自己修改SystemUI.apk中的布局添加ID和字符串资源

了,官方每更新一个版本你就要痛苦一次,了解其中过程的朋友就知道我所提供的方法有多

么简单方便快捷了。有需要的人随便用就行,愿意的话注明一下出处,就这些小玩意儿对于

了解Android开发的人都不是什么难事,祝大家好运!

2024年5月10日发(作者:侨子骞)

此开关代码完全适用于三星I9000/I897/T959/I9100/M110S等机型,我也将在这些机型

的新版本ROM中提供此功能,其中闪光灯的代码中会判断机型是否有提供闪光灯,如果没有

将会打开一个白色背景的窗口并将窗口亮度调至最高,比如I9000/T897/T959/M110S

等机型。

10月15日更新:重构下拉开关代码,增加到14键开关,并提供自定义设置程序。

10月6日更新:修复I9000/I897/T959/M110S等机型重启和关机权限问题。

下面讲一下基于三星官方2.3 ROM中的SystemUI.apk修改过程,附件有三个Quick

PanelSettings.apk、LidroidSystemUI.apk和lidroid-res.apk:

ﻫ1、下载附件中的LidroidSystemUI.apk并使用apktool反编译得到LidroidSystemU

I目录。ﻫ

2、使用apktool反编译你要修改的SystemUI.apk得到SystemUI目录,并将Lid

roidSystemUI/smali中的两个目录(分别为com、lidroid)复制到SystemUI/smali

目录中。

3、修改SystemUI/AndroidManifest.xml,在</application>之前添加以下代码

行:

<activity android:name="emui.quickpanel.Flashli

ghtActivity"

android:theme="@android:style/Theme.NoTitleBa

r.Fullscreen"

android:clearTaskOnLaunch="true"

android:configChanges="orientation|keyboardHidden"

android:launchMode="singleTask" />

并保存,有闪光灯的机型如I9100不需要做这一步。

4、打开SystemUI/smali/com/android/systemui/statusbar/StatusBarServ

,查找QuickSettingsView,将以下代码行

const v7, 0x7f030002

invoke-static {p1, v7, v9}, Landroid/view/View;->inflate(La

ndroid/content/Context;ILandroid/view/ViewGroup;)Landroid/view/Vi

ew;

move-result-object v3

check-cast v3, Lcom/android/systemui/statusbar/quickpanel/QuickSett

ingsView;

.line 379

.local v3, qsv:Lcom/android/systemui/statusbar/quickpanel/QuickSettingsView;

修改为

const v7, 0x3030003

invoke-static {p1, v7, v9}, Landroid/view/View;->inflate(Land

roid/content/Context;ILandroid/view/ViewGroup;)Landroid/view/View;

move-result-object v3

check-cast v3, Lcom/lidroid/systemui/quickpanel/PowerWidget;

.line 394

.local v3, qsv:Lcom/lidroid/systemui/quickpanel/PowerWidget;

invoke-virtual {v3}, Lcom/lidroid/systemui/quickpanel/PowerWidg

et;->setupWidget()V

并保存,不同的ROM版本const v7, 0x7f030002这个值可能不尽相同,没关系,只需

要复制上面的代码覆盖掉即可。

ﻫ5、用apktool编译Sys,修改过AndroidManifest.xml的话将Sys

temUI/dist/SystemUI.apk做一下重新签名即可(需跟ROM的整体签名保持一致),

如果没有修改过AndroidManifest.xml如I9100机型不需要重新签名,将SystemUI

/build/apk/classes.dex覆盖到SystemUI.apk中即可。ﻫ

6、将k放于你机器的/system/framework目录中,将QuickPanelSettin

gs.apk和修改好的放于/system/app目录中重启手机就OK了。

ﻫ如此简单的修改过程,不要再去自己修改SystemUI.apk中的布局添加ID和字符串资源

了,官方每更新一个版本你就要痛苦一次,了解其中过程的朋友就知道我所提供的方法有多

么简单方便快捷了。有需要的人随便用就行,愿意的话注明一下出处,就这些小玩意儿对于

了解Android开发的人都不是什么难事,祝大家好运!

发布评论

评论列表 (0)

  1. 暂无评论