Mod Collection for MiUI/HyperOS
Open in Telegram
This is a public channel. We share what we saved in public groups and share what we know. Update: https://t.me/hyperosmodcollection Chat: https://t.me/hyperosmodcollectionchat Paypal: https://www.paypal.me/AnhDzVN BIDV: PHAN VAN ANH 67210001283608
Show moreThe country is not specifiedTechnologies & Applications20 964
No data
Subscribers
-124 hours
+97 days
+2330 days
Posts Archive
Add weather on the notification shade
Rom: Hyper
Android: 13, 14
Region: All
In MIUISystemUI.apk
Add the package Weather_fixed_crash.zip
In Resources.arsc, add this ID:
custom_weatherIn /res/layout/miui_ns_notification_header_view.xml Before the LAST line, add:
<com.android.systemui.statusbar.WeatherView android:textAppearance="@style/TextAppearance.QSControl.Date" android:layout_width="-2" android:id="@id/custom_weather" android:layout_height="-2" android:includeFontPadding="false" android:layout_marginStart="@dimen/notification_panel_time_date_space" android:letterSpacing="0.05" />In class com/android/systemui/qs/MiuiNotificationHeaderView Search
.field public mDateView:Lcom/android/systemui/statusbar/views/MiuiClock;After it, add
.field public mWeather:Lcom/android/systemui/statusbar/WeatherView;Add this method at the ending of class
.method public static IDtoID(Landroid/content/Context;Ljava/lang/String;)I .registers 5 invoke-virtual {p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; move-result-object v0 const-string v1, "id" invoke-virtual {p0}, Landroid/content/Context;->getPackageName()Ljava/lang/String; move-result-object v2 invoke-virtual {v0, p1, v1, v2}, Landroid/content/res/Resources;->getIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I move-result v0 return v0 .end methodSearch
invoke-super {p0}, Landroid/widget/LinearLayout;->onFinishInflate()VAfter it, add
const-string v0, "custom_weather" invoke-virtual {p0}, Landroid/widget/LinearLayout;->getContext()Landroid/content/Context; move-result-object v1 invoke-static {v1, v0}, Lcom/android/systemui/qs/MiuiNotificationHeaderView;->IDtoID(Landroid/content/Context;Ljava/lang/String;)I move-result v0 invoke-virtual {p0, v0}, Landroid/widget/LinearLayout;->findViewById(I)Landroid/view/View; move-result-object v0 check-cast v0, Lcom/android/systemui/statusbar/WeatherView; iput-object v0, p0, Lcom/android/systemui/qs/MiuiNotificationHeaderView;->mWeather:Lcom/android/systemui/statusbar/WeatherView;Search: (2 places)
iget-object v0, p0, Lcom/android/systemui/qs/MiuiNotificationHeaderView;->mDateView:Lcom/android/systemui/statusbar/views/MiuiClock; invoke-virtual {v0, vX}, Lcom/android/systemui/statusbar/views/MiuiClock;->setPolicyVisibility(I)VAfter it, add
iget-object v0, p0, Lcom/android/systemui/qs/MiuiNotificationHeaderView;->mWeather:Lcom/android/systemui/statusbar/WeatherView; invoke-virtual {v0, vX}, Landroid/widget/TextView;->setVisibility(I)VvX can be v1, v2 or v3,... Screenshot Credit: @vawnanh2801
Add intent to refresh control center on Hyper Plugin
β οΈ DON'T do if u DON'T know what it is
π Miui plugin can use same way, it might have some differences
In MiuiSystemUIPlugin.apk
Add
SettingsHelper.smaliFile In class /miui/systemui/controlcenter/windowview/ControlCenterWindowViewController Add this method
.method static synthetic refreshControlCenter()V .registers 4 const-string v0, "use_control_panel" const/4 v1, 0x0 invoke-static {v0, v1}, Landroid/preference/SettingsHelper;->getIntofSettings(Ljava/lang/String;I)I move-result v1 xor-int/lit8 v1, v1, 0x1 invoke-static {v0, v1}, Landroid/preference/SettingsHelper;->putIntinSettings(Ljava/lang/String;I)V const/4 v3, 0x0 const v2, 0x200 int-to-long v2, v2 invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V xor-int/lit8 v1, v1, 0x1 invoke-static {v0, v1}, Landroid/preference/SettingsHelper;->putIntinSettings(Ljava/lang/String;I)V return-void .end methodSearch:
const-string v0, "android.intent.action.USER_UNLOCKED" invoke-direct {v4, v0}, Landroid/content/IntentFilter;-><init>(Ljava/lang/String;)VAfter it, add
const-string v0, "my.intent.action.REFRESH_PLUGIN" invoke-virtual {v4, v0}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)VIn class /miui/systemui/controlcenter/windowview/ControlCenterWindowViewController$userUnlockReceiver$1 Search this method and increase its .registers number from 3 to 7
.method public onReceive(Landroid/content/Context;Landroid/content/Intent;)VAfter the line .register X, add
invoke-virtual {p2}, Landroid/content/Intent;->getAction()Ljava/lang/String; move-result-object v1 const-string v2, "my.intent.action.REFRESH_PLUGIN" invoke-virtual {v2, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v2After this line
iget-object p1, p0, Lmiui/systemui/controlcenter/windowview/ControlCenterWindowViewController$userUnlockReceiver$1;->this$0:Lmiui/systemui/controlcenter/windowview/ControlCenterWindowViewController;Add
if-eqz v2, :cond_new :try_start_e invoke-static {}, Lmiui/systemui/controlcenter/windowview/ControlCenterWindowViewController;->refreshControlCenter()V :try_end_11 .catchall {:try_start_e .. :try_end_11} :catchall_11 :catchall_11 goto :goto_new :cond_newBefore
return-voidAdd
:goto_newCredit: @vawnanh2801
Set running icon title on hyper launcher
This method should work on miui launcher
In /product/priv-app/MiuiHome/MiuiHome.apk
In class /com/miui/home/launcher/ItemIcon
Add this method
.method private setRunningTitle(Lcom/miui/home/launcher/TitleTextView;)V .registers 5 sget-object v0, Landroid/text/TextUtils$TruncateAt;->MARQUEE:Landroid/text/TextUtils$TruncateAt; invoke-virtual {p1, v0}, Landroid/widget/TextView;->setEllipsize(Landroid/text/TextUtils$TruncateAt;)V const/4 v0, 0x1 invoke-virtual {p1, v0}, Landroid/widget/TextView;->setHorizontalFadingEdgeEnabled(Z)V invoke-virtual {p1}, Landroid/widget/TextView;->setSingleLine()V const/4 v0, -0x1 invoke-virtual {p1, v0}, Landroid/widget/TextView;->setMarqueeRepeatLimit(I)V const/4 v0, 0x1 invoke-virtual {p1, v0}, Landroid/widget/TextView;->setSelected(Z)V invoke-virtual {p1, v0}, Landroid/widget/TextView;->setHorizontallyScrolling(Z)V return-void .end methodSearch
Lcom/miui/home/launcher/TitleTextView;->setText(Ljava/lang/CharSequence;)VAfter
invoke-virtual {vX, p1}, Lcom/miui/home/launcher/TitleTextView;->setText(Ljava/lang/CharSequence;)VAdd
invoke-direct {p0, vX}, Lcom/miui/home/launcher/ItemIcon;->setRunningTitle(Lcom/miui/home/launcher/TitleTextView;)VCredit: @vawnanh2801
Change blur level on hyper launcher
This method should work on miui launcher
In /product/priv-app/MiuiHome/MiuiHome.apk
In class /com/miui/home/launcher/common/BlurUtils
Add this method at the ending of class
.method public static customBlurLevel()F .registers 3 const/high16 v0, 0x3f800000 # 1.0f return v0 .end methodChange blur level hereπ Search all of these lines
const/high16 vX, 0x3f800000 # 1.0fReplace them by
invoke-static {}, Lcom/miui/home/launcher/common/BlurUtils;->customBlurLevel()F move-result vXSearch all of these lines
const/high16 pX, 0x3f800000 # 1.0fReplace them by
invoke-static {}, Lcom/miui/home/launcher/common/BlurUtils;->customBlurLevel()F move-result pXBonus: U can edit these method if u want to disable/enbale blur effect somewhere
isUseNoRecentsBlurAnimation
isUserBlurWhenOpenFolder
isUseCompleteRecentsBlurAnimationCredit: @vawnanh2801
Fun fact:
There are 3 types of hyper launcher
1. Hyper launcher for android 13 or lower (global)
This type is very smooth on a13- without bugs, but it is bad on a14+2. Hyper launcher for android 14 or higher (China)
This type is very smooth on a14+ without bugs, but it is bad on a13- with many bugs3. Hyper poco launcher
This type... Hmm
Disable wallpaper zoom effect on hyper launcher
This method should work on miui launcher
In /product/priv-app/MiuiHome/MiuiHome.apk
In class /com/miui/home/launcher/Launcher
Replace this method
.method public animateWallpaperZoom(Z)V .registers 4 return-void .end methodCredit: @vawnanh2801
How to enable Always On AOD in HyperOS
Rom: HyperOS
Android: only tested on 14, it should work on other android versions
Region: All
In /product/etc/device_features/(device).xml
Find
<bool name="is_only_support_keycode_goto">true</bool>And replace it with
<bool name="is_only_support_keycode_goto">false</bool>Guide by @NokiPlays
Unlock unlimited time in AOD settings
Rom: Hyper
Android: only tested on 14, it should work on 13
Region: all
In /product/priv-app/MIUIAod/MIUIAod.apk
In class /com/miui/aod/widget/AODSettings
Replace this method
.method public static onlySupportKeycodeGoto()Z .registers 2 const/4 v0, 0x0 return v0 .end methodCredit: @vawnanh2801 Thanks to @nokiplays for his idea
Unlock magazine style in lock screen customizations on unsupported devices
Rom: Hyper
Android: 13, 14
Region: all
In /product/priv-app/MIUIAod/MIUIAod.apk
In class /com/miui/keyguard/editor/utils/DeviceUtil
Replace this method
.method public final isLiteDevice()Z .registers 2 const/4 p0, 0x0 return p0 .end methodCredit: @vawnanh2801
I sometimes use this way to fix bugs
Restore all
Fact: Owner of this group doesn't have any basic knowledge about programming, and English skills are quite weak. Don't laugh if you feel he is stupid. Ah I'm talking about me. Tks
Additional info: He's so lazy and busy
Someone asked me how to fix a bug even though he didn't even send any log.
I'm like:
Simple way to take logs when your apk/system crashes
Rom: All
Android: All
1. Read logs in
/data/system/dropbox2. Use logcat (rooted device + termux)
su logcat > /sdcard/logcat.txt3. Use adb logcat (using PC + platform tool) Enable usb debugging and run
adb logcat > logcat.txtStart reading logs and u will know why it crashes. After that, u should try to fix it or ask it in groups Credit: @vawnanh2801
