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开发的人都不是什么难事,祝大家好运!