Hôm nay mình sẽ hướng dẫn các bạn mod 1 SystemUI Android L
Video DemoBắt tay vào mod thôi nào!
Công cụ
androidL_smalis.zip
androidL_drawable.zip
Bước 1: Decom SystemUI
Bước 2: Mở AndroidManifest.xml và thêm dòng
- Code:
<activity android:name="com.tenten.LFlashLight">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
- Code:
</aplication>
Bước 3: Lưu lại và dowload androidL_smalis.zip sau khi down xong thì giải nén vào smali/com
Bước 4: Download androidL_drawable.zip và giải nén vào res (Hoặc chép đè các hình ảnh pngs trong file zip vào res/drawable và res/drawable-ldpi)
Chú ý
- Khi sao chép các ảnh pngs, có một vài ảnh cùng tên nhưng không ghi đè lên được. Vì trong file zip nó là ảnh 9.png còn ở SystemUI của bạn là png nên nó sẽ không chép đè mà để 2 ảnh luôn. Vì thế khi recom có thể sảy ra lỗi.:
- Code:
<View android:background="#ff8e979f" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.0" />
<com.android.systemui.statusbar.CloseDragHandle android:orientation="vertical" android:id="@id/close" android:layout_width="fill_parent" android:layout_height="wrap_content">
<ImageView android:layout_gravity="bottom" android:layout_width="fill_parent" android:layout_height="wrap_content" android:src="@drawable/status_bar_close_on" android:scaleType="fitXY" />
</com.android.systemui.statusbar.CloseDragHandle>
- Code:
<View android:background="#00000000" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.0" />
<com.android.systemui.statusbar.CloseDragHandle android:orientation="vertical" android:id="@id/close" android:layout_width="fill_parent" android:layout_height="50.0px" />
- Code:
android:layout_marginTop="2.0dip"
- Code:
<LinearLayout android:layout_marginTop="2.0dip" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="70.0sp"
- Code:
<com.android.systemui.statusbar.LatestItemView
-Bước 8: Save. Mở quickpanel_quick_settings.xml và xóa tất cả codes.
sau đó dán chổ này vào
- Code:
<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.statusbar.quickpanel.QuickSettingsView android:orientation="vertical" android:id="@id/quickpanel_quick_settings" android:layout_width="fill_parent" android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android">
<com.tenten.UpDownBoomPaw android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content">
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="50.0px">
<FrameLayout android:layout_width="fill_parent" android:layout_height="50.0px" android:layout_weight="1.0">
<com.tenten.LWifiToggle android:layout_gravity="center_horizontal|center_vertical" android:layout_width="35.0px" android:layout_height="35.0px" android:scaleType="centerInside" />
<com.tenten.LWifiName android:textStyle="bold" android:textSize="13.0sp" android:layout_gravity="bottom|center_horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</FrameLayout>
<FrameLayout android:layout_width="fill_parent" android:layout_height="50.0px" android:layout_weight="1.0">
<com.tenten.LBluetoothToggle android:layout_gravity="center_horizontal|center_vertical" android:layout_width="35.0px" android:layout_height="35.0px" android:scaleType="centerInside" />
</FrameLayout>
</LinearLayout>
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="50.0px">
<FrameLayout android:layout_width="fill_parent" android:layout_height="50.0px" android:layout_weight="1.0">
<com.tenten.LSignalToggle android:layout_gravity="center_horizontal|center_vertical" android:layout_width="35.0px" android:layout_height="35.0px" android:scaleType="centerInside" />
<com.android.systemui.statusbar.CarrierLabel android:textStyle="bold" android:textSize="13.0sp" android:textColor="#ffffffff" android:layout_gravity="bottom|center_horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</FrameLayout>
<FrameLayout android:layout_width="fill_parent" android:layout_height="50.0px" android:layout_weight="1.0">
<com.tenten.LAirplaneToggle android:layout_gravity="center_horizontal|center_vertical" android:layout_width="35.0px" android:layout_height="35.0px" android:scaleType="centerInside" />
</FrameLayout>
<FrameLayout android:layout_width="fill_parent" android:layout_height="50.0px" android:layout_weight="1.0">
<com.tenten.LAutoRotateToggle android:layout_gravity="center_horizontal|center_vertical" android:layout_width="35.0px" android:layout_height="35.0px" android:scaleType="centerInside" />
</FrameLayout>
</LinearLayout>
</com.tenten.UpDownBoomPaw>
</com.android.systemui.statusbar.quickpanel.QuickSettingsView>
- Code:
<com.android.systemui.statusbar.DateView android:textAppearance="@android:style/TextAppearance.StatusBar.Icon" android:gravity="left|center" android:id="@id/date" android:background="#ff000000" android:paddingLeft="6.0px" android:paddingRight="6.0px" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />
- Code:
<com.android.systemui.statusbar.DateView android:textColor="#00000000" android:id="@id/date" android:background="#ff000000" android:layout_width="fill_parent" android:layout_height="fill_parent" />
- Code:
xmlns:android="http://schemas.android.com/apk/res/android">
và chép lại bằng code này
- Code:
<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.statusbar.ExpandedView android:orientation="vertical" android:focusable="true" android:descendantFocusability="afterDescendants"
xmlns:android="http://schemas.android.com/apk/res/android">
<com.tenten.TogglesButton2 android:orientation="vertical" android:background="@drawable/quickpanel_title_background" android:layout_width="fill_parent" android:layout_height="wrap_content">
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="50.0dip">
<LinearLayout android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10.0px" android:layout_marginTop="3.0px" android:layout_alignParentLeft="true">
<com.android.systemui.statusbar.Clock android:textSize="20.0sp" android:textStyle="normal" android:textColor="#ffdfdfdf" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<com.tenten.LDateBar android:layout_marginLeft="3.0px" android:layout_marginTop="-2.0px" android:textSize="11.0sp" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout android:gravity="right|center_vertical" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1.0" android:paddingRight="10.0px" android:layout_alignParentRight="true">
<com.tenten.LBluetoothBar android:paddingRight="3.0dip" android:layout_width="wrap_content" android:layout_height="20.0px" />
<com.tenten.LWifiBar android:paddingLeft="2.0dip" android:layout_width="20.0px" android:layout_height="20.0px" android:scaleType="fitCenter" />
<com.tenten.LSignalBar android:layout_width="wrap_content" android:layout_height="15.0px" />
<com.tenten.LBatteryBar android:paddingLeft="2.0dip" android:layout_width="wrap_content" android:layout_height="23.0px" />
<com.tenten.LAlarmBar android:paddingLeft="2.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<com.tenten.LSettingsBar android:paddingLeft="4.0dip" android:layout_width="20.0px" android:layout_height="20.0px" />
</LinearLayout>
</LinearLayout>
<ImageView android:layout_width="fill_parent" android:layout_height="3.0px" />
</com.tenten.TogglesButton2>
<com.tenten.LayoutAnimation1 android:background="@drawable/quickpanel_title_background" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="50.0dip">
<Button android:id="@id/clear_all_button" android:layout_width="0.0dip" android:layout_height="0.0dip" android:text="" />
<com.tenten.LBrightnessBar android:layout_gravity="center_vertical" android:layout_marginLeft="10.0px" android:layout_width="23.0px" android:layout_height="23.0px" />
<com.tenten.LseekBar android:layout_gravity="center_vertical" android:paddingLeft="12.0px" android:paddingRight="12.0px" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10.0px" android:layout_marginRight="10.0px" android:layout_weight="1.0" style="@style/tentenL_seekbar"/>
</com.tenten.LayoutAnimation1>
<com.tenten.LayoutAnimation2 android:background="@drawable/quickpanel_plmn_background" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content">
<include layout="@layout/quickpanel_quick_settings" />
</com.tenten.LayoutAnimation2>
<com.tenten.LayoutAnimation3 android:layout_marginRight="5.0px" android:layout_marginLeft="5.0px" android:layout_marginTop="2.0dip" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content">
<com.tenten.UpDownBoomPaw android:layout_width="fill_parent" android:layout_height="wrap_content">
<FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content">
<ScrollView android:id="@id/scroll" android:scrollbars="none" android:fadingEdgeLength="16.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:overScrollMode="never">
<com.android.systemui.statusbar.NotificationLinearLayout android:orientation="vertical" android:id="@id/notificationLinearLayout" android:layout_width="fill_parent" android:layout_height="wrap_content">
<TextView android:textSize="17.0sp" android:textStyle="normal" android:textColor="#ffffffff" android:id="@id/noNotificationsTitle" android:background="#00000000" android:paddingLeft="5.0dip" android:layout_width="fill_parent" android:layout_height="0.0dip" android:text="@string/status_bar_no_notifications_title" />
<TextView android:textSize="17.0sp" android:textStyle="normal" android:textColor="#ffffffff" android:id="@id/ongoingTitle" android:background="#00000000" android:paddingLeft="5.0dip" android:layout_width="fill_parent" android:layout_height="0.0dip" android:text="@string/status_bar_ongoing_events_title" />
<TextView android:textSize="17.0sp" android:textStyle="normal" android:textColor="#ffffffff" android:id="@id/latestTitle" android:background="#00000000" android:paddingLeft="5.0dip" android:layout_width="fill_parent" android:layout_height="0.0dip" android:text="@string/status_bar_latest_events_title" />
<LinearLayout android:orientation="vertical" android:id="@id/ongoingItems" android:layout_width="fill_parent" android:layout_height="wrap_content" />
<LinearLayout android:orientation="vertical" android:id="@id/latestItems" android:layout_width="fill_parent" android:layout_height="wrap_content" />
</com.android.systemui.statusbar.NotificationLinearLayout>
</ScrollView>
</FrameLayout>
</com.tenten.UpDownBoomPaw>
</com.tenten.LayoutAnimation3>
</com.android.systemui.statusbar.ExpandedView>
- Code:
<style name="tentenL_seekbar">
<item name="android:maxHeight">2.0dip</item>
<item name="android:indeterminateOnly">false</item>
<item name="android:minHeight">0.0dip</item>
<item name="android:thumb">@drawable/seek_thumb</item>
<item name="android:indeterminateDrawable">@drawable/progress_horizontal</item>
<item name="android:progressDrawable">@drawable/progress_horizontal</item>
</style>
-Bước cuối: Save và recompile SystemUI xong cho vào system/app! hehe xD
CREDITS:
StackOverFlow.com
Github.com
AOSP
@evanlocked
@PineappleOwl
@mariozawa
@AuliaYF
@jsarunotres
LenoxDevs
PotatoInc
Link Nguồn
Chúc các bạn thành công
Post by Sad Eyes