琪依坤 | 羽毛在飛

Good Luck To You!

Porting several open source apps to Surface RT Arm32

Here, I ported several open source apps to Windows on Arm32.

I compiled them using Visual Studio 2019 with installing individual ARM components. I only added ARM Release configuration.

There are some ported apps on Surface RT, but I found that the apps I needed are old versions. If you want to learn about it, click here
The Bilibili video makes a collection to introduce all of below ported apps. You can visist: https://www.bilibili.com/video/BV1Qd4y1v7bS/ 

(1) Notepad++8.4.4

Original link: https://github.com/notepad-plus-plus/ 

BiliBili videos: https://www.bilibili.com/video/BV1Na411Z76j/ 

                       https://www.bilibili.com/video/BV1Kv4y1c7eT/ 

                       https://www.bilibili.com/video/BV1y14y1b7qz/ 

I modified some codes to support Arm32:

- Add Arm32 Arch_Type

- Disable AutoUpdate 

NppShell had been ported. You can run command prompt as Administrator and input regsvr32 /i NppShell.dll to install ContextMenu.

But, you must add Administrators group to HKEY_CLASSES_ROOT and set permission to Full Control. You also must add Administrators group to HKEY_CLASSES_ROOT*\shellex\ContextMenuHandlers and set permission to Full Control. You can run SetContextMenu.cmd as Administrator, it will give you some information and help you install context menu.

NppPluginList had been ported. You can download, install and remove plugins via Plugin Admin. I ported 34 plugins as below:

BetterMultiSelection 1.5, ComparePlugin 2.0.2 (Diff against Git and Diff against SVN are not supported),  HexEditor 0.9.12.0, AnalysePlugin 1.13.0.0, nppAutoDetectIndent 2.3, BigFiles 0.1.3, ColumnTools 1.4.4.1, CommentWrap 1.0.0.5, PythonIndent 1.0.0.4, DereksAutoindent 1.0.0.2, PasteIndented 1.0.0.2, CustomizeToolbar 5.3, DoxyIt 0.4.4, NppEditorConfig 0.4.0, ElasticTabstops 1.3.1, Explorer 1.9.5.0, NppExec 0.8.0, FileSwitcher 1.0.3.0, FWDataViz 2.5.0.0, GotoLineCol 2.4.2.0, IndentByFold 0.7.3, NPPJSONViewer 1.40, LocationNavigate 0.4.8.1, NewFileBrowser 0.1.5.0, MultiClipboard 2.1.0.0, nppConverter 4.4.0, nppcrypt 1.0.1.6, NppExport 0.4.0.0, NppTextViz 0.4.2, NppQCP 2.0, SurroundSelection 1.4.1, NppTaskList 2.4, XMLTools 3.1.1.13, XBrackets 1.3.1.0.

You can download binary from here.  npp.8.4.4.portable.arm32.zip

Backup and source codes download: https://github.com/plumeqi/RT_Arm32_Porting/tree/main/Notepad%2B%2B8.4.4 

(2) AkelPad 4.9.12

Official link: http://akelpad.sourceforge.net/ 

Ported version from github: https://github.com/ssrlive/akelpad 

ASpell: https://sourceforge.net/p/aspell/patches/150/ 

            https://ftp.gnu.org/gnu/aspell/ 

Bilibili videos: https://www.bilibili.com/video/BV1PW4y1a76d/ 

                       https://www.bilibili.com/video/BV1CV4y1p7J9/ 

                       https://www.bilibili.com/video/BV1qP411j7z7/ 

Official version is 4.9.8, but there are some fixes in codesvn of sourceforget.net. I compared github version to official codesvn version, github version is better than codesvn version. Author of the github changed version to 4.9.12. I ported the version 4.9.12. 

AkelPad and plugins were ported to Arm32 except Scripts plugin.  I also ported aspell core file to Arm32, but I don't know how to use. So I don't know if ported aspell core works. 

If you want to use context menu, run command prompt as Administrator and run regsvr32.exe shellext.dll. To unregister, run regsvr32.exe /u shellext.dll.

You can download binary from here. AkelPad-4.9.12-arm32.zip

Backup and source codes download:  https://github.com/plumeqi/RT_Arm32_Porting/tree/main/AkelPad4.9.12 

(3) Notepad2 series

Notepad2 4.2.25

Official website: https://www.flos-freeware.ch/notepad2.html 

Scintilla 2.24 download link: http://sourceforge.net/projects/scintilla/files/scintilla/2.24/ 

Bilibili video:  https://www.bilibili.com/video/BV1CD4y1z7Zg/ 

You can download Arm32 binary from here. notepad2_4.2.25_Arm32.zip

Backup and source codes download:  https://github.com/plumeqi/RT_Arm32_Porting/tree/main/Notepad2_4.2.25 

 

Notepad2-mod 4.2.25.998

Official website:  https://xhmikosr.github.io/notepad2-mod/ 

Gtihub: https://github.com/XhmikosR/notepad2-mod 

