yanhy的学习记录匣 - 教程
https://yanhy.top/index.php/tag/%E6%95%99%E7%A8%8B/
-
海信HiSense A2Pro 刷国际版系统 刷入面具root
https://yanhy.top/index.php/archives/437/
2025-03-30T17:12:00+08:00
前段时间折腾墨水屏,最后发现还不如直接买个成品当阅读器来的快,于是在小黄鱼发现了这个玩意...整机参数系统:Vision 5安卓版本:Android 7.1.2存储配置:LPDDR3 4+64GB屏幕:5.5英寸(AMOLED 1920x1080) + 5.2英寸(墨水屏 960x540)电池:约3000mahCPU:高通骁龙625特性:支持侧边指纹、NFC、红外、双频WIFI、3G/4G移动网络工具资源通过网盘分享的文件:海信A2Pro链接: https://pan.baidu.com/s/1mqOTiOcziVDVPRBFGtoIiA?pwd=afuu 提取码: afuu --来自百度网盘超级会员v5的分享工具资源列表:[原始]boot.img[修补]magisk_patched-28100_psVzP.img[刷机软件]QPST.2.7.438.zip[国际版]LA8627E1-Hisense-A2T-A2M_GMS_L1413.6.07.04.GMS_MultiDownload_201804102357_user.zip[Fastboot解锁工具]windows-x86.zip[ADB原版工具]platform-tools-latest-windows.zip[9008驱动]Win10_Qualcomm.rarMagisk-v28.1.apk其他工具(见文章末尾):国行卡刷包提取软件[解包Bin2Img工具]sdat2img-master[提取system.img工具]ext2explore-2.2.71简单介绍:教程均在Windows系统上运行,理论支持win7\8\10\11刷机包为全量国际版刷机包,这个版本内没有人脸解锁,但包含谷歌全家桶。[Fastboot解锁工具]windows-x86.zip 这个工具来自hisense-a9/unlockbootloader,经过测试,发现A2Pro(A2T)也可以解锁,无需联网验证、登陆账号等任何操作,只需要一条指令即可。Magisk-v28.1.apk软件来自GitHub项目Magisk。[原始]boot.img 和 [修补]magisk_patched-28100_psVzP.img 为原版国际版包中的boot和面具修补过的boot,面具版本为 Magisk-v28.1.apk,解锁后可直接刷入修改后的boot以获取root,或者自行修补boot。[刷机软件]QPST.2.7.438.zip 建议使用文章提供的版本,由于网上教程和刷机包都是很多年前的,我自己没试过新版能不能刷入,因此建议和文章的版本一样。刷机与解锁我自己的尝试是先刷入国际版系统,然后解锁BootLoader,最后刷入修补后的boot以实现root,因此该教程按我自己尝试路线进行。刷机包提供的是国际版固件全量刷机包,如想刷其他国行固件,解锁等教程理论上都适用。国际版系统我认为的几个好处:广告少,预置乱七八糟软件少,安装器很精简没有杀毒等,低耗电等。一. 刷机1. 环境部署安装软件 [刷机软件]QPST.2.7.438.zip解压刷机包 [国际版]LA8627E1-Hisense-A2T-A2M_GMS_L1413.6.07.04.GMS_MultiDownload_201804102357_user.zip 到 A2T 文件夹安装驱动 [9008驱动]Win10_Qualcomm.rar解压工具 [ADB原版工具]platform-tools-latest-windows.zip 和 [Fastboot解锁工具]windows-x86.zip2. 连接手机注意:如果手机A2P是二手购买且恢复过出厂设置的,务必在恢复出厂设置后插入一次正常的SIM卡以激活USB(不消耗流量,可以不开数据流量),海信A2Pro手机有USB防护,必须插入一次SIM激活才能连接电脑传数据,否则只支持充电,无法用数据传输、安装驱动、USB调试等功能。将手机USB连接到电脑(确保USB线材是可以传输数据的,而非仅充电线)选择连接方式:安装光盘 ,此时电脑出现新的盘,打开后安装驱动(可选是否重启,如后面无法识别手机可以重启)开启开发者选项,开启USB调试打开手机拨号,输入 *1973461# ,会跳出一个系统信息(界面),点击调试设置,勾选自动加载USB设备。3.配置刷机重新插入手机,选择仅充电,下面确保打开USB调试开关打开解压后[ADB原版工具]platform-tools-latest-windows 文件夹,在上方地址栏输入cmd并回车在cmd窗口内输入指令确保已经识别到设备 以重启手机到刷机模式(BootLoader Mode)adb devices如果显示未信任并且手机有弹窗选择是否信任计算机,需勾选信任并确认,然后再次执行指令和上图差不多在cmd窗口内输入指令以重启手机到9008刷机模式(EDL Mode)adb reboot edl打开软件QFIL(一般安装QPST后会在开始菜单内出现图标,或者在开始菜单-QPST文件夹内)选择端口,打开软件后一般会自动识别到9008端口,如果未显示可手动点击按钮 SelectPort 来选择端口。在第一栏 Select Build Type 中选择 Flat Build在第二栏 Select Programmer 点击按钮 Browse ,选择前面解压刷机包文件夹内的prog_emmc_firehose_8953_ddr_000460e1.mbn在第四栏 Download 点击按钮 LoadXML ,第一次弹窗选择刷机包文件夹内的rawprogram_000460e1.xml,第二次弹窗选择patch0.xml注意:在选择配置完成后,拔掉手机的SIM卡与TF卡,断开电脑的互联网连接(如拔掉网线、从路由器那边禁用设备外网等)点击蓝色的Download按钮,即可开始下载固件。几分钟后下载完成后显示success字样,并确保进度条走满后断开usb,手动长按电源键重启。(按理来说会自动重启,但是刷机时未能重启)重启后进入国际版系统,可自行选择删除预置软件。二. 解锁与Root在开机状态下,打开开发者选项,勾选USB调试,勾选OEM解锁如果想自己根据刷机包的boot来修补以root可以看下面这段,如果用文章内修补后的boot可跳过这段直接到刷入部分1. 修补boot连接手机USB到电脑,选择文件传输,将 Magisk-v28.1.apk 和 [原始]boot.img(或刷机包内的boot.img)复制到手机内,在手机文件管理内安装面具打开面具,点击Magisk一栏的安装按钮,点击下一步,方式栏点击 选择并修补一个文件 ,使用文件管理器选择boot.img文件,开始修补修补后的文件会在Downloads文件夹内,使用数据线传到电脑上2.解锁BootLoader打开解压后[ADB原版工具]platform-tools-latest-windows 文件夹,在上方地址栏输入cmd并回车在cmd窗口内输入指令以重启手机到BL模式(BootLoader Mode)(备注:经踩坑测试,发现重启到fastboot会正常开机,只有BootLoader下可以刷机,也就是不存在fastboot)adb reboot bootloader
# 刷机后仍需要插入SIM卡来激活USB,并且需要重新在弹窗勾选信任计算机
# 等待两秒后,输入指令查看手机是否进入了BootLoader模式
fastboot devices
# 如果列表中有设备则为正常打开解压后的文件夹[Fastboot解锁工具]windows-x86 ,进入文件夹\windows-x86\bin,在上方地址栏输入cmd并回车打开在新的cmd窗口输入指令以解锁手机fastboot Hisense unlock出现OKEY字样即为解锁成功,可关闭该cmd窗口。3.刷入修补后的Boot回到之前的CMD窗口,输入指令来刷入修补后的boot镜像fastboot flash boot <敲空格后将boot镜像文件直接拖入>如显示OKEY且没有错误信息,则刷入成功,输入指令重启fastboot reboot4.开机验证开机后,打开Magisk软件,即可看到安装成功的版本信息可正常授权root权限关于该手机其他资料补充连接USB到电脑没反应海信的手机(不确定是不是都这样)在恢复出厂设置后需要 插入一次正常的SIM卡以激活USB (不消耗流量,可以不开数据流量),海信A2Pro手机有USB防护,必须插入一次SIM激活才能连接电脑传数据,否则只支持充电,无法用数据传输、安装驱动、USB调试等功能。不小心卸载一些软件如何找回在内置的应用商店-应用恢复可以安装找回如果为了精简系统禁用了应用商店或者单纯不想使用,可以在拨号盘输入 *#*#20019994#*#* 打开预置应用找回设置刷了国际版没有天气小工具刷机后发现墨水屏的天气一栏和主屏幕的时间与天气小组件,无法获取天气,说是要安装,但是安装总会失败,是因为国际版固件没有天气APP,只有Google提供的新闻与天气。在本文提供的资料文件里面已经从国行版固件提取出天气APP了,Chinaweather.apk,直接安装后即可使用,小组件也可以正常获取天气。提取方法国行更新包目前只有卡刷OTA包,我找到一个相对全的Full包 A2T_L1467.6.07.01.00_full.zip,里面有Boot.img与更新的system.new.dat(或许也可以通过这个包9008刷入后,通过修补boot来实现国行固件root)。因此需要两个工具,[解包Bin2Img工具]sdat2img-master.zip该工具可以将更新文件合并到system.img,使用方法:python sdat2img.py system.transfer.list system.new.dat system.img转换为system.img后,使用工具[提取system.img工具]ext2explore-2.2.71,加载该文件,即可看到内部全部文件。右键文件点击save,可将文件提取到外面。其他有用的记录*#*#4636#*#* ——服务菜单
*1973460# - FTMode
*1973461#或*#*#3647#*#* - 系统信息
*1973462# -操作员测试
*#0000# ——系统信息
*#06# -IMEI参考资料本文参考资料:【百度贴吧-成功刷入国际版固件】- https://tieba.baidu.com/p/7114491108【求系统自带水墨屏可以加应用快捷方式的app软件】 - https://tieba.baidu.com/p/5953013159【Magisk】 - https://github.com/topjohnwu/Magisk/releases/tag/v28.1【hisense-a9/unlockbootloader】 - https://github.com/aimindseye/hisense-a9/blob/main/unlockbootloader.md【海信 A9 卡在 FastBoost 模式】 - https://www.reddit.com/r/eink/comments/1duadr6/hisense_a9_stuck_on_fastboost_mode/【讨论HiSense A2 / HiSense A2Pro / HiSense A2Pro (S9)】 - https://4pda.to/forum/index.php?showtopic=902619
-
[联想MiiX2-11]旧WIN平板折腾记-解锁BIOS
https://yanhy.top/index.php/archives/421/
2024-10-30T17:01:00+08:00
接上文,从社区发帖中发现该平板温度高了后降频严重,同时期同配置其他厂家平板则能稳定性能,因此可能是工程师性能调教问题。从社区发现一篇外网文章,以解锁BIOS高级选项,或许有些帮助。注:本文内容为翻译转载,原贴:https://patrikesn.wordpress.com/2015/01/11/guide-unlocking-the-hidden-bios-pages-on-lenovo-miix-2-11/(中文翻译)[GUIDE] 解锁联想Miix 2 11隐藏的BIOS页面在联想社区论坛上,我的用户名是‘iseon’,我们一直在讨论Miix 2 11的性能问题。似乎这款平板电脑的性能问题源于固件设定的电源限制。我一直试图寻找一种方法来绕过这个电源限制,并认为可能在BIOS设置中。我已经发现了一种解锁BIOS所有高级设置的方法,并进行了一些初步的实验。但遗憾的是,我还没有在解锁的BIOS中找到可以移除电源限制的设置。所以,如果你只是想提高平板电脑的性能,那么这个BIOS解锁并不能保证你能够做到这一点!尽管如此,隐藏的BIOS高级页面包含了一个巨大的设置列表,可能有一些设置对其他用途很有用——那些想要完全控制平板电脑设置的人可能会想要这样做。我强烈建议只有高级用户继续操作——但我已经用初学者友好的方式编写了这份指南,以便任何感兴趣的人都可以跟随。对于你因操作不当导致设备故障,我概不负责。请谨慎操作,我能保证的只是这在我的平板电脑上有效。这个BIOS修改不会使你的保修失效,这里所做的任何更改都可以通过加载默认BIOS设置或移除电池重置BIOS来恢复。我在BIOS版本97CN37WW上测试了这个修改,但它可能也适用于97CN39WW(解压缩的BIOS设置页面看起来是一样的)——如果你想尝试其他版本,由你决定,可能会成功,也可能不会。版本97CN39WW增加了一些额外的UEFI安全措施,这可能会阻止你进行此操作——我没有尝试过。它应该适用于i3和i5版本(我使用的是i5)。在开始之前,这里有一些解锁的BIOS图片(我最近重置了BIOS,所以日期都是错误的):指南开始:为了解锁隐藏的BIOS高级设置,我们需要使用Linux来访问UEFI变量——但Windows用户不用担心,不需要安装Linux,你只需要将可启动的Linux版本放在USB驱动器上并从那里启动。Ubuntu用户友好,可以从USB驱动器启动,并且拥有我们需要的所有工具,所以我们将在这个指南中使用它。从这里下载Ubuntu 14.10 64位桌面版本,大约1GB:Ubuntu下载链接我们将使用Rufus将Ubuntu ISO放到USB驱动器上,下载链接:Rufus下载链接下载完成后,插入一个空的USB驱动器(或者装满无用数据的驱动器),确保它足够大以容纳Ubuntu镜像。启动Rufus并使用它将镜像文件复制到USB驱动器——以下设置对我来说有效:复制完成后,关闭平板电脑,插入你的Ubuntu USB驱动器(如果尚未插入)。按住音量增加按钮和电源按钮几秒钟,直到你看到屏幕亮起,松开按钮,你应该会看到一个启动选项屏幕(可能需要尝试几次才能正确操作)。选择Boot Menu,在下一个屏幕上选择你的USB驱动器以启动Ubuntu。(如果你没有看到USB驱动器或者平板电脑提示Secure boot问题,用同样的方法启动平板电脑并进入BIOS设置,禁用Secure Boot,并确保启用USB启动)。在下一个屏幕上,选择“Try ubuntu without installing”。启动Ubuntu后,你首先要做的是让WiFi工作(因为我们需要下载一些软件),WiFi默认不工作,所以按Win+Tab打开一个新的终端并搜索‘Terminal’。在终端窗口中,输入以下内容:现在你可以点击右上角的WiFi图标,登录到你的WiFi网络。接下来,你需要启用一些软件仓库以能够下载所需的软件。按Win+Tab并输入software,点击出现的第一个图标:启用“community-maintained free and open source software”。关闭窗口,当询问是否更新软件源时,点击“是”。进入现有的终端窗口(或打开一个新的终端窗口),执行‘apt-get update’并安装Ghex应用程序(我们将需要它来编辑一些UEFI BIOS变量),在所有提示中都回答“是”:sudo -i
apt-get update
apt-get install ghex接下来,在终端窗口中输入以下内容(你可以输入部分目录名并按Tab键自动补全,特别是文件名,只需输入‘OilSetup-’并按TAB键,你将得到正确的文件)。ghex /sys/firmware/efi/efivars/OilSetup-88d1911c-ab4a-4335-9e9a-26be9081acc3现在我们已经打开了ghex应用程序,并且直接编辑UEFI BIOS变量(小心操作!)。在这个文件中,每对十六进制数字(在这种情况下包含0和1)代表一个字节的数据,这个文件包含UEFI BIOS设置数据,字节值为1表示启用,值为0表示禁用。这个文件中的一个字节值为‘1’隐藏了一个包含BIOS高级设置的页面。我们只需将这个‘1’翻转为‘0’,就能看到隐藏的页面。我已经使用UEFI BIOS IFR提取器来找到这个设置字节在这个文件中的位置。所以你只需要像下面所示将‘1’设置为‘0’。用指针点击值并输入0。请非常小心,确保你只按照下面所示进行编辑:现在执行文件->保存并关闭应用程序,你就完成了BIOS的编辑!恭喜!关闭计算机,拔掉USB驱动器,再次按住电源+音量上键启动计算机,进入BIOS,你将在BIOS启动屏幕上找到两个新的红色页面!太棒了!高级页面包含许多与电源、热管理、芯片组功能等相关的设置。主页面包含一些常规设置,类似于默认存在的主页面。在更改高级设置时要非常小心,特别是处理器电源屏幕上的自定义TDP设置——我发现这个特定设置会使平板电脑无法启动(到目前为止我更改的其他设置没有使平板电脑无法启动)。如果你更改了某些设置并且平板电脑无法启动,你需要打开后盖并将电池从主板上拔下(小圆形电池和主电池都要拔下),这将重置BIOS,你可能需要使用Windows救援USB驱动器来使你的Windows安装再次可启动。如果你打算进行实验,请提前制作Windows/Linux恢复USB。如果你已经解锁了BIOS并尝试了设置,请发表评论分享你的发现!转载结束
-
[联想MiiX2-11]旧WIN平板折腾记-初步了解
https://yanhy.top/index.php/archives/416/
2024-10-30T16:38:00+08:00
去年同事送了我一个平板,联想MiiX2-11触控平板笔记本。当初玩了一下,性能很低,出厂默认win8.1。由于屏幕边角老化和电池鼓包,当平板可玩性也不大就一直在吃灰。前段时间收拾东西再次发现这玩意,查了一下配置还行,试试看能不能做个小服务器~机型图片图片来自网络配置介绍发售于2014年,机身11.6寸屏幕,带有配套键盘;机身上有一个USB接口,可传数据或者充电(没错这玩意充电接口是usb)。通过接上键盘后可以拓展两个usb,键盘左右侧各一个usb2.0接口,不能充电。续航这一块暂且不看,电池已经鼓包,后续要拆卸下来的。屏幕后续也不需要了,计划用上面的MicroHDMI接口进行调试,其余使用远程控制。机身有扬声器麦克风,和前后摄像头。不过也就是能用的程度。板载网卡仅支持2.4Ghz频段。我这台是i5的配置,市面上也有四代i3的配置。i5这款理论主频1.6Ghz,最高2.0Ghz。核显为Intel HD 4200,显存128MB,理论可以看H264解码4k视频,不支持h265等新编解码技术。内存为ddr3 4GB,不可拆卸。硬盘内置128GB SATA,据社区分享是MSATA,或许可以自行更换扩容。来自百度:
1、支持windows 8.1操作系统,办公娱乐无障碍;2、超强的双核
3、全高清ISP屏;4、WIFI网络无极限,更有3G版本
5、超长8小时待机;6、轻薄的机身
7、多功能键盘底座;8、拥有前后设想图
9、Intel Hasewell 双核处理器系统与驱动我这台已经刷入了tiny10,系统镜像链接:https://archive.org/details/tiny-10_202301刷入后仍需打一堆驱动,所幸官方驱动入口还没有关闭,官网服务入口:https://newsupport.lenovo.com.cn/products_index.html?fromsource=products_index&selname=IdeaPad%20MIIX2-11以防万一官网下架,导致老设备没得折腾,备份了一手(仅备份了官方win10的驱动)主:https://www.123865.com/s/Dpq0Vv-8ueHd?提取码:Lj2E备:https://www.123684.com/s/Dpq0Vv-8ueHd?提取码:Lj2E折腾方向1、挂机宝 功耗仅10w左右的挂机宝,办公性能还可以2、win服务器 系统支持虚拟化,可以用wsl、docker等挂一些简单的服务3、linux服务器 实测刷入ubuntu后,wifi等外设可以免驱驱动,但亮度、电池等仍无法识别,不过也方便折腾了4、小型nas 虽然只有一个硬盘位,但可以作为一个小型文件站,低功耗也挺不错的本文先到这里,简单介绍了这个板子。后续会有更多折腾,比如解除BIOS高级菜单等。这块板子社区普遍反应温度高了降频严重,因此计划拆出来主板,设计个简单外壳并加上风扇,尝试让其稳定运行服务。
-
推荐一个Windows激活工具 HEU-KMS
https://yanhy.top/index.php/archives/381/
2024-06-27T18:33:00+08:00
写个文章做个记录,便于以后查找,顺便也推荐下这个稳定的软件~软件界面截图版本:42.0.4可能听名字有人有点耳熟,但是对这个软件本体很陌生,那么切换一种UI,就眼熟很多了在软件右上角 三条横 的设置中,选择“经典界面”,即可打开眼熟了吗?没错,作者至今一直在更新,更新在微信公众号和Github上如何还原到新版本界面:删除同目录下的Set.ini,再重新打开软件即可恢复下载链接Github: https://github.com/zbezj/HEU_KMS_Activator/releases/公众号:《更新:HEU KMS Activator v42.0.4》附图:公众号获取方式简单的使用说明激活Windows系统与Office套件打开软件后,什么都不需要做(记得同意使用协议),点 开始 按钮即可开始自动激活。如检测到电脑上没安装Office则会自动跳过。点击按钮后,软件下方会出现进度条,静静等待即可(个人经验约1-5分钟,可不联网)。激活完成后,会弹窗结果。演示机未安装Office因此显示只有Windows激活结果。可重复激活,不担心掉激活或者覆盖等。验证激活结果Windows:打开系统设置 - 更新与安全 - 激活,即可看到激活结果。演示机使用精简的win10系统,因此激活部分有bug可忽略。Office:随便打开个软件如word,点左上角文件 - 左下角账户,可以看到右侧产品已激活且显示激活的版本到此,简单的激活方法就结束了,软件可以继续收藏吃灰或者直接删除~部分问题的处理KMS激活续期:在一些特殊条件下,会触发KMS激活方式。KMS的激活有180天的期限,因此要在一开始激活时勾选KMS自动续期。如激活完成后才发现是KMS激活,可以勾选后进行第二次激活。部分杀毒软件在KMS自动续期补丁安装时报毒,可以手动加白名单或者信任列表即可。Office的盗版Banner警告:有时候在部分版本的Office软件内,打开时会在上方弹出一个Banner显示类似于“你可能是盗版的受害者”。此时可以打开HEU-KMS软件,然后选择最后一栏。在Office R2V/管理工具部分,选择Office版本,下方选择Fix_banner项,然后点击开始,等待修复完毕即可。更换Windows版本:有时候安装时手快点成了家庭版,但是家庭版阉割了很多东西(如Hyper-v、组策略管理器等),可以用HEU-KMS来转换Windows版本。打开软件,选择“其他”栏,选择左上角的“更改Windows10/11版本”。在下拉框中,选择你想修改的版本。通常比较受欢迎的是ProfessonalWorkstation(专业工作站)版本,此处的演示机系统也是专业工作站版本(人均工作站(bushi))。选择完成后,点击右侧花瓣图表,点击确定按钮开始转换。为方便演示,这里选择专业版来转换。转换成功后,会有弹窗提醒并要求重启计算机,一些改动也即将发生。如果此时打开设置查看系统版本,会发现已经转换成功,但尚未激活。重启后重新进行激活即可完成。(点击确定按钮并不会强制重启,可以保存好文件后手动点击重启)其他玩法还有很多,如至今半死不活的数字激活(一些曾经数字激活的电脑上还留着TPM信息,重装后仍然可以数字激活)、KMS激活(手动强制使用KMS激活)、OEM激活(模拟品牌电脑的操作)等,还能自建激活服务器,可以自行研究研究,对我来说这玩意就是在u盘里面吃灰,装完系统后第一个走过场然后继续吃灰的实用小工具来自作者的免责声明本文到此结束,希望这篇文章有帮到你~
-
windows下使用certbot续订/申请SSL域名证书
https://yanhy.top/index.php/archives/358/
2024-06-19T15:40:00+08:00
有好一段时间没更新博客了,自从运营的MC服务器社区解散后,空余时间多起来了,可以去研究一些新的玩意了~certbot Windows版本 Github下载链接脚本内容本文简单分享一下在windows系统下,使用certbot程序续订/申请SSL证书,为此我简单写了个Bat脚本可供使用。07/10 更新:在系统用户非管理员情况下需要脚本提权才能运行,因此修改脚本使其可以打开后提权@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"
echo 请确保安装了Certbot,如未安装可以前往下载 https://github.com/certbot/certbot/releases/download/v2.9.0/certbot-beta-installer-win_amd64_signed.exe
echo 脚本作者by.yanhy2000
echo 申请证书需要准备一个邮箱,邮箱第一次申请会自动注册,只需要两次输入"y"并回车即可
echo 验证证书需要手动添加修改DNS的TXT记录
set /p email="请输入您的邮箱地址: "
set /p domain="请输入您的域名: "
certbot certonly -m %email% -d "%domain%" -d %domain% --manual --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory
if %errorlevel% neq 0 (
echo 证书申请过程中发生错误。
pause
exit /b %errorlevel%
)
echo 证书申请成功。
pause其中,执行certbot程序的指令简单分析一下certonly 安装模式
-m 申请证书所需的邮箱
-d 申请证书的域名
--manual 使用交互式或脚本钩子的方式获取证书
--preferred-challenges dns 使用 DNS 方式校验域名所有权
--server Let's Encrypt指定的V2版本接口因此,只需要传入邮箱和域名,即可开始申请证书。使用方法填入邮箱和所申请的域名如果邮箱第一次申请,会提示注册等,可以直接输入y回车(可能有两次)随后会提示这样(域名和记录值为虚拟)- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please deploy a DNS TXT record under the name:
_acme-challenge.www.test.com.
with the following value:
aaaaaaaaaaaaaaaa
Before continuing, verify the TXT record has been deployed. Depending on the DNS
provider, this may take some time, from a few seconds to multiple minutes. You can
check if it has finished deploying with aid of online tools, such as the Google
Admin Toolbox: https://toolbox.googleapps.com/apps/dig/#TXT/_acme-challenge.oooyn.top.
Look for one or more bolded line(s) below the line ';ANSWER'. It should show the
value(s) you've just added.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue此时不要按回车,前往域名注册站(如阿里云域名、腾讯云的DNSPod等),为目标域名添加一条记录:主机记录为“_acme-challenge.www.test.com.”去掉其中的主域名,也就是“_acme-challenge.www”记录类型为TXT记录值为上文中“aaaaaaaaaaaaaaaa”的内容添加完成后,等待几分钟(最快几十秒也可能,dns解析和缓存需要时间),然后在命令行敲下回车键,等待验证。如果不确定有没有解析好的话,可以先清理一下本地的DNS缓存,然后手动本地验证一下是否解析成功,再去回车。否则失败后需要重新解析DNS。本地清理DNS缓存方法:win+r,输入CMD回车,输入ipcondif /flushdns回车本地测试TXT解析方法: win+r,输入指令回车nslookup -qt=txt _acme-challenge.test.com服务器: DNS1.aaaaaa.net
Address: 1.2.3.4
非权威应答:
_acme-challenge.text.com text =
"aaaaaaaaaaaaaaaaaaaaaaaa"回车后待显示以下内容即为成功,证书文件在 C:\Certbot\live 目录内,取出可部署需要的地方。Successfully received certificate.
Certificate is saved at: C:\Certbot\live\example.top\fullchain.pem
Key is saved at: C:\Certbot\live\example.top\privkey.pem
This certificate expires on 2023-08-05.
These files will be updated when the certificate renews.
NEXT STEPS:
- This certificate will not be renewed automatically. Autorenewal of --manual certificates requires the use of an authentication hook script (--manual-auth-hook) but one was not provided. To renew this certificate, repeat this same certbot command before the certificate's expiry date.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
* Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
* Donating to EFF: https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -查错问题一Certbot failed to authenticate some domains (authenticator: manual). The Certificate Authority reported these problems:
Domain: www.test.com
Type: dns
Detail: DNS problem: looking up TXT for _acme-challenge.www.test.com: DNSSEC: DNSKEY Missing
Hint: The Certificate Authority failed to verify the manually created DNS TXT records. Ensure that you created these in the correct location, or try waiting longer for DNS propagation on the next attempt.
Some challenges have failed.
Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile C:\Certbot\log\letsencrypt.log or re-run Certbot with -v for more details.
证书申请过程中发生错误。
请按任意键继续. . .dns尚未解析好,需要多等一会。如果等很久还是失败,可以试试看清理本地的DNS缓存问题二Saving debug log to C:\Certbot\log\letsencrypt.log
An unexpected error occurred:
requests.exceptions.SSLError: HTTPSConnectionPool(host='acme-v02.api.letsencrypt.org', port=443): Max retries exceeded with url: /directory (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1129)')))
Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile C:\Certbot\log\letsencrypt.log or re-run Certbot with -v for more details.
证书申请过程中发生错误。
请按任意键继续. . .电脑网络通讯问题,检查是否开启了代理,关闭代理即可
-
随身wifi折腾入门(番外)-- openwrt优化使用
https://yanhy.top/index.php/archives/338/
2023-04-19T18:18:00+08:00
本篇与debian同,随缘更新,记录实用操作使用环境使用esim卡使用@苏苏小亮亮的openwrt 2022-06-05 包棒子板号:001B 512MB+4GB使用电脑usb连接,wifi作为调试刷入系统系统发布页面:https://www.kancloud.cn/a813630449/ufi_car/2792820刷入方式可见棒子第三章,进入fastboot后,执行压缩包内的fastboot.bat,多次回车刷入即可成功如果进不去fastboot,可在9008模式格式化boot分区,再次上电自动进入fastboot优化使用由于openwrt的无线驱动尚未解决,因此连接热点网速会很慢,目前没有好的解决方法,因此本文主要满足通过usb供网,并分享ipv6地址,热点仅作为管理端。更换modem使用sftp连接openwrt,然后将之前系统备份的 NON-HLOS.bin 文件解压或者通过镜像软件打开,将里面全部文件提取出来,再上传到 /root 目录中(可直接通过ssh远程软件自带的文件管理器上传,原理相同)上传完成后,执行指令,将文件移动到 /lib/firmware 内mv ./IMAGE/* /lib/firmware/切换esim卡正常来说,这个版本的openwrt是可以直接读取外卡槽的,如果想使用esim卡,则需要手动切换。因为有些软件包和debian系统不一样,但原理相差不多,所以修改部分指令并直接扔到 rc.local 内依旧是可以使用的。打开网页管理,进入 系统-启动项-本地启动脚本 ,加入一行在原有的指令之前:echo 255 > /sys/class/leds/sim\:sel/brightness重启系统,在ssh输入 mmcli -m 0 即可查看esim连接状态,此时会显示disable再执行指令:mmcli -m 0 -e即可启用sim卡此时openwrt即可使用sim卡上网,重启之后仍然正常联网
增加虚拟内存棒子本身内存只有0.5GB,且openwrt很多服务会运行比debian多且频繁,通过虚拟内存可以增加一定的稳定性。这里由于棒子存储只有4GB,装完openwrt后仅剩余2.7GB,且重点不在于跑docker等服务,因此创建800MB的虚拟内存即可够用。在 ssh 控制台输入指令创建个分区文件:dd if=/dev/zero of=/usr/swap bs=1M count=800输入指令查看创建的分区大小是否为800MB:du -sh /usr/swap将分区文件设置为swap分区文件,并启用分区:mkswap /usr/swap
swapon /usr/swap设置开机自动挂载swap分区,一键指令(如果已经添加了挂载其他分区请勿使用该指令,会覆盖全部内容):echo /usr/swap swap swap defaults 0 0 > /etc/fstab也可以手动在文件 vi /etc/fstab 最后一行添加: /usr/swap swap swap defaults 0 0在openwrt网页端 系统-启动项-本地启动脚本,最后一行添加:swapon /usr/swap保存并执行重启后,输入 free -m 指令即可看到swap分区添加成功。如果磁盘不够用等原因想卸载swap分区,可执行指令:swapoff /usr/swap
rm /usr/swap在 /etc/fstab 内删除前面添加的那一行内容,并删除openwrt网页端 系统-启动项-本地启动脚本 内的前面添加的指令,即可完成卸载swap。目前先到这里,剩下的随缘更新...资料参考开启swap分区 debian优化使用
-
小米5刷入MIUI出现“查找手机存储损坏”
https://yanhy.top/index.php/archives/337/
2023-04-19T15:43:00+08:00
如果刷入其他系统如Los后再刷回MIUI,有概率出现“查找手机存储损坏”导致无法开启查找手机,更严重者出现“检查设备安全信息出错”而无法登陆小米账号,从而被迫变成账号锁黑机。网上查找了一下,最后通过9008线刷方式解决下载线刷包个人推荐一个很好的小米ROM网站,提供全部线刷包、卡刷包及国行、全球包地址:https://xiaomirom.com/解压修改线刷包
参考文章:https://www.hu60.cn/q.php/bbs.topic.98330.html?showBot=1使用Bandizip或者其他压缩软件进行解压,需要解压两层,最后得到以下文件夹:如需要解决“查找手机存储损坏”等问题,需要进入 images 文件夹,打开 rawprogram0.xml 文件,搜索 persist ,在同一行左侧的 filename="" 修改为 filename="persist.img" ,保存下载MiFlash工具还是在XiaomiRom网站下载,米5的话推荐下载2018版本,注意不要勾选全部删除并lock,这样会导致手机BL锁重新锁定地址:https://xiaomirom.com/download-xiaomi-flash-tool-miflash/下载完打开软件,选择路径 刷机包解压路径/images ,提示未找到脚本确定即可,9008刷机不需要线刷脚本手机进入9008模式社区内有很多方法能进,如果手机有解锁bl的话,可以用 fastboot oem edl 进入9008,否则需要拆机短接(工程线未尝试过,由于自己的米5经常拆机,所以一分钟就可以解决,没去魔改线材)先插上手机端的typec防止不方便用力插入;电脑端usb拔出;镊子等短接右侧触点(此时需要关机,原贴说拔电池,其实不需要);短接保持,插入电脑端usb,听到设备接入声音即可松开短接;查看设备管理器是否有9008端口设备,如果有即可开始刷机;图片来自贴吧:https://tieba.baidu.com/p/5077676617刷机在miflash内点击加载设备,选中设备,点击刷机即可开始,需要等待3分钟左右也可能更快刷机结束后会显示finish,此时断开usb,手机先不急装后盖,长按电源键开机(可能需要10秒,因为要长按重启退出9008),等待3到5分钟开机进系统后,如果不提示“查找存储损坏”之类的即可正常联网登陆使用退出小米云账号(可选)在查看了不少地方的经验,看到有人说可以在小米云退出查找设备,再次联网即可重新登录账号。不确定是否有用,在开机之前我先退出了小米云查找设备,然后再开机,一切正常,重新登录账号即可使用来源:https://web.vip.miui.com/page/info/mio/mio/detail?postId=3862195 评论区
-
随身wifi折腾入门(番外)-- debian优化使用
https://yanhy.top/index.php/archives/336/
2023-04-18T12:33:00+08:00
注意:ipv6部分未完篇,但方法可行,如有建议可评论区留言,后面随缘更新...
本来这篇文章是为了ipv6热点而写的教程,后面发现方法很多但是争议也多,因此干脆作为日常使用及优化的记录篇,在本篇可以看到使用sim卡、切卡、网桥、led控制、更改usb模式等多个玩法,可按需学习使用...环境与工具本文使用 酷安@jsbsbxjxh66 大佬的ufi001b-debian超频版1.2Ghz Debian进行修改使用esim卡环境(如使用实体卡可跳过切esim卡步骤)使用电脑进行连接(需打开cmd进行adb操作,以及ssh工具)制作网桥本节修改内容:网关:192.168.2.1选卡:esim网桥:br0新建网桥br0先使用 adb shell 删除全部的连接,如 nmcli c del wifi usb使用ssh或者adb shell连接后,使用指令新建个网桥,并新建两个从机,为usb与wifi,执行指令:nmcli c add type bridge ifname br0 con-name br0 ipv4.method manual ipv4.addresses 192.168.2.1/24 ipv4.gateway '' ipv4.dns '223.5.5.5'
nmcli c add type ethernet ifname usb0 con-name usb-share
nmcli c add type bridge-slave ifname usb-share con-name usb-share master br0修改默认网关修改 /etc/dnsmasq.conf 最后两行listen-address=192.168.2.1
dhcp-range=192.168.2.10,192.168.2.254,12h执行重启 adb reboot ,重启后再次输入 adb shell 进入终端,此时usb是无IPV4分配的,执行指令systemctl enable dnsmasq.service
systemctl start dnsmasq.service再次重启后,即可分配到usb的ipv4,可以通过ssh连接添加wifi网络通过ssh连接debian后,执行 nmtui ,选择 编辑连接 ,选择网桥br0点进去,手动添加一个wifi连接。
常用修正接下来的内容按需采取,ipv6部分存在争议,可自行尝试替换 HT40 驱动(可选)将驱动文件上传到root目录,执行指令覆盖原驱动即可mv wcn36xx.ko /lib/modules/5.15.0-handsomekernel+/kernel/drivers/net/wireless/ath/wcn36xx/替换基带文件使用sftp连接至debian,将之前全分区备份中的 NON-HLOS.bin 文件使用7z打开或者软碟通打开,将里面的IMAGE拖出来,并通过sftp上传到debina root目录执行指令,替换 /lib/firmware 内的驱动文件mv IMAGE/* /lib/firmware/切换esim卡sim:sel 为esim卡的位置,如果要切换到sim卡槽,一般为 sim:sel2 ,可以用指令看一下列表内是否有sim:sel2ls /sys/class/leds/如果没有 sim:sel2 则默认外置卡槽,可按需切换esim输入指令 mmcli -m 0 ,如果显示有内容但显示 sim-missing ,此时则为卡槽模式,可插入自己的卡。切换esim卡可直接修改 /etc/rc.local 文件,使开机自动修改!/bin/sh -e
echo 255 > /sys/class/leds/sim\:sel/brightness
modprobe -r qcom-q6v5-mss
sleep 1
modprobe qcom-q6v5-mss
sleep 1
systemctl restart rmtfs
sleep 1
systemctl restart ModemManager
exit 保存后输入 reboot 重启系统,重启后输入 mmcli -m 0 ,如出现 state: connected 即为连接正常。同时在重启后检查wifi是否以及开启,执行 nmcli 后是否出现modem连接信息,如果出现连接ip等信息即为一切顺利(如下图)。如果前面不顺利,后面设置ipv6转发会出问题。重启sim卡如果出现输入 mmcli -m 0 后,显示卡未连接disconnect或者未发现卡,可以使用sim卡重启大法尝试一下。如果多次出现,可以试试看加入到开机启动脚本中 rc.local(自行添加sleep 1延时)systemctl stop ModemManagerqmicli -d /dev/wwan0qmi0 --uim-sim-power-off=1qmicli -d /dev/wwan0qmi0 --uim-sim-power-on=1systemctl start ModemManager查看emmc芯片寿命棒子debian系统可通过执行指令查看emmc寿命,数值仅参考,也有部分型号查看为0x00的,为芯片未定义,0x01为最佳寿命,同理数值越大寿命越低,该值仅供参考cat /sys/class/mmc_host/mmc0/mmc0\:0001/life_time切换为USB模式执行指令可断开棒子usb共享,更改为host主机模式,可用于棒子专用拓展坞使用echo host > /sys/kernel/debug/usb/ci_hdrc.0/role相反的,也可以切换回网络共享模式echo gadget > /sys/kernel/debug/usb/ci_hdrc.0/role快速开启一个wifi如果棒子无wifi或者误删,可以用这个指令在adb shell内快速创建一个wifi热点,名字为4G-wifi,密码为123456789nmcli d wifi hotspot ifname wlan0 con-name wifi ssid 4G-wifi band bg channel 11 password 123456789关闭全部led指示灯如果觉得led灯太闪(没壳的会显得很亮),可以执行指令关闭led,同时可以放rc.local开机启动自动关闭led灯echo none > /sys/class/leds/red\:os/triggerecho none > /sys/class/leds/blue\:wifi/triggerecho none > /sys/class/leds/green\:internet/triggerAP启用ipv6共享(待补充)输入指令启用ipv6转发,执行过程中可能会掉线ssh,建议在 adb shell 内执行echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
echo "net.ipv6.conf.all.forwarding=1" >> /etc/sysctl.conf
echo "net.ipv6.conf.all.proxy_ndp=1" >> /etc/sysctl.conf
echo "net.ipv6.conf.all.accept_ra=2" >> /etc/sysctl.conf
sysctl -p
nmcli connection up br0
systemctl restart dnsmasq.service
nmcli connection up usb安装依赖apt install radvd ndppd dhcpcd5编写配置文件br0为要监听的网络/etc/radvd.conf.demointerface br0 {
AdvSendAdvert on;
MinRtrAdvInterval 3;
MaxRtrAdvInterval 10;
AdvManagedFlag off;
AdvOtherConfigFlag off;
prefix REPLACEIPV6 {
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr off;
};
};/etc/ndppd.conf.demoroute-ttl 30000
proxy wlan0 {
router yes
timeout 500
rule REPLACEIPV6 {
auto
}
}/etc/dhcpcd.confinterface br0
ipv6
ipv6rs
ipv6ra_other_information启动服务systemctl restart radvd
systemctl restart ndppd
systemctl restart dhcpcd理论上v6部分就结束了,但是试过不同设备有几率并不能分发地址,还存在争议,也可以参考这位大佬的文章开启v6共享:https://zyyme.com/msm8916-wifi.html本篇暂时完结,不研究debian了,后续随缘更新...
-
随身wifi折腾入门(3)-- 简单控制GPIO
https://yanhy.top/index.php/archives/334/
2023-04-11T17:12:00+08:00
本章节待慢慢补充...
linux下的GPIO一般可以在/sys/kernel/debug/gpio下查询到信息,但是由于棒子的PCB没有开源,无法得知目前那些GPIO可以使用。但是通过表面可知,至少有3颗LED、2路SIM卡控制端口可用,且板载Uart串口调试点,因此,如果能对其中几个IO进行操作,通过IIC协议,即可可以控制多路外设,成为真正的硬件开发板...控制LED行为从最简单的开始,控制一颗LED的亮灭。刷了Debian系统后,板子上只有红色、蓝色灯为启用状态,而绿色灯为None状态。因此,我们可以先拿没用的绿色LED下手。了解LED控制方法查询目前棒子上已知的GPIO引用:ls /sys/class/leds/查询后可得:蓝色LED默认分配为WIFI状态绿色LED默认分配为网络状态红色LED默认为系统运行指示灯SIM:EN为SIM卡启用状态,该焊盘位于ESIM底座GND处,预测SIM1同理SIM:SEL为SIM选择状态,物理位置目前未测量进入green的目录内,可看到以下几个文件:主要文件为brightness、max_brightness、trigger,这三个文件即为LED引脚的属性brightness:可读可写; 所以这个属性文件是用于设置 LED的亮度等级或者获取当前 LED 的亮度等级。max_brightness: 该属性文件只能被读取,不能写,用于获取 LED 设备的最大亮度等级。trigger: 触发模式,该属性文件可读可写,通过 cat 命令查看该属性文件触发模式其中,trigger 内有以下的模式:这里中括号选中为none,即为禁用。常见模式有:timer:使用系统定时器控制,可用于作为伪PWM控制,定时闪烁等功能heartbeat:心跳模式,可用于作为监控系统运行状态,定时有规律的闪烁default-on:默认开启模式,此模式会使LED常亮,可用于寻找板载物理位置使用mmc:读写存储器(emmc)的时候会闪烁phy0tx(rx):接收(发送)wifi数据时会闪烁尝试控制LED行为模式使用echo的方式写入该文件即可控制LED的状态,如这里使它运行为心跳包闪烁模式:echo heartbeat > /sys/class/leds/green\:internet/trigger同理,如果写入 none 则为禁用led灯,指令如下:echo none > /sys/class/leds/green\:internet/trigger也可以设置led为wifi状态指示灯:echo phy0radio > /sys/class/leds/green\:internet/trigger仅需执行指令,即可控制led状态,重启后恢复原始模式,可写入rc.local让其每次开机都设置为该模式。制作温控PWM风扇可以将其设置为 timer 定时器模式,通过手动调整延时开与延时关的方式模拟PWM占空比:echo timer > /sys/class/leds/green\:internet/trigger
echo 90 > /sys/class/leds/green\:internet/delay_off
echo 10 > /sys/class/leds/green\:internet/delay_on同理,可以使用绿色LED的IO用来控制风扇,实现温控风扇。以下代码为即兴发挥,可自行测试,将风扇连接至绿色LED引脚上,或者更改 GPIO_PIN 值为其他IO引脚;可以自行更改 pwm_v 的值,以1000为满值,分4个档位。代码仅供测试,如果有问题可评论区留言。#python 3
import time
import os
pwm_v = [300,500,700,900] #档位速度设置,满值为1000
GPIO_PIN = "green\:internet" #IO引脚设置
print("开始初始化GPIO...")
os.system(f"echo timer > /sys/class/leds/{GPIO_PIN}/trigger")
while True:
time.sleep(1)
try:
temp_file=open("/sys/class/thermal/thermal_zone0/temp",'r')
temp = int(int(temp_file.read())/1000)
temp_file.close()
print(f"当前温度为:{temp}")
except OSError as e:
print(f"打开文件出错:{str(e)}")
if temp <25:
print(f"温度在(0,25)区间内,关闭风扇,PWM占空比0%")
os.system(f"echo 0 > /sys/class/leds/green\:internet/delay_on")
os.system(f"echo 1000 > /sys/class/leds/green\:internet/delay_off")
if temp >= 25 and temp <35:
print(f"温度在[25,35)区间内,开启第一档,高电平时间{pwm_v[0]},低电平时间{1000-pwm_v[0]},PWM占空比{pwm_v[0]/1000*100}%")
os.system(f"echo {pwm_v[0]} > /sys/class/leds/green\:internet/delay_on")
os.system(f"echo {1000-pwm_v[0]} > /sys/class/leds/green\:internet/delay_off")
if temp >= 35 and temp <45:
print(f"温度在[35,45)区间内,开启第二档,高电平时间{pwm_v[1]},低电平时间{1000-pwm_v[1]},PWM占空比{pwm_v[1]/1000*100}%")
os.system(f"echo {pwm_v[1]} > /sys/class/leds/green\:internet/delay_on")
os.system(f"echo {1000-pwm_v[1]} > /sys/class/leds/green\:internet/delay_off")
if temp >= 45 and temp <55:
print(f"温度在[45,55)区间内,开启第三档,高电平时间{pwm_v[2]},低电平时间{1000-pwm_v[2]},PWM占空比{pwm_v[2]/1000*100}%")
os.system(f"echo {pwm_v[2]} > /sys/class/leds/green\:internet/delay_on")
os.system(f"echo {1000-pwm_v[2]} > /sys/class/leds/green\:internet/delay_off")
if temp >= 55 and temp <65:
print(f"温度在[55,65)区间内,开启第四档,高电平时间{pwm_v[3]},低电平时间{1000-pwm_v[3]},PWM占空比{pwm_v[3]/1000*100}%")
os.system(f"echo {pwm_v[3]} > /sys/class/leds/green\:internet/delay_on")
os.system(f"echo {1000-pwm_v[3]} > /sys/class/leds/green\:internet/delay_off")
if temp >= 65:
print(f"温度大于65摄氏度,开启最大功率,PWM占空比100%")
os.system(f"echo 1000 > /sys/class/leds/green\:internet/delay_on")
os.system(f"echo 0 > /sys/class/leds/green\:internet/delay_off")
除了简单的控制LED的行为以及模拟PWM,这几个引出的IO或许还可以更改输出输入模式,待本文后续更新继续探索...参考文章https://github.com/Yushi-Xing/openstick_fan/blob/main/main.cpphttps://gitee.com/anhui1995/ufi_auto-fan/blob/master/autofan.chttps://blog.csdn.net/qq_26226907/article/details/128027533https://www.kancloud.cn/handsomehacker/openstick/2637560
-
随身wifi折腾入门(2)-- 编译&刷入系统
https://yanhy.top/index.php/archives/333/
2023-04-05T19:06:00+08:00
(需更新)
社区已经有很多编译的系统可玩了,但是为了追求彻底,我还是想自己编译一个系统用用看,顺便试着调整内核进行超频...本文参照多个文章整理后编写编译UFI设备的Debian固件编译410随身wifi_Debian超频版教程&经验关于 OpenStick如果只想刷入社区的系统镜像,可看第5节 系统刷入系统与环境编译需要在主机为Linux系统下进行,因此本次选择vmware虚拟机进行系统镜像: Ubuntu2210_Desktop_amd64编译过程中全程以普通用户进行,不能进入root用户编译,仅使用sudo提权系统安装完成后打开终端开始换源,如果不换源后续安装软件会较慢:sudo vi /etc/apt/sources.list注释全部内容,更换为:# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ kinetic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ kinetic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ kinetic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ kinetic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ kinetic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ kinetic-backports main restricted universe multiverse
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ kinetic-security main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ kinetic-security main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ kinetic-security main restricted universe multiverse
# deb-src http://security.ubuntu.com/ubuntu/ kinetic-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ kinetic-proposed main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ kinetic-proposed main restricted universe multiverse工具准备输入指令安装软件包:sudo apt install binfmt-support qemu-user-static gcc-10-aarch64-linux-gnu kernel-package fakeroot simg2img img2simg mkbootimg bison flex gcc-aarch64-linux-gnu pkg-config libncurses-dev libssl-dev unzip git克隆仓库代码:git clone https://github.com/OpenStick/linux.git --depth=1内核超频此时不急着去编译源码,为了获得更佳的性能,先对其进行超频修改进入目录 linux/drivers/clk/qcom 找到 a53-pll.c文件,进行修改打开文件后,可根据下图为参考,21-27行内,第一块为运行频率,第二块则为供电电压。根据前面的规律,大致可以判断为每提升200Mhz增加10电压值,但是由于再往后就超出了芯片设计频率,同时要考虑功耗与发热,因此往后提升时要略增加一些电压值,如 { 1841600000, 96, 0x0, 0x1, 0 }static const struct pll_freq_tbl a53pll_freq[] = {
{ 998400000, 52, 0x0, 0x1, 0 },
{ 1094400000, 57, 0x0, 0x1, 0 },
{ 1152000000, 62, 0x0, 0x1, 0 },
{ 1209600000, 63, 0x0, 0x1, 0 },
{ 1248000000, 65, 0x0, 0x1, 0 },
{ 1363200000, 71, 0x0, 0x1, 0 },
{ 1401600000, 73, 0x0, 0x1, 0 },
{ 1621600000, 84, 0x0, 0x1, 0 },
{ 1841600000, 96, 0x0, 0x1, 0 },
{ 1951600000, 103, 0x0, 0x1, 0 },
{ }
};
找到第二个目录 linux/arch/arm64/boot/dts/qcom 修改其中的 msm8916.dtsi 文件,在220行左右出现默认频率,在此之后进行增加,增加的频率需要在前一个文件内添加好 opp-1363200000 {
opp-hz = /bits/ 64 <1363200000>;
};
opp-1401600000 {
opp-hz = /bits/ 64 <1401600000>;
};
opp-1621600000 {
opp-hz = /bits/ 64 <1621600000>;
};
opp-1841600000 {
opp-hz = /bits/ 64 <1841600000>;
};
opp-1951600000 {
opp-hz = /bits/ 64 <1951600000>;
};内核编译编译配置回到刚刚git拉取的终端,开始执行编译前的配置cd linux
export CROSS_COMPILE=aarch64-linux-gnu-
export ARCH=arm64
make msm8916_defconfig
make menuconfig具体的make配置可以参考网上公共教程,也可以直接使用默认配置进行下一步开始编译这里的 -j4 请根据自己CPU的核心数或虚拟机分配核心数来修改make -j4生成软件包生成debian格式的deb软件包:fakeroot make-kpkg --initrd --cross-compile aarch64-linux-gnu- --arch arm64 kernel_image kernel_headers生成结束后,输入 ls ../ 即可查看生成的deb文件包保留文件在上一级目录创建bak文件夹,将必要的文件提取出来备用路径:arch/arm64/boot/Image.gz 设备树dtb路径:arch/arm64/boot/dts/qcom/msm8916-handsome-openstick-xxxxxx 这里要根据设备型号选择,本文使用001B设备也可以一次性打包多个设备版本,如再拉取一个 003 的棒子的设备树(与001c通用)mkdir ../bak
cp arch/arm64/boot/Image.gz ../bak/
cp arch/arm64/boot/dts/qcom/msm8916-handsome-openstick-ufi001b.dtb ../bak/
cp arch/arm64/boot/dts/qcom/msm8916-handsome-openstick-ufi001c.dtb ../bak/下载底包下载debian底包,并将解压后的rootfs.img放到bak目录内cd ../bak
wget https://github.com/OpenStick/OpenStick/releases/download/v1/debian.zip && unzip debian.zip
mv ./debian/rootfs.img ./解包挂载simg2img rootfs.img root.img
sudo mount root.img /mnt
sudo mount --bind /proc /mnt/proc
sudo mount --bind /dev /mnt/dev
sudo mount --bind /dev/pts /mnt/dev/pts
sudo mount --bind /sys /mnt/sys将前面生成的deb软件包复制到 /mnt 目录sudo cp ../linux-*.deb /mnt
使用 chroot 进入挂载的系统,移除系统内原有的linux-image包,并安装刚刚生成的deb软件包,安装后删除deb文件sudo chroot /mnt
dpkg -l | grep -E "linux-headers|linux-image" |awk '{print $2}'|xargs dpkg -P
dpkg -i *.deb
rm linux-*.deb 系统优化与正常debian系统一样进行换源等常规优化操作换源:cat>/etc/apt/sources.list<<EOF
deb http://mirrors.ustc.edu.cn/debian stable main contrib non-free
# deb-src http://mirrors.ustc.edu.cn/debian stable main contrib non-free
deb http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free
# deb-src http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free
EOF安装常用软件并调整时区 区域:6 Asia 时区:70 Shanghaiapt install locales usbutils curl wget fdisk net-tools nanodpkg-reconfigure localesdpkg-reconfigure tzdata启用Root并默认自动登录,并修改root密码(本文设置为123123)sed -i '/PermitRootLogin /c PermitRootLogin yes' /etc/ssh/sshd_config
sed -i '/PasswordAuthentication /c PasswordAuthentication yes' /etc/ssh/sshd_config
passwd root创建 rc.local 开机启动脚本cat>>/etc/systemd/system/rc-local.service<<EOF[Unit]Description=/etc/rc.localConditionPathExists=/etc/rc.local[Service]Type=forkingExecStart=/etc/rc.local startTimeoutSec=0StandardOutput=ttyRemainAfterExit=yesSysVStartPriority=99[Install]WantedBy=multi-user.targetEOFcat <<EOF >/etc/rc.local#!/bin/sh -e## rc.local## This script is executed at the end of each multiuser runlevel.# Make sure that the script will "exit 0" on success or any other# value on error.#exit 0EOFsystemctl daemon-reload && systemctl enable rc-localhistory -c配置结束,输入 exit 可退出将 /mnt/boot/initrd**.img 取出到 bak 文件夹内备用cp /mnt/boot/initrd.img-* ./取消挂载并打包取消刚刚的boot.img的挂载sudo umount /mnt/proc sudo umount /mnt/dev/ptssudo umount /mnt/devsudo umount /mnt/syssudo umount /mnt将 boot.img 转为刷机用的 rootfs.img 格式img2simg root.img rootfs.img将Image和dtb合并(由于前面拉了两个设备树,这里合并两次)cat Image.gz msm8916-handsome-openstick-ufi001b.dtb>ufi001b-kernel-dtb
cat Image.gz msm8916-handsome-openstick-ufi001c.dtb>ufi001c-kernel-dtb将前面提取出来的 initrd**.img 改名为 initrd.imgmv initrd.img-* initrd.img生成镜像生成001b的镜像mkbootimg --base 0x80000000 --kernel_offset 0x00080000 --ramdisk_offset 0x02000000 --tags_offset 0x01e00000 --pagesize 2048 --second_offset 0x00f00000 --ramdisk initrd.img --cmdline "earlycon root=PARTUUID=a7ab80e8-e9d1-e8cd-f157-93f69b1d141e console=ttyMSM0,115200 no_framebuffer=true rw" --kernel ufi001b-kernel-dtb -o ufi001b-boot.img生成001c/003的镜像mkbootimg --base 0x80000000 --kernel_offset 0x00080000 --ramdisk_offset 0x02000000 --tags_offset 0x01e00000 --pagesize 2048 --second_offset 0x00f00000 --ramdisk initrd.img --cmdline "earlycon root=PARTUUID=a7ab80e8-e9d1-e8cd-f157-93f69b1d141e console=ttyMSM0,115200 no_framebuffer=true rw" --kernel ufi001c-kernel-dtb -o ufi001c-boot.img整理文件,将boot与rootfs.img整理出来(可选)mkdir ufi_debian
mv ufi001*.img ./ufi_debian/
mv rootfs.img ./ufi_debian/最后,将这些文件从虚拟机复制到主机,接入棒子,准备下一个环节:开始刷机刷入系统要想把Debian刷入到棒子内,需要在棒子的fastboot模式下刷入。如果棒子是刚做完第一章的备份工作后,只需要跳过第0节继续往下跟着做即可;如果棒子已经刷入过openwrt或者Debian等linux系统,请备份好必要资料后,看下面第0节进入fastboot模式。除了esim,务必不要插入sim卡的时候刷机,否则可能会无法检测到卡,出现这种情况重新刷入就可以了(除非刷机包有要求插卡刷入)第0节
已刷机的棒子进fastboot
如果你的棒子是新买的并且已经做完备份工作了,可以直接跳过该小节,直接使用adb重启至fastboot备份好必要文件后,拔下棒子按板子上的RST按钮,并插入到电脑,此时电脑会识别到9008设备使用第一章的软件 Qualcomm Premium Tool V2.4 ,打开后扫描分区,按下图所示格式化boot分区格式化完成后,拔掉棒子,重新插入,即可自动进入fastboot模式打开第一章的adb工具包 tools 文件夹,在文件夹上方地址栏输入cmd,打开cmd窗口输入指令 fastboot devices 即可查看是否有设备连接如果连接成功,即可开始跳转到第2节第1节
进入到fastboot模式,如果是从第0节完成,则可以跳过这一节往下看;如果棒子刚买回来且做了备份工作后,可以看这一节进入fastboot正常插入棒子,等待其开机,设备管理器显示adb即可如果显示如下图,同时出现adb与9091设备,代表设备还没有完全开机,稍等片刻即可打开第一章内的adb工具包 tools 文件夹,在文件夹上方地址栏输入cmd,打开cmd窗口输入指令 adb devices ,查看是否有adb设备连接,如有,可继续执行指令 adb reboot bootloader此时电脑会提示新设备接入,输入指令 fastboot devices 即可查看是否有设备连接此时棒子成功进入fastboot模式,可以进行刷机第2节准备Debian\linux\openwrt刷入工具包,优先刷入ufi003(001c)如果使用社区提供的刷机镜像压缩包,里面一般有全部分区文件和 flash.bat 刷机脚本,可以直接使用包里面的 flash.bat 一键刷入;如果只准备了rootfs.img 与 boot.img 和本文一样,那就需要下载基础包,将这俩文件放基础包内,并把 *-boot.img 改名为 boot.img 即可基础包链接:https://www.123pan.com/s/Dpq0Vv-p9UHd.html 提取码:dkdF (本文采用这一个)源链接:https://github.com/OpenStick/OpenStick/releases/tag/v1 (建议使用前面链接,本文有改动刷入脚本,可自动刷入lk2nd与rootfs、boot)源链接配合源教程食用更佳:https://www.kancloud.cn/handsomehacker/openstick/2636506将基础包下载后解压,可得到一个base文件夹。将前面生成的 rootfs.img 与 ufi001c-boot.img 复制到该文件夹内,并将 ufi001c-boot.img 改名为 boot.img ,然后运行 flash.bat 即可开始刷入,不会超过3分钟(如果rootfs包较大,耗时也会久,如果长时间不跑进度可以尝试重新刷入,进入fastboot方法看第0节)等显示 All done!! 之后棒子会自动重启,并尝试开机如果在电脑里面找不到设备,可以参考文章:https://www.kancloud.cn/handsomehacker/openstick/2636506本文结束,后续折腾请等待更新