首页 > 其他分享 >SC200L Android10启动和关机修改

SC200L Android10启动和关机修改

时间:2022-09-27 15:24:44浏览次数:71  
标签:关机 POWER Android10 LONG eic ret PRESS SC200L

SC200L默认的PowerKey连接方式


根据原理图可知,低电有效,查询代码,默认低电6S以上触发开机或关机菜单

由于项目硬件设计,需改为高电平启动,低电平时无需手动确认,直接关机。因此需修改uboot(改开机)和framework(改关机)

开机修改

查看开机uboot log
image
发现开机按键相关log,查找到对应代码位置
SC200L\BSP\bootloader\u-boot15\drivers\misc\check_reboot.c

int power_button_pressed(void)
{
	int eic_value,ret;
//maybe get button status from eic API is batter
	sprd_eic_request(EIC_PBINT);
	udelay(3000);
	eic_value = sprd_eic_get(EIC_PBINT);
	debugf("power_button_pressed status %x\n", eic_value);

#ifdef CONFIG_POWERKEY_DEFAULT_HIGH
	if (eic_value == 0)
		ret = KEY_PRESSED;
	else
		ret = KEY_NOT_PRESSED;
#else
	if (eic_value == 0)
		ret = KEY_NOT_PRESSED;
	else
		ret = KEY_PRESSED;
#endif
	return ret;
}

由代码可知,关键部分在宏CONFIG_POWERKEY_DEFAULT_HIGH
在SC200L\BSP\bootloader\u-boot15\include\configs\sl8541e_1h10.h中注释掉宏定义即可
image

关机修改

关机参照 DeepCoder【 Android 10 系统启动 】系列 -- ShutdownThread(关机流程)

直接修改powerLongPress()函数即可
// frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java

private void powerLongPress() {
        final int behavior = getResolvedLongPressOnPowerBehavior();
        switch (behavior) {
            case LONG_PRESS_POWER_NOTHING:
                break;
            case LONG_PRESS_POWER_GLOBAL_ACTIONS:
                mPowerKeyHandled = true;
                performHapticFeedback(HapticFeedbackConstants.LONG_PRESS, false,
                        "Power - Long Press - Global Actions");
                //showGlobalActionsInternal();
				//上方代码为原处理方式(换出菜单)下方代码为直接关机代码
                sendCloseSystemWindows(SYSTEM_DIALOG_REASON_GLOBAL_ACTIONS);
                mWindowManagerFuncs.shutdown(false);
                break;
            case LONG_PRESS_POWER_SHUT_OFF:
            case LONG_PRESS_POWER_SHUT_OFF_NO_CONFIRM:
                mPowerKeyHandled = true;
                performHapticFeedback(HapticFeedbackConstants.LONG_PRESS, false,
                        "Power - Long Press - Shut Off");
                sendCloseSystemWindows(SYSTEM_DIALOG_REASON_GLOBAL_ACTIONS);
                mWindowManagerFuncs.shutdown(behavior == LONG_PRESS_POWER_SHUT_OFF);
                break;
            case LONG_PRESS_POWER_GO_TO_VOICE_ASSIST:
                mPowerKeyHandled = true;
                performHapticFeedback(HapticFeedbackConstants.LONG_PRESS, false,
                        "Power - Long Press - Go To Voice Assist");
                // Some devices allow the voice assistant intent during setup (and use that intent
                // to launch something else, like Settings). So we explicitly allow that via the
                // config_allowStartActivityForLongPressOnPowerInSetup resource in config.xml.
                launchVoiceAssist(mAllowStartActivityForLongPressOnPowerDuringSetup);
                break;
            case LONG_PRESS_POWER_ASSISTANT:
                mPowerKeyHandled = true;
                performHapticFeedback(HapticFeedbackConstants.LONG_PRESS, false,
                        "Power - Long Press - Go To Assistant");
                final int powerKeyDeviceId = Integer.MIN_VALUE;
                launchAssistAction(null, powerKeyDeviceId);
                break;
        }
    }

重新编译烧录,满足需求。至此修改完成。

标签:关机,POWER,Android10,LONG,eic,ret,PRESS,SC200L
From: https://www.cnblogs.com/hztd/p/16734660.html

相关文章

  • windows自动关机脚本.vbs
    Dimmytime,myout1,myout2mytime=2'mytime=InputBox("请输入定时时间(格式20:10:05)"&vbLf&"如果想倒计时关机,请输入倒计时时间"&vbLf&"(单位/分钟)"&vbLf......
  • linux用户管理,关机重启
    1.关机重启shoutdown-hnow立即关机shudown-h1一分钟后关机shudown-rnow重启halt关机reboot重启sync把内存的数据同步到磁盘注意:关机和重启首先要......
  • 新中新集团金龙卡系统非正常关机修复复盘
    问题2022年9月13日断电,系统无法正常进入,数据需保留的情况下恢复系统。资料参考:此图片来源百度文档时间差过长,资料较少,可能是版本不同,文件后缀以及数量也不完全一致。......
  • 【Linux】正确的关机方法
    【Linux】正确的关机方法-NW_KNIFE-博客园 https://www.cnblogs.com/ningvsban/p/3663337.html1)shutdown命令我们较常使用的是shutdown这个命令,这个命令可以安......
  • linux 关机命令总结
    linux关机命令总结-wanggd_blog-博客园 https://www.cnblogs.com/wanggd/archive/2013/07/08/3177398.htmllinux下常用的关机命令有:shutdown、halt、poweroff、ini......
  • task host window阻止关机
      在该方法中遇到的问题:我的电脑是惠普暗影精灵5air,64位的,按照该操作没有效果。这一步中新建的dword默认是32位的,改成新建qword就没有问题了,个人猜测是由于位数不合适......
  • 基于服务器资源监控程序增加一键关机
    增加一键关机按钮#一键关机self.Shutdown_btn=wx.Button(self.panel1,-1,"一键关机",pos=(950,20),size=(70,70))#前景格式......
  • Synology主机关机后开机无法启动
    这个情况一般只发生在机架式存储的个例上,主机加扩展柜  另外主机上还插的很多加密狗 NAS主机不仅仅拖着100T的存储空间 还有3台虚拟机,虚拟机中还需要USB加密狗 ......
  • 运维脚本---windows10家庭版不能使用组策略的问题----以及关机提示task hosts windows
    1、建立1111.bat脚本@echooff@echo"这个批处理文件将在Windows10家庭版上启用组策略编辑器."pushd"%~dp0"。。dir/b%SystemRoot%\servicing\Packages\Micros......
  • 关机一段时间后k8s无法启动
    目录重装前清除环境方法:重装后pod-coredns一直处于ContainerCreating状态:重启之后k8s集群居然起不起来了解决方法:重装重装前清除环境方法:kubeadmresetsystemctlsto......