Bilibili videos: https://www.bilibili.com/video/BV15P411L7HC/ 

                     https://www.bilibili.com/video/BV1AY4y1u771/ 

                     https://www.bilibili.com/video/BV1WW4y1t7xS/ 

You can download Arm32 binary from here. Notepad2-mod.4.2.25.998_Arm32.zip

Backup and source codes download: https://github.com/plumeqi/RT_Arm32_Porting/tree/main/Notepad2-mod-4.2.25.998 

 

Notepad2-mod-cn 4.2.25.998

Gtihub:  https://github.com/longjus/notepad2-mod-cn 

Bilibili videos: https://www.bilibili.com/video/BV15P411L7HC/ 

                     https://www.bilibili.com/video/BV1AY4y1u771/ 

                     https://www.bilibili.com/video/BV1WW4y1t7xS/ 

Notepad2-mod-cn is a modified version of Notepad2-mod. The major change is to support Chinese Simplified. 

You can download Arm32 binary from here.  Notepad2-mod-cn.4.2.25.998_Arm32.zip

Backup and source codes download: https://github.com/plumeqi/RT_Arm32_Porting/tree/main/Notepad2-mod-cn-4.2.25.998 

 

Notepad2-zufuliu

Github: https://github.com/zufuliu/notepad2 

Bilibili videos: https://www.bilibili.com/video/BV15P411L7HC/ 

                     https://www.bilibili.com/video/BV1AY4y1u771/ 

                     https://www.bilibili.com/video/BV1WW4y1t7xS/ 

It is a modified version of Notepad2/Notepad2-mod. It supports localization. It provided ARM version in its resposity. If you want to run it under Windows RT 8.1 or Windows 10 on Arm32, you need sign it. 

You can download signed Arm32 binary from here.  Notepad2_i18n_ARM_v4.22.07r4278.zip

Backup download:  https://github.com/plumeqi/RT_Arm32_Porting/tree/main/Notepad2-zufuliu-4.22.07/Bin 

 

Notepad3 5.21.1129.1

Official website: https://www.rizonesoft.com/downloads/notepad3/ 

Github: https://github.com/rizonesoft/Notepad3 

Bilibili videos:   https://www.bilibili.com/video/BV1zD4y167bz/ 

                       https://www.bilibili.com/video/BV1G14y147wg/ 

                       https://www.bilibili.com/video/BV1rV4y1H7bw/ 

                       https://www.bilibili.com/video/BV1ut4y1J7oL/ 

Notepad3 is an enhanced version of Notepad2 and Notepad-mod. It support localization. It has three modules: the main app named Notepad3, exploer modul minpath and regex search module grepWinNP3. All of he three modules was ported to Arm32. 

You can download Arm32 binary from here. Notepad3_5.21.1129.1_Arm32.zip

Backup and source codes download: https://github.com/plumeqi/RT_Arm32_Porting/tree/main/Notepad3_5.21.1129.1 

 

ReplaceAndRestoreNotepad.cmd

Above Notepad2 and enhanced/modified versions only support single window. The simple reason is that it is provisioned notepad's replacement. It shouldn't be too complicated,  and it shouldn't be too simple like provisioned notepad.  There is a way, clean and unintrusive registry-based method to replace Windows Notepad. I wrote a batch processing file to replace or restore Windows Notepad. 

Here download RepalceAndRestoreNotepad.cmd for Notepad2, Notepad2-mod, Notepad2-mod-cn and Notepad-zufuliu.

Here download RepalceAndRestoreNotepad.cmd for Notepad3.

Backup download: https://github.com/plumeqi/RT_Arm32_Porting 

(4) 7-Zip 22.01

Official website: https://www.7-zip.org/ 

Bilibili videos:  https://www.bilibili.com/video/BV1TG411V7PK/ 

                      https://www.bilibili.com/video/BV1Pt4y1E7P5/ 

7-Zip doesn't provide Arm32 version in its official website. Even though you can download arm32 version from sourceforge, eg. https://sourceforge.net/projects/sevenzip/files/7-Zip/22.01/  ,   

but the exe and dll is not signed. It can not work under Windows RT 8.1. I splitted the arm32 version over two parts: 7zInstaller.exe and 7z archive. And I signed related files. Then re-generated a new installer execute file. 

If you want to use context menu, you need set owner as Administrators group and full control permission to below registry items:   

HKEY_CLASSES_ROOT\\*\shellex\ContextMenuHandlers   

HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers   

HKEY_CLASSES_ROOT\Folder\shellex\ContextMenuHandlers   

HKEY_CLASSES_ROOT\Directory\shellex\DragDropHandlers   

HKEY_CLASSES_ROOT\Drive\shellex\DragDropHandlers   

After changed above registry items:   

For portable version, click Options of 7-Zip File Manager and check Integrate 7-Zip to shell context menu.    

For 7-Zip Installer, run installer execute file to install.   

You can download Arm32 portable version from here.  7z2201-arm32.zip

You can download Arm32 installer version from here.  7z2201-arm_signed.zip

