rk3562 安卓14 -安卓15 锁屏图标显示异常

14

+++ b/packages/SystemUI/src/com/android/keyguard/LockIconViewController.java
@@ -384,6 +384,10 @@ public class LockIconViewController extends ViewController<LockIconView> impleme
         mWidthPixels = bounds.right;
         mHeightPixels = bounds.bottom;
         mBottomPaddingPx = getResources().getDimensionPixelSize(R.dimen.lock_icon_margin_bottom);
+               if(mBottomPaddingPx > 80){
+               mBottomPaddingPx = 80;
+
+               }
         mDefaultPaddingPx =
                 getResources().getDimensionPixelSize(R.dimen.lock_icon_padding);
 
@@ -396,7 +400,8 @@ public class LockIconViewController extends ViewController<LockIconView> impleme
 
     private void updateLockIconLocation() {
         final float scaleFactor = mAuthController.getScaleFactor();
-        final int scaledPadding = (int) (mDefaultPaddingPx * scaleFactor);
+//final int scaledPadding = (int) (mDefaultPaddingPx * scaleFactor);
+        final int scaledPadding = 21;
         if (mUdfpsSupported) {
             mView.setCenterLocation(mAuthController.getUdfpsLocation(),
                     mAuthController.getUdfpsRadius(), scaledPadding);

15

diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/DeviceEntryIconViewBinder.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/DeviceEntryIconViewBinder.kt
index b45eae7301b4..393856abd3c4 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/DeviceEntryIconViewBinder.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/DeviceEntryIconViewBinder.kt
@@ -144,8 +144,8 @@ object DeviceEntryIconViewBinder {
                 }
                 launch("$TAG#viewModel.burnInOffsets") {
                     viewModel.burnInOffsets.collect { burnInOffsets ->
-                        view.translationX = burnInOffsets.x.toFloat()
-                        view.translationY = burnInOffsets.y.toFloat()
+                        view.translationX = burnInOffsets.x.toFloat()*4
+                        view.translationY = burnInOffsets.y.toFloat()*4
                         view.aodFpDrawable.progress = burnInOffsets.progress
                     }
                 }
@@ -175,10 +175,10 @@ object DeviceEntryIconViewBinder {
                         fgIconView.imageTintList =
                             ColorStateList.valueOf(overrideColor?.toArgb() ?: viewModel.tint)
                         fgIconView.setPadding(
-                            viewModel.padding,
-                            viewModel.padding,
-                            viewModel.padding,
-                            viewModel.padding,
+                            0,
+                            0,
+                            0,
+                            0,
                         )
                     }
                 }
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/DeviceEntryIconView.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/DeviceEntryIconView.kt
index 1c6323594c70..2d5058e8bccd 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/DeviceEntryIconView.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/DeviceEntryIconView.kt
@@ -222,6 +222,7 @@ constructor(
     }
 
     private fun addLongpressHandlingView() {
+        android.util.Log.d("liujunjie22","=========== addLongpressHandlingView==============");
         addView(longPressHandlingView)
         val lp = longPressHandlingView.layoutParams as LayoutParams
         lp.height = ViewGroup.LayoutParams.MATCH_PARENT
@@ -230,22 +231,25 @@ constructor(
     }
 
     private fun addIconImageView() {
+        android.util.Log.d("liujunjie22","=========== addIconImageView==============");
         iconView.scaleType = ImageView.ScaleType.CENTER_CROP
         iconView.setImageDrawable(animatedIconDrawable)
         addView(iconView)
         val lp = iconView.layoutParams as LayoutParams
-        lp.height = ViewGroup.LayoutParams.MATCH_PARENT
-        lp.width = ViewGroup.LayoutParams.MATCH_PARENT
+        //lp.height = ViewGroup.LayoutParams.MATCH_PARENT
+        lp.height = 50;
+        lp.width = 50;
         lp.gravity = Gravity.CENTER
         iconView.layoutParams = lp
     }
 
     private fun addBgImageView() {
+        android.util.Log.d("liujunjie22","=========== addBgImageView==============");
         bgView.setImageDrawable(context.getDrawable(R.drawable.fingerprint_bg))
         addView(bgView)
         val lp = bgView.layoutParams as LayoutParams
-        lp.height = ViewGroup.LayoutParams.MATCH_PARENT
-        lp.width = ViewGroup.LayoutParams.MATCH_PARENT
+        lp.height = 50;
+        lp.width = 50;
         bgView.layoutParams = lp
     }
 
<think>嗯,用户的问题是RK3562设备在Android 14上插入U盘后重启无法识别。我需要先分析可能的原因,然后给出解决方案。首先,根据引用[3]提到的RK3568在Android 11上区分U盘和硬盘的问题,可能RK3562Android 14上的USB存储设备识别机制有变化。接着,引用[4]提到Android不同版本在设备识别上的差异,比如断电重启后音频失效,类似的问题可能出现在USB识别上,可能是驱动或内核配置问题。 然后,引用[2]中用户尝试修改fusb302驱动切换模式,说明硬件驱动可能影响设备识别。所以需要检查RK3562的USB控制器驱动是否正确加载,以及设备树配置是否有问题。另外,引用[5]提到启扬RK3288主板的多种接口,可能RK3562的USB接口配置需要调整,比如供电或模式设置。 接下来,可能的解决方案包括:1.检查内核日志确认USB设备枚举情况,是否有错误信息;2.确认Vold服务配置,是否需要修改存储设备识别逻辑;3.更新或回滚USB相关驱动,确保兼容Android 14;4.检查设备树中的USB节点配置,特别是供电和PHY设置;5.确认用户空间的策略,比如SELinux权限是否阻止了设备识别。 另外,引用[3]中的解决方案可能涉及修改Vold的DiskInfo类来区分设备类型,可能需要类似的方法调整RK3562的存储设备识别逻辑。同时,引用[4]提到断电和软重启的区别,可能涉及硬件初始化顺序或电源管理,需要检查PMIC配置或重启过程中的USB电源管理。 最后,确保所有修改后编译和烧写固件,进行充分测试,包括不同重启方式和U盘型号。需要分步骤指导用户检查日志、修改配置、更新驱动等,并提供验证方法。</think>根据RK3562平台在Android 14上的USB识别问题,结合Rockchip平台开发经验,建议按照以下步骤排查和解决: ### 一、内核层排查 1. **检查USB控制器状态** ```shell adb shell dmesg | grep -i usb # 重点观察USB PHY初始化、控制器注册、设备枚举过程 ``` 若出现"USB reset low-speed device"或"enumeration failed"等错误,需检查USB供电电路设计[^4] 2. **验证设备树配置** ```dts // kernel/arch/arm64/boot/dts/rockchip/rk3562.dtsi &usb_host0_ehci { status = "okay"; #address-cells = <1>; #size-cells = <0>; usb@fe380000 { compatible = "generic-ehci"; reg = <0xfe380000 0x20000>; interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; }; }; ``` 需确认EHCI/XHCI控制器配置与硬件设计匹配,特别注意供电管脚配置[^3] ### 二、框架层修改 1. **Vold服务增强识别** ```java // system/vold/Disk.cpp + static const int MAX_RETRIES = 5; // 增加重试机制 void Disk::readMetadata() { for (int i = 0; i < MAX_RETRIES; i++) { if (readPartitions() == 0) break; usleep(100000); // 增加100ms延时 } } ``` 可参考Rockchip存储设备区分逻辑[^3] ### 三、电源管理优化 1. **添加USB供电保持策略** ```c // kernel/drivers/usb/core/hub.c + static void hub_restart_work(struct work_struct *work) + { + struct usb_hub *hub = container_of(work, struct usb_hub, restart_work); + usb_reset_device(hub->hdev); + } void hub_port_connect_change(...) { if (hub_is_superspeed(hub->hdev)) { schedule_work(&hub->restart_work); // 增加重启恢复机制 } } ``` ### 四、验证步骤 1. 设备重启后执行: ```shell adb shell ls /sys/bus/usb/devices # 应显示类似1-1.4的USB设备节点 adb shell cat /sys/kernel/debug/usb/devices # 查看设备描述符是否完整 ``` ### 五、常见解决方案 1. 更新USB PHY固件: ```shell fastboot flash uboot ./rk3562_usbphy_v1.09.bin ``` 2. 修改USB工作模式: ```shell echo host > /sys/kernel/debug/usb/rk3562_usb/mode ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值