[Android] 狀態欄加入隱藏式電源鍵

刷上 CyanogenMod 13 後,發現舊版 (CM10~11) Home 鍵快捷已取消,方便的滑動手勢截圖無法沿用。於是自行在狀態列加入電源鍵,配合 CM 自訂選單功能作為替代方案,不必使用硬體鍵或是額外安裝 App。

這其實是早期就有的美化方式,單純紀錄修改過程。


刷機、改機有風險,請自行承擔後果

前置需求:
Java
Advanced ApkTool (推薦)
Notepad++ 等文字編輯工具
WinRAR, 7zip 等壓縮軟體
空的刷機包


-system/priv-app 複製 SystemUI.apk
-system/framework 複製 framework-res.apkorg.cyanogenmod.platform-res.apk
-安裝上述兩個檔案為系統框架
-反編譯 SystemUI.apk
-開啟 res/layout/status_bar.xml



在黃色中間新增一行,並加入這段
<com.android.systemui.statusbar.policy.KeyButtonView android:layout_gravity="left" android:orientation="vertical" android:paddingLeft="100.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="#00000000" systemui:keyCode="26" />



Android 5.0 以上要在鎖定螢幕加入電源鍵,開啟 res/layout/keyguard_status_bar.xml
在黃色中間加入同一段語法即可

有幾個參數可以視需要調整:
android:layout_gravity="left"
指定位置,left 即狀態列左側,等同畫面的左上角
android:paddingLeft="100.0dip"
邊距方面數值。這裡作為按鍵區域寬度,給平板用的話可以大些
-修改好後儲存、反編譯
-以壓縮軟體同時開啟原檔和反編譯完成的 SystemUI.apk
-反編譯過的 SystemUI.apk 中找到 status_bar.xmlkeyguard_status_bar.xml 拖曳到原檔 SystemUI.apk 內取代 (路徑都是 res/layout)
-原檔 SystemUI.apk 放入空的刷機包 system/priv-app/SystemUI 底下完成
-傳到裝置內以 Recovery 刷入。建議事先備份





確定沒有問題後,便能進行下列操作:
-按一下關閉螢幕
-按住約 1.5~2 秒,或按住同時向旁邊滑動約 1 秒顯示電源選單
-與音量 - 同時按住約 1 秒即截圖

實測後按住再滑動的方式最方便,反應時間較短,同時避免太早放開把螢幕給關掉。
「設定→按鍵→電源功能表」可啟用截圖選項。
「設定→開發人員選項→進階重新啟動」可啟 Recovery 選項。


另外也稍微修改電池電量與時鐘的邊距,在 status_bar.xml 找到類似這段
<com.android.systemui.BatteryLevelTextView android:textSize="@dimen/battery_level_text_size" android:textColor="@color/status_bar_battery_level_text_color" android:layout_gravity="center_vertical" android:id="@id/battery_level_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="@dimen/header_battery_margin_keyguard" android:layout_marginEnd="5.0dip" />
尾端加入綠色代碼即可。合適數值大約 4.0~7.0dip。




後記
-Android 5.0+ 修改方式仍有些變化,狀態列分成平常使用、鎖定螢幕專用兩種。
-最近作者已釋出 9/1 版本,在 CM 這類時常更新的 Rom 修改系統其實不是很恰當。不過個人習慣當下覺得穩定後,會間隔很久才更新。

留言