Backup download:  https://github.com/plumeqi/RT_Arm32_Porting/tree/main/7zip22.01/Bin 

(5) WinMerge 2.16.22

Bilibili video: https://www.bilibili.com/video/BV1uG41137zG/ 

You can not find arm32 version of WinMerge from WinMerge.org, but you can find it from https://github.com/WinMerge/winmerge/. You need resign each of files for working under Windows RT 8.1.   

You needn't compile source code to get execute files.

On Windows RT 8.1 and in Test Mode, the WinMerge app from github can't work, error info is "can not verify digital signature." I installed the Root CA, it can't run yet. 

So, I signed my certification, it works well. I don't know why.  

If you want to build WinMerge from source codes, you can open solution using VS2017, VS2019 and VS2022. There are VS solutions and projects files in WinMerge source codes. You needn't add ARM configuration, because it existed. 

I found, build gtest fail. It is not important to use WinMerge on Surface RT. It is only for test purpose. 

You can download resigned arm32 version from here.  WinMerge-2.16.22-Arm32.zip

Backup download:  https://github.com/plumeqi/RT_Arm32_Porting/tree/main/WinMerge2.16.22/Bin 

(6) FastCopy 3.63

Bilibili videos: https://www.bilibili.com/video/BV1KW4y1q77b/ 

                       https://www.bilibili.com/video/BV1aG4113739/ 

Latest open source version is 3.63. Here provided two versions. One is ported original version. Another is FastCopy modification to support Chinese Simplified. But the author changed app icon. 

FastCopy3.63-Arm32.zip

FastCopy-M-3.6.3.51-Arm32.zip

Backup and source codes download:  https://github.com/plumeqi/RT_Arm32_Porting/tree/main/FastCopy3.63 

(7) SumatraPDF 3.3.3

Official website: https://www.sumatrapdfreader.org/ 

Offical Github: https://github.com/sumatrapdfreader/sumatrapdf 

Bilibili videos:  https://www.bilibili.com/video/BV1TV4y1u7bC/ 

                        https://www.bilibili.com/video/BV1SW4y1e7KE/ 

                        https://www.bilibili.com/video/BV1Y14y1Y7ms/ 

                        https://www.bilibili.com/video/BV1Bg41127Y2/ 

                        https://www.bilibili.com/video/BV1rP411H7eN/ 

                        https://www.bilibili.com/video/BV1bd4y1g7AZ/ 

                        https://www.bilibili.com/video/BV1yd4y1B7dH/ 

                        https://www.bilibili.com/video/BV1dd4y1T7mZ/ 

                        https://www.bilibili.com/video/BV1V24y1o7fa/ 

Latest version used Edge WebView2, it is not suitable for Windows RT 8.1. So ported latest version is 3.3.3. It is difficult to build whole solution. The reason is that the all projects use same outpath.  

If you specified different outpath, it will be clear. I try to enable SIMD for jpeg-turbo, but failed. It failed to emebed 14 base fonts to exe file. If missing font, you need copy tofu fonts to windows fonts.  

You can download Arm32 portable version and installer version from here.  SumatraPDF-3.3.3-Arm32.zip

Backup and source codes download:  https://github.com/plumeqi/RT_Arm32_Porting/tree/main/SumatraPDF3.3.3 

(8) FileZilla

I found newer version from https://github.com/driver1998/filezilla-woa  . But you need sign to run under Windows RT 8.1. It is enough to use, so I won't port latest version. 

(9) ZoomItC

You can view more detail from http://plumeqi.com/?id=199 .

ZoomIt is a screen zoom and annotation tool for technical presentations that include application demonstrations. It is developed by Mark Russinovich of Microsoft. But ZoomIt cann't fully meet my requirement, so I developed ZoomItC. ZoomItC has implemented all the functions of ZoomIt, and some functions have been enhanced. The C of ZoomItC means Clone, CJK supported and Change. Enhancements as below:

▪ Support mutiple languages. English and Chinese languages are embedded into ZoomItC application. You can create own language file. See also template_1033en.lang and sample_1028tc.lang. Place your lang file to path of ZoomItC.
▪ Under typing mode, you can input wide characters using IME.
▪ To avoid conflicts with ZoomIt's hotkeys, ZoomItC's default hotkeys are Shift+1, Shift+2, Shift+3 and Shift+4.
▪ After running ZoomIt, some registry items are created. ZoomItC has same behavior. But you can run ZoomItC -clearreg or ZoomItC /clearreg to remove the related items from registry.
▪ A tab named Donate is added to Options dialog.
▪ You can specify r, g, b, o, y, p colors.
▪ You can specify background colors of whiteboard and blackboard.
▪ You can specify background images of whiteboard and blackboard.
▪ You can specify break font color.
You can download Arm version from here. ZoomItC_ARM.zip
Currently, ZoomItC is NOT an open source software. I plan to open source the software, but the specific time is to be determined. 
 

 

更多精彩请关注公众号:

发表评论:

Powered By Z-BlogPHP 1.7.2

沪ICP备12032294号-1