mirror of
https://github.com/jamesstringer90/appsandbox.git
synced 2026-10-19 01:31:28 -05:00
Provisioning unification (R5): - disk_util.c delegates generate_unattend_vhdx / generate_vhdx_setup_cmd / generate_vhdx_setupcomplete to the shared tools/provision/win_provision.c, and stages AppSandboxSHM + NetKVM (existence-gated) in generate_vhdx_manifest. - Compile win_provision.c into AppSandboxCore.vcxproj. Win->Win output is equivalent (the SHM/NetKVM install steps are if-exist no-ops on a PC host). UTF-8 / non-ASCII credentials: - win_provision.c: encode the unattend <Password> as true UTF-16LE (was a UTF-8 byte zero-extend that corrupted non-ASCII/CJK passwords); ASCII unchanged. Plus case-insensitive locale-tag lookup and ComputerName truncation by UTF-8 code points (never splitting a multibyte char). - webview2_bridge.c json_get_string: decode JSON escapes (\uXXXX, \" \ ...) so non-ASCII values from the headless SDK (json.dumps/ensure_ascii) are no longer stored as literal \uXXXX text. Validated end-to-end: a CJK password now sets correctly and Windows authenticates against it. - disk_util.c wrapper: check the WideCharToMultiByte conversions. Also included in the working tree: - Reconcile user-mode .vcxproj platform toolset v145 -> v143 (VS2022). - WINDOWS_AGENT_BRIEF.md: correct stale driver-name/symbol/devcon references.
229 lines
12 KiB
XML
229 lines
12 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
<ItemGroup Label="ProjectConfigurations">
|
|
<ProjectConfiguration Include="Debug|ARM64">
|
|
<Configuration>Debug</Configuration>
|
|
<Platform>ARM64</Platform>
|
|
</ProjectConfiguration>
|
|
<ProjectConfiguration Include="Debug|x64">
|
|
<Configuration>Debug</Configuration>
|
|
<Platform>x64</Platform>
|
|
</ProjectConfiguration>
|
|
<ProjectConfiguration Include="Release|ARM64">
|
|
<Configuration>Release</Configuration>
|
|
<Platform>ARM64</Platform>
|
|
</ProjectConfiguration>
|
|
<ProjectConfiguration Include="Release|x64">
|
|
<Configuration>Release</Configuration>
|
|
<Platform>x64</Platform>
|
|
</ProjectConfiguration>
|
|
</ItemGroup>
|
|
<PropertyGroup Label="Globals">
|
|
<VCProjectVersion>17.0</VCProjectVersion>
|
|
<ProjectGuid>{8A7B6C5D-4E3F-2A1B-9C8D-7E6F5A4B3C2D}</ProjectGuid>
|
|
<RootNamespace>AppSandbox</RootNamespace>
|
|
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
|
</PropertyGroup>
|
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
|
|
<ConfigurationType>Application</ConfigurationType>
|
|
<UseDebugLibraries>true</UseDebugLibraries>
|
|
<PlatformToolset>v143</PlatformToolset>
|
|
<CharacterSet>Unicode</CharacterSet>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
|
<ConfigurationType>Application</ConfigurationType>
|
|
<UseDebugLibraries>true</UseDebugLibraries>
|
|
<PlatformToolset>v143</PlatformToolset>
|
|
<CharacterSet>Unicode</CharacterSet>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
|
|
<ConfigurationType>Application</ConfigurationType>
|
|
<UseDebugLibraries>false</UseDebugLibraries>
|
|
<PlatformToolset>v143</PlatformToolset>
|
|
<CharacterSet>Unicode</CharacterSet>
|
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
|
<ConfigurationType>Application</ConfigurationType>
|
|
<UseDebugLibraries>false</UseDebugLibraries>
|
|
<PlatformToolset>v143</PlatformToolset>
|
|
<CharacterSet>Unicode</CharacterSet>
|
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
</PropertyGroup>
|
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
<ImportGroup Label="ExtensionSettings">
|
|
</ImportGroup>
|
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="PropertySheets">
|
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
</ImportGroup>
|
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
</ImportGroup>
|
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="PropertySheets">
|
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
</ImportGroup>
|
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
</ImportGroup>
|
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
|
<OutDir>$(SolutionDir)bin\$(Configuration)-ARM64\</OutDir>
|
|
<IntDir>$(SolutionDir)obj\$(Configuration)-ARM64\</IntDir>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
<OutDir>$(SolutionDir)bin\$(Configuration)\</OutDir>
|
|
<IntDir>$(SolutionDir)obj\$(Configuration)\</IntDir>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
|
<OutDir>$(SolutionDir)bin\$(Configuration)-ARM64\</OutDir>
|
|
<IntDir>$(SolutionDir)obj\$(Configuration)-ARM64\</IntDir>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
<OutDir>$(SolutionDir)bin\$(Configuration)\</OutDir>
|
|
<IntDir>$(SolutionDir)obj\$(Configuration)\</IntDir>
|
|
</PropertyGroup>
|
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
|
<ClCompile>
|
|
<WarningLevel>Level4</WarningLevel>
|
|
<Optimization>Disabled</Optimization>
|
|
<PreprocessorDefinitions>_DEBUG;_WINDOWS;UNICODE;_UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
<SDLCheck>true</SDLCheck>
|
|
<ConformanceMode>true</ConformanceMode>
|
|
<CompileAs>CompileAsC</CompileAs>
|
|
<AdditionalIncludeDirectories>$(ProjectDir)src;$(ProjectDir)src\core;$(ProjectDir)src\app_win;$(ProjectDir)src\backend_win;$(ProjectDir)vendor\webview2</AdditionalIncludeDirectories>
|
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
|
</ClCompile>
|
|
<Link>
|
|
<SubSystem>Windows</SubSystem>
|
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
|
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
|
<AdditionalDependencies>appsandbox_core.lib;comdlg32.lib;d3d11.lib;dxgi.lib;d3dcompiler.lib;dxguid.lib;ole32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
</Link>
|
|
<PostBuildEvent>
|
|
<Command>xcopy /Y /I /E "$(SolutionDir)release\resources" "$(OutDir)resources"
|
|
xcopy /Y /I /E "$(SolutionDir)web" "$(OutDir)web"
|
|
xcopy /Y "$(SolutionDir)vendor\webview2\arm64\WebView2Loader.dll" "$(OutDir)."
|
|
xcopy /Y /I "$(SolutionDir)tools\win-mesa-gl\prebuilt\arm64\*.dll" "$(OutDir)resources\win-mesa-gl\"
|
|
</Command>
|
|
<Message>Copying resources, web UI, and WebView2Loader to output directory...</Message>
|
|
</PostBuildEvent>
|
|
</ItemDefinitionGroup>
|
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
<ClCompile>
|
|
<WarningLevel>Level4</WarningLevel>
|
|
<Optimization>Disabled</Optimization>
|
|
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;UNICODE;_UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
<SDLCheck>true</SDLCheck>
|
|
<ConformanceMode>true</ConformanceMode>
|
|
<CompileAs>CompileAsC</CompileAs>
|
|
<AdditionalIncludeDirectories>$(ProjectDir)src;$(ProjectDir)src\core;$(ProjectDir)src\app_win;$(ProjectDir)src\backend_win;$(ProjectDir)vendor\webview2</AdditionalIncludeDirectories>
|
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
|
</ClCompile>
|
|
<Link>
|
|
<SubSystem>Windows</SubSystem>
|
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
|
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
|
<AdditionalDependencies>appsandbox_core.lib;comdlg32.lib;d3d11.lib;dxgi.lib;d3dcompiler.lib;dxguid.lib;ole32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
</Link>
|
|
<PostBuildEvent>
|
|
<Command>xcopy /Y /I /E "$(SolutionDir)release\resources" "$(OutDir)resources"
|
|
xcopy /Y /I /E "$(SolutionDir)web" "$(OutDir)web"
|
|
xcopy /Y "$(SolutionDir)vendor\webview2\x64\WebView2Loader.dll" "$(OutDir)."
|
|
xcopy /Y /I "$(SolutionDir)tools\win-mesa-gl\prebuilt\x64\*.dll" "$(OutDir)resources\win-mesa-gl\"
|
|
</Command>
|
|
<Message>Copying resources, web UI, and WebView2Loader to output directory...</Message>
|
|
</PostBuildEvent>
|
|
</ItemDefinitionGroup>
|
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
|
<ClCompile>
|
|
<WarningLevel>Level4</WarningLevel>
|
|
<Optimization>MaxSpeed</Optimization>
|
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
<PreprocessorDefinitions>NDEBUG;_WINDOWS;UNICODE;_UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
<SDLCheck>true</SDLCheck>
|
|
<ConformanceMode>true</ConformanceMode>
|
|
<CompileAs>CompileAsC</CompileAs>
|
|
<AdditionalIncludeDirectories>$(ProjectDir)src;$(ProjectDir)src\core;$(ProjectDir)src\app_win;$(ProjectDir)src\backend_win;$(ProjectDir)vendor\webview2</AdditionalIncludeDirectories>
|
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
|
</ClCompile>
|
|
<Link>
|
|
<SubSystem>Windows</SubSystem>
|
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
<OptimizeReferences>true</OptimizeReferences>
|
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
|
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
|
<AdditionalDependencies>appsandbox_core.lib;comdlg32.lib;d3d11.lib;dxgi.lib;d3dcompiler.lib;dxguid.lib;ole32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
</Link>
|
|
<PostBuildEvent>
|
|
<Command>xcopy /Y /I /E "$(SolutionDir)release\resources" "$(OutDir)resources"
|
|
xcopy /Y /I /E "$(SolutionDir)web" "$(OutDir)web"
|
|
xcopy /Y "$(SolutionDir)vendor\webview2\arm64\WebView2Loader.dll" "$(OutDir)."
|
|
xcopy /Y /I "$(SolutionDir)tools\win-mesa-gl\prebuilt\arm64\*.dll" "$(OutDir)resources\win-mesa-gl\"
|
|
</Command>
|
|
<Message>Copying resources, web UI, and WebView2Loader to output directory...</Message>
|
|
</PostBuildEvent>
|
|
</ItemDefinitionGroup>
|
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
<ClCompile>
|
|
<WarningLevel>Level4</WarningLevel>
|
|
<Optimization>MaxSpeed</Optimization>
|
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;UNICODE;_UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
<SDLCheck>true</SDLCheck>
|
|
<ConformanceMode>true</ConformanceMode>
|
|
<CompileAs>CompileAsC</CompileAs>
|
|
<AdditionalIncludeDirectories>$(ProjectDir)src;$(ProjectDir)src\core;$(ProjectDir)src\app_win;$(ProjectDir)src\backend_win;$(ProjectDir)vendor\webview2</AdditionalIncludeDirectories>
|
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
|
</ClCompile>
|
|
<Link>
|
|
<SubSystem>Windows</SubSystem>
|
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
<OptimizeReferences>true</OptimizeReferences>
|
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
|
|
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
|
<AdditionalDependencies>appsandbox_core.lib;comdlg32.lib;d3d11.lib;dxgi.lib;d3dcompiler.lib;dxguid.lib;ole32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
</Link>
|
|
<PostBuildEvent>
|
|
<Command>xcopy /Y /I /E "$(SolutionDir)release\resources" "$(OutDir)resources"
|
|
xcopy /Y /I /E "$(SolutionDir)web" "$(OutDir)web"
|
|
xcopy /Y "$(SolutionDir)vendor\webview2\x64\WebView2Loader.dll" "$(OutDir)."
|
|
xcopy /Y /I "$(SolutionDir)tools\win-mesa-gl\prebuilt\x64\*.dll" "$(OutDir)resources\win-mesa-gl\"
|
|
</Command>
|
|
<Message>Copying resources, web UI, and WebView2Loader to output directory...</Message>
|
|
</PostBuildEvent>
|
|
</ItemDefinitionGroup>
|
|
<ItemGroup>
|
|
<ClCompile Include="src\app_win\main.c" />
|
|
<ClCompile Include="src\app_win\ui.c" />
|
|
<ClCompile Include="src\backend_win\vm_display.c" />
|
|
<ClCompile Include="src\backend_win\vm_display_idd.c" />
|
|
<ClCompile Include="src\app_win\webview2_bridge.c" />
|
|
<ClCompile Include="src\app_win\headless.c" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<ClInclude Include="src\app_win\resource.h" />
|
|
<ClInclude Include="src\app_win\ui.h" />
|
|
<ClInclude Include="src\backend_win\asb_core.h" />
|
|
<ClInclude Include="src\backend_win\asb_display.h" />
|
|
<ClInclude Include="src\app_win\webview2_bridge.h" />
|
|
<ClInclude Include="src\app_win\headless.h" />
|
|
<ClInclude Include="src\backend_win\hcs_vm.h" />
|
|
<ClInclude Include="src\backend_win\hcn_network.h" />
|
|
<ClInclude Include="src\backend_win\snapshot.h" />
|
|
<ClInclude Include="src\backend_win\vm_display.h" />
|
|
<ClInclude Include="src\backend_win\vm_display_idd.h" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<ResourceCompile Include="src\app_win\appsandbox.rc" />
|
|
</ItemGroup>
|
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
<ImportGroup Label="ExtensionTargets">
|
|
</ImportGroup>
|
|
</Project>
|