Aptivi - Deprecated Manuals
ProjectsWebsiteBlog
Nitrocid KS v0.0.24 - Manual
Nitrocid KS v0.0.24 - Manual
  • History of KS
  • Kernel Simulator
  • Introduction to the Kernel
  • toc
  • arguments
    • Command line arguments for KS
    • Kernel arguments for KS
    • Preboot Command line arguments for KS
  • commands
    • Commands for (S)FTP client for KS
    • Commands-for-KS
    • Brief overview of HTTP shell
    • Brief overview of hex editor shell
    • Brief overview of JSON shell
    • Brief overview of mail shell
    • Brief overview of RSS shell
    • Test shell commands
    • Brief overview of text editor shell
    • Brief overview of ZIP shell
    • hex
      • addbyte hex editor shell command
      • addbytes hex editor shell command
      • clear hex editor shell command
      • delbyte hex editor shell command
      • delbytes hex editor shell command
      • exit hex editor shell command
      • exitnosave hex editor shell command
      • print hex editor shell command
      • querybyte hex editor shell command
      • replace hex editor shell command
      • save hex editor shell command
    • http
      • delete HTTP command
      • get HTTP command
      • getstring HTTP command
      • setsite HTTP command
    • json
      • addproperty JSON shell command
      • clear JSON shell command
      • delproperty JSON shell command
      • exit JSON shell command
      • exitnosave JSON shell command
      • print JSON shell command
      • save JSON shell command
    • mail
      • cd mail command
      • exit mail command
      • list mail command
      • lsdirs mail command
      • mkdir mail command
      • mv mail command
      • mvall mail command
      • read mail command
      • readenc mail command
      • ren mail command
      • rm mail command
      • rmall mail command
      • rmdir mail command
      • send mail command
      • sendenc mail command
    • rss
      • articleinfo RSS command
      • bookmark RSS command
      • chfeed RSS command
      • feedinfo RSS command
      • list RSS command
      • listbookmark RSS command
      • read RSS command
      • unbookmark RSS command
    • sftp
      • cdl (S)FTP command
      • cdr (S)FTP command
      • connect (S)FTP command
      • del (S)FTP command
      • disconnect (S)FTP command
      • get (S)FTP command
      • lsl (S)FTP command
      • lsr (S)FTP command
      • put (S)FTP command
      • pwdl (S)FTP command
      • pwdr (S)FTP command
      • quickconnect (S)FTP command
      • ftponly
        • cp FTP command
        • getfolder FTP command
        • mv FTP command
        • perm FTP command
        • putfolder (S)FTP command
        • type FTP command
    • text
      • addline text editor shell command
      • addlines text editor shell command
      • clear text editor shell command
      • delcharnum text editor shell command
      • delline text editor shell command
      • delword text editor shell command
      • editline text editor shell command
      • exit text editor shell command
      • exitnosave text editor shell command
      • print text editor shell command
      • querychar text editor shell command
      • queryword text editor shell command
      • querywordregex text editor shell command
      • replace text editor shell command
      • replaceinline text editor shell command
      • replaceinlineregex text editor shell command
      • replaceregex text editor shell command
      • save text editor shell command
    • uesh
      • adduser command
      • alias command
      • arginj command
      • beep command
      • blockdbgdev command
      • calc command
      • calendar command
      • cat command
      • cdbglog command
      • chattr command
      • chdir command
      • chhostname command
      • chlang command
      • chmal command
      • chmotd command
      • choice command
      • chpwd command
      • chusrname command
      • clearfiredevents command
      • cls command
      • colorhextorgb command
      • colorhextorgbks command
      • colorrgbtohex command
      • combine command
      • convertlineendings command
      • copy command
      • dict command
      • dirinfo command
      • disconndbgdev command
      • dismissnotif command
      • dismissnotifs command
      • echo command
      • edit command
      • exit command
      • fileinfo command
      • find command
      • firedevents command
      • ftp command
      • genname command
      • get command
      • gettimeinfo command
      • hexedit command
      • http command
      • hwinfo command
      • if command
      • input command
      • jsonbeautify command
      • jsonminify command
      • jsonshell command
      • keyinfo command
      • langman command
      • list command
      • lockscreen command
      • logout command
      • lovehate command
      • lsdbgdev command
      • lsvars command
      • mail command
      • md command
      • meteor command
      • mkfile command
      • mktheme command
      • modman command
      • modmanual command
      • move command
      • netinfo command
      • opem command
      • perm command
      • ping command
      • put command
      • rarshell command
      • rdebug command
      • reboot command
      • reloadconfig command
      • reloadsaver command
      • reportbug command
      • retroks command
      • rexec command
      • rm command
      • rmuser command
      • rss command
      • savecurrdir command
      • savescreen command
      • search command
      • searchword command
      • select command
      • set command
      • setrange command
      • setsaver command
      • setthemes command
      • settings command
      • sftp command
      • shownotifs command
      • showtd command
      • showtdzone command
      • shutdown command
      • snaker command
      • solver command
      • speedpress command
      • spellbee command
      • sshcmd command
      • sshell command
      • stopwatch command
      • sumfile command
      • sumfiles command
      • sysinfo command
      • testshell command
      • timer command
      • unblockdbgdev command
      • unitconv command
      • unzip command
      • update command
      • usermanual command
      • verify command
      • weather command
      • wrap command
      • zip command
      • zipshell command
    • unified
      • exit command
      • presets command
    • zip
      • cdir Zip command
      • chadir Zip command
      • chdir Zip command
      • get Zip command
      • list Zip command
      • pack Zip command
  • config
    • Configuration for KS
    • Screensaver settings for KS
    • Splash settings for KS
  • development
    • Custom splash guide
    • Events for Mod Developers
    • Mod Dependencies
    • Mod manual page
    • Modding guide
    • Screensaver modding guide
  • diagnostics
    • Kernel testing
    • Remote debugging guide
  • misc
    • Output redirection
    • Placeholders
    • Splashes
    • Studying Payslip virus
  • releases
    • Compatibility notes for first-gen KS
    • Compatibility notes for second-gen KS
    • Release-Notes-for-First-Generation-KS
    • Release-Notes-for-Second-Generation-KS
  • ueshdevelopment
    • Shell-scripting
    • UESH conditions
  • utilities
    • KSConverter
    • KSJsonifyLocales
