博文

【.NET】利用 IL 魔法实现随心随意的泛型约束

众所周知,C# 只支持对 基类/接口/class/struct/new() 以及一些 IDE 魔法的约束,比如这样 public static string Test < T >( T value ) where T : ITest { return value .Test(); } public interface ITest { string Test () ; } 但是如果我们想要随心所欲的约束就不行了 public static string Test < T >( T value ) where T : { string Test () ; } { return value .Test(); } 最近无聊乱折腾 MSIL,弄出来好多不能跑的魔法,虽然不能跑但是反编译出的 C# 看着很神奇,其中正好就有想看看能不能弄个神奇的泛型出来,于是我胡写了一段代码 .assembly _ { } .class public Test { .method public void .ctor () { ldarg.0 call instance void object :: .ctor () ret } .method public static void Main () { .entrypoint newobj instance void Test :: .ctor () call string Test :: Test < class Test >(!! 0 ) call void [ mscorlib ] System.Console :: WriteLine ( string ) ret } .method public static string Test < T >(!! T t ) { ldarg.s t callvirt inst...

【开源】APK Installer —— 一个适用于 Windows 的 Android 应用安装程序

图片
APK Installer 一个适用于 WIndows 的 Android 应用安装程序 注意 本应用已上架应用商店,请认准作者为 wherewhere,请不要使用来历不明的版本,如果因为使用不明版本而出现的故障请自行解决。 本应用分为 WinUI3版 和 WPF版 ,请根据需要选取 下载链接 如何安装应用 最低需求 Windows 10 Build 18362及以上 设备需支持ARM64/x86/x64 至少400MB的空余储存空间(用于储存安装包与安装应用) 使用应用安装脚本安装应用 下载并解压最新的 安装包 (APKInstaller (Package)_x.x.x.0_Test.rar) 如果没有应用安装脚本,下载 Install.ps1 到目标目录 右击 Install.ps1 ,选择“使用PowerShell运行” 应用安装脚本将会引导您完成此过程的剩余部分 使用应用安装程序安装应用 下载并解压最新的 安装包 (APKInstaller (Package)_x.x.x.0_Test.rar) 开启旁加载模式 如果您想开发UWP应用,您可以开启 开发人员模式 , 对于大多数不需要做UWP开发的用户来说,开发人员模式是没有必要的 安装 Dependencies 文件夹下的适用于您的设备的所有依赖包 安装 *.cer 证书到 本地计算机 → 受信任的根证书颁发机构 这项操作需要用到管理员权限,如果您安装证书时没有用到该权限,则可能是因为您将证书安装到了错误的位置或者您使用的是超级管理员账户 双击 *.appxbundle ,单击安装,坐和放宽 更新应用 下载并解压最新的 安装包 (APKInstaller (Package)_x.x.x.0_x86_x64_arm_arm64.appxbundle) 双击 *.appxbundle ,单击更新,坐和放宽 屏幕截图 WinUI3版 WPF版 使用到的模块 WinUI AAPTForNet Ad...

【教程】Lumia 950 XL 刷win10教程第四步-优化

图片
前言 本教程续接 【教程】Lumia 950/XL 刷win10教程第三步-开机 ,部分内容取自 IT之家学院:微软Lumia 950 XL刷Win10 ARM64教程增补进阶版 ,转载请注明出处。 按照上一篇教程,我们应该已经能够成功双引导启动 Windows 10 ARM64 和 Windows 10 Mobile 了,但是 Windows 10 ARM64 部分仍不支持 GPU 和 OTG,部分不支持有线充电,本教程将着重讲解如何开启上述功能。 本教程仅适用于 Lumia 950 XL ,其它设备勿入。 适用于 Lumia 的 WOA 安装工具已更换地址,请点击 链接 下载最新版。 废话不多说,教程现在开始 重启 Lumia 950 XL 并进入 Mass Storage 模式 第一部分,开启GPU 请确认已经开启双系统引导 (未开启请进入下图界面开启,很重要) ,并确保设备已经进入 Mass Storage 模式 打开 WOA Deployer Lumia ,转到 Advanced 页面 点击 Install GPU 安装完成后重新启动到 Windows 10 ARM64 系统,打开 设备管理器 在未知设备下查找 ACPI\MSHW1004\0 描述的设备 (一般是第六个未知设备) 选择更新驱动程序,在驱动程序更新向导中,选择 浏览我的计算机以查找驱动程序软件 输入如图路径 (请确保该目录下有相关驱动) 选择后可能会出现一个红色的警告对话框,请选择通过 (因为驱动程序没有可信签名) 在确认安装驱动程序后,Lumia 950 XL的屏幕将变黑一段时间,过后将自动重新显示。 重启此时该设备已经具有了图形加速能力,如下图所示。 第二部分,修复有线充电 重启 Lumia 950 XL 并进入 Mass Storage 模式 从此处下载文件 百度...

