LastOS AppDisc Template - 2017.07.23

Discussion in 'Other Tools' started by Trouba, Oct 24, 2013.

  1. Trouba

    Trouba Administrator Staff Member

    [​IMG]
    The "LastOS AppDisc Template" is presented in the form of an .iso that includes ssWPI, the LastOS Settings tool, and a graphical menu for easy access. ssWPI is LastOS' great serial app installer that makes installation of applications a breeze. The Settings tool provides centralized access to many system management utilities and custom tweaks and tools that allow you to easily manage and optimize your OS install. This AppDisc Template, in short, enables you to easily make your own AppDisc for easy, serial installation of applications and customization of your OS install.

    How to make your own AppDisc?

    Just extract the ISO to a folder with 7-Zip or similar program and add any ssApps, ppApps and/or ppGames to their respective folders. These folders are named:
    • ppAppsInstalls
    • ppGamesInstalls
    • ssAppsInstalls
    LastOS.org houses an extensive Application Repository from where you can download ppApps and ssApps. Also, quite recently a ppGames Repository has been started. Simply download the ppApps, ssApps, and/or ppGames of your liking and add them to the above-mentioned folders.

    Then run ssWPI once without installing any apps and exit it; this will automatically create the database files for the apps/games in their respective folders for faster future ssWPI load time. Now you are ready to save your custom AppDisc with a program like UltraISO. You may then choose to mount your AppDisc image via a virtual drive, or otherwise burn it to optical media to install via optical drive.

    You are now in possession of your own, custom AppDisc!

    [Note that ssWPI now has the option to create a disc/image with ssWPI and apps, so you can play with that feature as well. However, the images thus produced will not include the LastOS Settings tool and the menu, it will only feature ssWPI and any apps included when you build the image.]

    =============================================
    Download: LastOS_AppDisc_Template_2017.07.23.7z
    MD5 hash of the ISO: 79F46C3BAEED84D2E0DAFC5FB6311597
    =============================================

    [When clicking the download link above, a page with garbled code may appear instead of a download prompt. To prevent this, just right-click the link and "Save as".]

    All included tools are current to date. When newer version of the included tools are released this AppDisc Template will be updated accordingly.


    Screenshots:

    The graphical Menu that gives easy access to the tools:

    [​IMG]

    The ssWPI interface:

    [​IMG]

    The LastOS Settings tool:

    [​IMG]
     
    pacav69, vanTorX, redfang337 and 5 others like this.
  2. Al.Cohol

    Al.Cohol New Member

    works well. a long time ago i contributed the idea to add the winpe as a boot option in the SSsettings. I noticed you still use a cmd. I believe most of you are familiar with autoit, so if you wanted to compile an exe that does the same as your cmd you can. It must be compiled in x64 to work on x64 machines. This is an example for grub4dos and a boot.wim. Its easy to add a choose wim option too. Comment out any fileinstalls and it will still work, but if you notice, and this is the main part i wanted to share, is that you don't need to include a boot.sdi, you can use the one built into windows.


    Code:
    #RequireAdmin
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Icon=Grub4DOS.ico
    #AutoIt3Wrapper_Compression=4
    #AutoIt3Wrapper_Compile_Both=y
    #AutoIt3Wrapper_Res_requestedExecutionLevel=asInvoker
    #AutoIt3Wrapper_Add_Constants=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    ;#AutoIt3Wrapper_Res_requestedExecutionLevel=asInvoker
    
    
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <EditConstants.au3>
    #include <Array.au3>
    #include <String.au3>
    #include <Process.au3>
    DllCall("kernel32.dll", "int", "Wow64DisableWow64FsRedirection", "int", 1) ; This disables 32bit applications from being redirected to syswow64 instead of system32 by default ;
    If Not IsAdmin() Then
        RunAs($user, $domain, $pass, 0, @ScriptName, @ScriptDir)
    EndIf
    
    $bcdedit = @SystemDir & "\bcdedit.exe"
    
    FileInstall("grldr", @WindowsDir & "\", 1)
    ;FileInstall("menu.lst", @WindowsDir & "\", 1)
    ;or
    FileCopy(@ScriptDir & "\grldr", @WindowsDir & "\", 9)
    FileCopy(@ScriptDir & "\menu.lst", @WindowsDir & "\", 9)
    
    
    
    ;Grub4dos
    RunWait(@ComSpec & " /c " & $bcdedit & ' /create /d "Grub4dos" /application bootsector > ' & @TempDir & "\bcd_out.txt", @WindowsDir & "\system32", @SW_HIDE)
    ;Sleep(1000)
    $3file = FileOpen(@TempDir & "\bcd_out.txt", 0)
    $3line = FileReadLine($3file)
    FileClose($3file)
    $3pos1 = StringInStr($3line, "{")
    $3pos2 = StringInStr($3line, "}")
    If $3pos2 - $3pos1 = 37 Then
        $grub = StringMid($3line, $3pos1, $3pos2 - $3pos1 + 1)
        ;Sleep(1000)
        RunWait(@ComSpec & " /c " & $bcdedit & " /set " & $grub & " device partition=c:", @WindowsDir & "\system32", @SW_HIDE)
        ;Sleep(1000)
        RunWait(@ComSpec & " /c " & $bcdedit & " /set " & $grub & " path \windows\grldr", @WindowsDir & "\system32", @SW_HIDE)
        ;Sleep(1000)
        RunWait(@ComSpec & " /c " & $bcdedit & " /displayorder " & $grub & " /addlast", @WindowsDir & "\system32", @SW_HIDE)
        ;Sleep(1000)
        ;RunWait(@ComSpec & " /c " & $bcdedit & ' Default {current}', @WindowsDir & "\system32", @SW_HIDE)
        ;RunWait(@ComSpec & " /c " & $bcdedit & ' /set {current} bootmenupolicy standard', @WindowsDir & "\system32", @SW_HIDE)
        RunWait(@ComSpec & " /c " & $bcdedit & ' /timeout 10', @WindowsDir & "\system32", @SW_HIDE)
        FileDelete(@TempDir & "\bcd_out.txt")
    EndIf
    
    
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    
    ;MsgBox(4096, "Add Boot.wim to BCD", "Do you want to add the WinPE to the BCD?  If not cancel now as startupcomplete is done.  This will need a boot.wim in Windows dir to function.", 2)
    $bootwim = _FindFileBootwim("sources\boot.wim")
    ;If FileExists($bootwim & "\sources\boot.wim") Then
    FileCopy($bootwim & "\sources\boot.wim", @WindowsDir & "\", 9)
    ;Else
    ;Exit
    ;EndIf
    
    
    
    ;Winpe Ramdisk
    If FileExists(@WindowsDir & "\boot.wim") Then
        ;RunWait(@ComSpec & " /c " & $bcdedit & ' /create /d "WinPERamdisk" /device > ' & @TempDir & "\bcd_out.txt", @SystemDir & "\", @SW_HIDE)
        RunWait(@ComSpec & " /c " & $bcdedit & ' /create /device > ' & @TempDir & "\bcd_out.txt", @SystemDir & "\", @SW_HIDE)
        Sleep(1000)
        $file = FileOpen(@TempDir & "\bcd_out.txt", 0)
        $line = FileReadLine($file)
        FileClose($file)
        $pos1 = StringInStr($line, "{")
        $pos2 = StringInStr($line, "}")
        If $pos2 - $pos1 = 37 Then
            $ramdisk = StringMid($line, $pos1, $pos2 - $pos1 + 1)
            ;RunWait(@ComSpec & " /c " & $bcdedit & " /set " & $ramdisk & ' description "WinPERamdisk"', @SystemDir & "\", @SW_HIDE)
            RunWait(@ComSpec & " /c " & $bcdedit & " /set " & $ramdisk & " ramdisksdidevice partition=c:", @SystemDir & "\", @SW_HIDE)
            RunWait(@ComSpec & " /c " & $bcdedit & " /set " & $ramdisk & " ramdisksdipath \Windows\system32\boot.sdi", @SystemDir & "\", @SW_HIDE)
        EndIf
    
    
        ;boot.wim
        RunWait(@ComSpec & " /c " & $bcdedit & ' /create /d "WinPE" /application osloader > ' & @TempDir & "\bcd_out2.txt", @SystemDir & "\", @SW_HIDE)
        ;RunWait(@ComSpec & " /c " & $bcdedit & ' /create /application osloader > ' & @TempDir & "\bcd_out2.txt", @SystemDir & "\", @SW_HIDE)
        Sleep(1000)
        $2file = FileOpen(@TempDir & "\bcd_out2.txt", 0)
        $2line = FileReadLine($2file)
        FileClose($2file)
        $2pos1 = StringInStr($2line, "{")
        $2pos2 = StringInStr($2line, "}")
        If $2pos2 - $2pos1 = 37 Then
            $guid = StringMid($2line, $2pos1, $2pos2 - $2pos1 + 1)
            RunWait(@ComSpec & " /c " & $bcdedit & " /set " & $guid & " systemroot \Windows", @SystemDir & "\", @SW_HIDE)
            RunWait(@ComSpec & " /c " & $bcdedit & " /set " & $guid & " detecthal Yes", @SystemDir & "\", @SW_HIDE)
            RunWait(@ComSpec & " /c " & $bcdedit & " /set " & $guid & " winpe Yes", @SystemDir & "\", @SW_HIDE)
            RunWait(@ComSpec & " /c " & $bcdedit & " /set " & $guid & " osdevice ramdisk=[c:]\windows\boot.wim," & $ramdisk, @SystemDir & "\", @SW_HIDE)
            RunWait(@ComSpec & " /c " & $bcdedit & " /set " & $guid & " device ramdisk=[c:]\windows\boot.wim," & $ramdisk, @SystemDir & "\", @SW_HIDE)
            RunWait(@ComSpec & " /c " & $bcdedit & " /set " & $guid & " path \Windows\system32\winload.exe", @SystemDir & "\", @SW_HIDE)
            ;RunWait(@ComSpec & " /c " & $bcdedit & " /set " & $guid & ' description "WinPE"', @SystemDir & "\", @SW_HIDE)
            RunWait(@ComSpec & " /c " & $bcdedit & " /set " & $guid & ' locale en-US', @SystemDir & "\", @SW_HIDE)
            RunWait(@ComSpec & " /c " & $bcdedit & " /displayorder " & $guid & ' /addlast', @SystemDir & "\", @SW_HIDE)
            RunWait(@ComSpec & " /c " & $bcdedit & ' Default {current}', @SystemDir & "\", @SW_HIDE)
            RunWait(@ComSpec & " /c " & $bcdedit & ' /set {current} bootmenupolicy standard', @SystemDir & "\", @SW_HIDE)
            RunWait(@ComSpec & " /c " & $bcdedit & ' /timeout 10', @SystemDir & "\", @SW_HIDE)
            FileDelete(@TempDir & "\bcd_out2.txt")
            FileDelete(@TempDir & "\bcd_out.txt")
        EndIf
    
    EndIf
    
    
    ;Find bootwim
    Func _FindFileBootwim($bootwim, $sSearch4 = "ALL")
        If StringLeft($bootwim, 1) <> "\" Then $bootwim = "\" & $bootwim
        Local $aDrives4 = DriveGetDrive($sSearch4)
        For $i4 = 1 To $aDrives4[0]
            If FileExists($aDrives4[$i4] & $bootwim) Then Return $aDrives4[$i4]
        Next
        Return SetError(1, 0, "")
    EndFunc  ;==>_FindFileBootwim
    
    
     
  3. Trouba

    Trouba Administrator Staff Member

    The LastOS AppDisc Template has been updated (2017-07-23).

    Changes:

    - updated ssWPI to version 17.5.30.0
    - updated SetupS to version 17.3.25.0 (as part of ssWPI)
    - updated the Settings tool to version 17.7.13.0

    Download: See updated link in first post.
     
    The Freezer and Glenn like this.

Share This Page