Powered by GitBook
On this page
  • What is the custom splash for the kernel?
  • Custom splash format
  • How to start your own custom splash on Visual Studio?
  • Optional Stuff
  • Examples
Edit on GitHub
  1. development

Custom splash guide

Last updated 6 months ago

What is the custom splash for the kernel?

The custom splash is an assembly file that loads before the splash is displayed. It allows you to create custom splashes from simple progress bars to complex console art.

[!TIP] To get started to our Kernel Simulator API, visit .

Custom splash format

The mods have the file extension of .dll, and can support more than one code file for each mod. This will allow you to make bigger mods that can't fit on one source file, or if you want to separate some parts of the big source code to multiple fragments.

How to start your own custom splash on Visual Studio?

[!NOTE] We recommend following the template repository for making your own mod .

If you're going to make your custom splash, follow these steps:

  1. On the Start Page, click on New Project

  2. Click on Class Library (.NET Framework) or Class Library, select VB or C#, and name your splash. Select Framework as .NET Framework 4.8 or .NET 6.0. When you're finished, click Create.

  3. Right-click on References in the Solution Explorer, and press Manage NuGet packages...

  4. Go to Browse, and find Kernel Simulator and install it.

  5. You will see that your KS executable files are added to the references. In your project file, this will be added:

    <PackageReference Include="KS">
      <Version>0.0.21.1</Version>
    </PackageReference>
  1. The code will be ready in your SplashName codefile:

Public Class SplashName
    'Your code here
End Class

Now, follow these steps to create your first mod:

  1. Between the Public Class... and the End Class lines, let Visual Studio know that you're going to create your KS mod by writing: Implements ISplash

  2. Define properties for mod information by putting below the Implements ISplash: (Change the values as appropriate)

Property SplashClosing As Boolean Implements ISplash.SplashClosing
Property ProgressWritePositionX As Integer Implements ISplash.ProgressWritePositionX
Property ProgressWritePositionY As Integer Implements ISplash.ProgressWritePositionY
Property ProgressReportWritePositionX As Integer Implements ISplash.ProgressReportWritePositionX
Property ProgressReportWritePositionY As Integer Implements ISplash.ProgressReportWritePositionY
Property SplashDisplaysProgress As Boolean Implements ISplash.SplashDisplaysProgress
Property ISplash.SplashName As String Implements ISplash.SplashName
  1. Make your opening splash sub named Opening() that implements the ISplash.Opening, by writing:

Sub Opening() Implements ISplash.Opening
    'Your code below
End Sub
  1. Replace every 'Your code below comment with your code. Repeat this step on all the interface subs

  2. Make your display splash sub named Display() that implements the ISplash.Display, by writing:

Sub Display() Implements ISplash.Display
    'Your code below
End Sub
  1. Make your progress report splash sub named Report() that implements the ISplash.Report, by writing:

Sub Report(Progress As Integer, ProgressReport As String, ProgressWritePositionX As Integer, ProgressWritePositionY As Integer, ProgressReportWritePositionX As Integer, ProgressReportWritePositionY As Integer, ParamArray Vars() As Object) Implements ISplash.Report
    'Your code below
End Sub
  1. Make your closing splash sub named Closing() that implements the ISplash.Closing, by writing:

Sub Closing() Implements ISplash.Closing
    'Your code below
End Sub
  1. Right-click on the solution and press Build.

  2. Copy the output .dll file to KSSplashes directory in your profile folder (/home/<user>/ in Linux, and Users\<user>\ in Windows)

  3. Run your Kernel Simulator you've just referenced to in your project, and set it to display your splash using the settings command. Be sure to reboot the kernel.

Optional Stuff

  1. You can make your subs anywhere on the class, but if:

    • they're on the different class, make a separate code file for it:

Public Class AnotherClass
    'Your definitions below, and so your subs, functions, interfaces, etc.
End Class
  1. The new subs or functions should meet the following conditions:

    • They shouldn't make an infinite loop unless you're making them that exits if specified conditions are met

    • They shouldn't try to cause errors with the kernel.

    • If you're an exploiter and are making the exploit code for the splash implementation, do so on your test environment first then the production environment, then make your CVE report so we get attention and fix that quickly.

  2. If you're going to add imports, these rules must be met:

    • Don't import "KS" by itself. KS does that automatically

    • When importing modules/classes like TextWriterColor, it's written like this: Imports KS.Misc.Writers.TextWriterColor

Examples

If you want to check out the examples, feel free to check them out in the respository in GitHub.

this page
here
KSModExamples