【教程】启用刷了Windows 10 ARM64的Lumia 950 XL的WIFI和GPU

图片
原文 开启WIFI 对于已刷入Windows 10 ARM64的设备 下载新的 UEFI.efi 和 BootShim.efi 进入 Windows 10 ARM64 打开文件资源管理器 复制 UEFI.efi 至以下目录,选择覆盖 MainOS: EFIESP 复制 BootShim.efi 至以下目录,选择覆盖 MainOS: EFIESP\EFI\boot 重启,如果没有什么问题,WiFi已经可以使用了 对于未刷入Windows 10 ARM64的设备 按照正常步骤安装,使用新的文件即可 效果图 GPU install procedure for 950 XL 确保您使用的是新的 UEFI 和引导程序 (带有 WiFi 的) 和 0.1.0.1 驱动程序 使用 DISM 安装 QCDX (Display 驱动程序,在驱动包的 Supplemental/GPU/Display 目录) 。无论是否完成了 OOBE 都行。请勿注入 OEM Panel 驱动程序 ! 使用 @SuperJMN 的安装工具启用双引导 (或手动重置 WOABOOT 的 GUID) 打开设备管理器, 查看 > 显示隐藏的设备 找到 Qualcomm TrEE ,手动从本地更新驱动,驱动在 Supplemental 文件夹下的 “ Tree with NV services enabled ” 文件夹内。重新 启动。 找到未知设备 (ID 为 MSHW1004 ,一般在第六个未知设备左右,一定要确保是 MSHW1004 ,驱动安装完成后会显示为 Nokia Panel ),并将 OEM Panel 驱动程序 (在驱动包的 Supplemental/GPU/设备名 目录下, Lumia 950 为 Talkman , Lumia 950 XL 为 Cityman , RX-130 为 Hapanero ) 安装到该设备上。设备可能会崩溃或做其他奇怪的事情。重新启动,然后你就有 GPU 了! 资源下载 百度网...

【教程】Lumia 950/XL 刷win10教程第三步-开机

图片
#玩机技巧# #酷安夜话# #ROM杂谈# 铺路根据地 至此,我认为看此教程的已经安装完成win10了 本教程只包括部署完成后的开机和配置,不包括之前的一切操作 好的,教程开始 现在,按下电源键 10 秒,退出大容量模式后开机 开机后,一切都变了,首先是如同PC般的Windows Boot Manager,当然,用工程机的肯定不陌生,音量键选择,相机键确定,所以要确保这些按键能用 Windows Boot Manager 在开机之前,我们先感受一下第二个选项, Developer Menu Developer Menu 我没用过工程机,自然不知道其他操作是干嘛的,高级菜单我就不管了,先看看大容量模式菜单 UEFI Mass Storage Mode 好像没什么好看的,不过这样是不是方便很多,长按 10 秒电源键即可退出。现在回到正题 Windows Boot Manager 在选择win10并确定之后,便可以进入boot界面了,第一次启动非常非常长,所以可以玩玩 开机 随意的触摸屏幕,会生成一些代码,表示触控的位置,这样可以测试触控是否正常,当然只是在uefi boot里正不正常。 代码 转圈之后再摸就不会有反应了,因为已经进入win10了,随后慢慢的蓝屏的出现 准备就绪 一般在第一次启动的时候都会出现蓝屏,不用管他抠下电池重启即可,当然确保蓝屏是 SDBUS_INTERNAL_ERROR ,这个问题似乎在 rs5 后期就没有了,遇到其他问题一律重刷 蓝屏 然后就没什么事了,正常会慢慢的慢慢的慢慢的慢慢的……配置完成,然后就进入OOBE了 设置语言 正常走完流程,如果不能触控就重刷,确保驱动正确 “霸王条款” 然后就进系统了,字很小,注意别点飘了,下图是折腾完之后的开始屏幕 开始屏幕 为了更好的触控,进入 设备 → 显示 ,将缩放比设置为 170% (PC)或 273% (Phone) 高级缩放设置 然后进入 控制面板 ,找到 电源 ,关闭 快速启动 ,这样关机就很正常了 控制面板 ...