您当前的位置:首页 > 计算机 > 硬件解码

惠普电脑修改开机动画(非第三方引导)

时间:08-28来源:作者:点击数:
CDSY,CDSY.XYZ

【本软件只支持惠普新电脑,其他品牌不支持】多新的电脑算新呢,,,我也不知道

前言:

此篇文章用【HackBGRT】修改win11开机动画 https://www.cdsy.xyz/computer/system/Windows/230828/cd45761.html

我理解的这个软件原理是新建一个UEFI 去代替原有引导,但是开机首屏还是会出现品牌方的logo ,感觉还是差点意思,就找到惠普的一个bios脚本软件,可以修改bios的启动画面

正文:

软件:HP Client Management Script Library, 官方说明书:https://developers.hp.com/hp-client-management/doc/Set-HPFirmwareBootLogo

对比HckBGRT(各有各的好,看自己选择):

1、hp cmsl 只支持惠普电脑,bgrt支持大部分uefi启动的电脑

2、hp cmsl 支持脚本静默操作,bgrt需要手动操作选择

3、hp cmsl 直接修改bios logo,bgrt修改启动引导 开机会先加载bios logo

补充:hp cmsl开机加载bios logo,然后会显示引导,也就是黑屏 只有转圈圈 ,bgrt 先加载bios logo 然后显示自定义的引导图片。 所以两个结合一起效果更好。

语法(需要使用powershell管理员运行):Set-HPFirmwareBootLogo [-file] <String> [[-password] <String>] [<CommonParameters>]

图片要求:1、必须jpeg格式;2、分辨率不得高于 1024x768;3、文件小于32k

示例:1、Set-HPFirmwareBootLogo -file c:\users\logo.jpg(无bios密码)

2、Set-HPFirmwareBootLogo -file c:\users\logo.jpg -password 123123 (设置了bios密码)

cmd运行的话 在前面加上 powershell -Command调用powershell来运行(同样要管理员运行)

深层次应用:

公司很多都是惠普的电脑,正好想把电脑开机动画换成公司logo,就用python做了个脚本一键安装。下面提供源码大家一起讨论。

思路:

1、wmi 识别当前电脑供应商是不是HP,是HP就执行,不是就提示非惠普电脑并结束。

2、静默安装cmsl软件

3、使用system调用powershell命令设置

4、静默卸载cmsl软件

5、upx压缩打包成单文件,含安装包、logo

(软件安装包、logo图片是打包成单文件的,方法在代码文件里面)

注释也是后来才写的,代码还可以再优化一下,也懒得搞了,多一两句影响不大

顺便问下,戴尔、联想电脑 有哪位大佬知道怎么修改bios动画吗? 不要修改bios固件的,那样得针对型号,还要更新BIOS, 就想要想惠普这个一样,通用性的 ,这样就可以做成电脑判断 直接一个安装包搞定了。。。

# -*- coding: utf-8 -*-
import os , sys
 
import wmi
 
w = wmi.WMI()
obj = w.Win32_ComputerSystem()[0]
 
print(obj.model)
print(obj.Manufacturer)
 
def resource_path(relative_path):
    if getattr(sys, 'frozen', False):
        base_path = sys._MEIPASS
    else:
        base_path = os.path.abspath(".")
    return os.path.join(base_path, relative_path)
#filepath = resource_path(os.path.join("鸡蛋饼", "文件.bat"))
#wpsplus = '"'+resource_path(os.path.join("鸡蛋饼", "WPS 专业增强版 WPS+_11.1.0.11636_WPSPlus.exe"))+'" /S -agreelicense'
 
cmsl = resource_path(os.path.join("jdb","hp-cmsl-1.6.10.exe"))+" /SILENT"  #软件+静默参数
logo = resource_path(os.path.join("jdb","logo.jpg"))  # 图片
#ps1 = r"powershell -ExecutionPolicy Bypass -File " + resource_path(os.path.join("jdb","logo.ps1"))
x64 = os.path.isfile(r"C:\Program Files\WindowsPowerShell\HP.CMSL.UninstallerData\unins000.exe") #用来判断cmsl软件是否已经安装,其实多此一举
zzs = obj.Manufacturer#电脑制造商
 
'''
1、先生成spec文件,
    pyi-makespec -F -i 图标.ico --uac-admin  文件名.py      -i 图标可以不要
2、spec文件修改第11行数据,jdb是我放软件安装包和logo图片的文件夹,可以修改自己的,但是代码里面的也要跟着修改
    datas=[('jdb','jdb')],
3、pyinstaller xxx.spec  
 
'''
 
 
def ggg():
    print('gggg')
    os.system('powershell -Command set-executionpolicy Unrestricted')  # 修改执行策略是因为一开始我用的是ps1脚本,所以要打开,但是现在用cmd调用了,按理说也可以不用开,懒得测试了
    # Restricted: 脚本不能运行(默认设置)
    # RemoteSigned: 在本地创建的脚本可以运行,网上下载的脚本无法运行(拥有数字证书签名例外)
    # AllSigned: 仅当脚本由受信任的发布者签名时才能运行
    # Unrestricted: 允许所有脚本运行'''
 
    print('^^^^^^^  set nul     1号\n')  # 打印后不报错直接 打印下一个就是bios没密码,反。。。
    os.system('powershell -Command Set-HPFirmwareBootLogo -file c:\\users\\logo.jpg')  # 无密码设置
 
    print('^^^^^^^  set zhh     2号\n')  # 打印后不报错直接 打印下一个就是bios密码对了,反。。。
    os.system('powershell -Command Set-HPFirmwareBootLogo -file c:\\users\\logo.jpg -password mm@bios')  # 尝试密码1
 
    print('^^^^^^^  set shu     3号\n')  # 打印后不报错 就是bios密码对了,反。。。
    os.system('powershell -Command Set-HPFirmwareBootLogo -file c:\\users\\logo.jpg -password MM@bios%')  # 尝试密码2
    #因为公司电脑有的设置了bios密码,有的没有  所以要都试一下 ,  成功了是不会报错的
 
 
    os.system(r'start "" "C:\Program Files\WindowsPowerShell\HP.CMSL.UninstallerData\unins000.exe" /SILENT')  # 卸载
    os.system('powershell -Command set-executionpolicy Restricted')  # power shell 执行策略恢复默认不能运行脚本
    print('\n\n')
    print(' 两个红色报错就成功,三个就失败。。。。。。。     (自动退出中……)')
    os.system('ping 127.0.0.1 >nul')
    sys.exit()
if zzs == "HP":
    os.system('copy /Y "' + logo + '" c:\\users')#一开始懒得测试删了图片还有没有效, 就复制到这里了,   懒得改了   ,
    if x64 == True:
        #True 真。  存在
        print(True)
        #os.system(ps1)
        ggg()
    else:
        print(False)
        print('\n\n            loading ^^^^^^^\n')
        os.system(cmsl)#安装软件
        ggg()
else:
    print('\n\n制造商',zzs,'\n\n           仅限HP电脑  \n\n\n')
    #os.system('pause')
    print(' 即将退出')
    os.system('ping 127.0.0.1 >nul')#目的是等待几秒后再退出,不用time是减少体积
    sys.exit()
CDSY,CDSY.XYZ
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门