{"id":6926,"date":"2026-01-01T15:28:13","date_gmt":"2026-01-01T23:28:13","guid":{"rendered":"https:\/\/wonghoi.humgar.com\/blog\/?p=6926"},"modified":"2026-01-01T15:46:44","modified_gmt":"2026-01-01T23:46:44","slug":"windows-subsystem-for-android-fine-tuning-notes","status":"publish","type":"post","link":"https:\/\/wonghoi.humgar.com\/blog\/2026\/01\/01\/windows-subsystem-for-android-fine-tuning-notes\/","title":{"rendered":"Windows Subsystem for Android (Fine-tuning) Notes"},"content":{"rendered":"\n<p>There are many forks of WSA. For this blog post, I&#8217;ll assume this popular variant that&#8217;s the most updated<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/MustardChef\/WSABuilds\">https:\/\/github.com\/MustardChef\/WSABuilds<\/a><\/p>\n\n\n\n<p>The common use case starts the program with <code>Run.bat<\/code> which is just a wrapper for the powershell script <code>Install.ps1<\/code>. <\/p>\n\n\n\n<p>Unlike conventional designs, there isn&#8217;t really a dedicated installer nor the program runs standalone. The launcher starts the WSA if it&#8217;s already &#8216;installed&#8217; and &#8216;install&#8217; it if it wasn&#8217;t. If a WSA was launched, it&#8217;d be closed and restarted (yes, it will interrupt the apps opened). So you basically trust the <code>Install.ps1<\/code> script to do the right thing managing everything needed to get WSA up and running.<\/p>\n\n\n\n<p>The Hyper-V virtual machine is really in <code>%LOCALAPPDATA%\\Packages\\MicrosoftCorporationII.WindowsSubsystemForAndroid_8wekyb3d8bbwe\\LocalCache\\<\/code> and everything is in <code>userdata.*.vhdx<\/code> so there&#8217;s only one file to backup and restore.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Direct Android App icons on Windows Start Menu<\/h2>\n\n\n\n<p>The Windows start menu icons created by installing apps on WSA are launching the stub (App execution alias) to <code>wsaclient.exe<\/code> located in <code>%localappdata%\\Microsoft\\WindowsApps\\MicrosoftCorporationII.WindowsSubsystemForAndroid_8wekyb3d8bbwe\\<\/code> <\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"553\" height=\"398\" src=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2026\/01\/image-1.png\" alt=\"\" class=\"wp-image-6928\" style=\"aspect-ratio:1.3758892819655562;width:325px;height:auto\" srcset=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2026\/01\/image-1.png 553w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2026\/01\/image-1-300x216.png 300w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2026\/01\/image-1-417x300.png 417w\" sizes=\"auto, (max-width: 553px) 100vw, 553px\" \/><\/figure>\n\n\n\n<p>Specifically the syntax is <code>wsaclient \/launch wsa:\/\/{android application ID}<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Annoying windows\/apps opened every time WSA (Run.bat) is started<\/h2>\n\n\n\n<p>It&#8217;d make sense to say if WSA displays nothing after successfully starting in the background, beginners won&#8217;t know where to start. It typically starts these<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>native Windows WSA settings app (Microsoft App, not Android App)<\/li>\n\n\n\n<li>Google Play store (Android app)<\/li>\n\n\n\n<li>Android Settings app (Android app)<\/li>\n<\/ul>\n\n\n\n<p>If you installed the WSA with KernelSU, a webpage with the docs about KernelSU pops up every single time you start the WSA, which is ridiculous.<\/p>\n\n\n\n<p>Turns out it&#8217;s these lines (the Finish block) in <code>Install.ps1<\/code>&#8216;s design decisions. I simply commented these nusiances out now that I know where and how to launch them when needed<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"197\" src=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2026\/01\/image-2-1024x197.png\" alt=\"\" class=\"wp-image-6931\" srcset=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2026\/01\/image-2-1024x197.png 1024w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2026\/01\/image-2-300x58.png 300w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2026\/01\/image-2-768x148.png 768w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2026\/01\/image-2-500x96.png 500w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2026\/01\/image-2.png 1374w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Creating icons to Android apps<\/h2>\n\n\n\n<p>Google Play app is usually created by WSA, but not the Android-Settings Android app and WSA-Settings Windows App. Disabling these above means I&#8217;ll have to make the icons to them since they are the starting points to managing the emulated Android system.<\/p>\n\n\n\n<p>If you forget Windows Apps are different from Windows programs like I do, you should right click on the WSA-Settings Windows App and make a shortcut icon out of it to be used on the Windows Desktop or Start Menu.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"410\" src=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2026\/01\/image-4-1024x410.png\" alt=\"\" class=\"wp-image-6933\" srcset=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2026\/01\/image-4-1024x410.png 1024w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2026\/01\/image-4-300x120.png 300w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2026\/01\/image-4-768x307.png 768w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2026\/01\/image-4-500x200.png 500w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2026\/01\/image-4.png 1162w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Android-Settings Android app icon can be created from this command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>%LocalAppData%\\Microsoft\\WindowsApps\\MicrosoftCorporationII.WindowsSubsystemForAndroid_8wekyb3d8bbwe\\WsaClient.exe \/launch wsa:\/\/com.android.settings<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">WSA Sideloader<\/h2>\n\n\n\n<p>Since WSA doesn&#8217;t come with many apps. If you don&#8217;t want to login to your Google account to use Play store, you can download the APKs (say Apkpure) and sideload it with WSA Sideloader. It&#8217;s avaiable <\/p>\n\n\n\n<p>As Windows App: <a href=\"https:\/\/apps.microsoft.com\/detail\/9nmfsjb25qjr?hl=en-US&amp;gl=US\">https:\/\/apps.microsoft.com\/detail\/9nmfsjb25qjr?hl=en-US&amp;gl=US<\/a><\/p>\n\n\n\n<p>As Windows Installer: <a href=\"https:\/\/github.com\/infinitepower18\/WSA-Sideloader\/releases\">https:\/\/github.com\/infinitepower18\/WSA-Sideloader\/releases<\/a><\/p>\n\n\n\n<p>You will have to turn on Developer Mode in the WSA-Settings Windows App first<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"242\" src=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2026\/01\/image-5-1024x242.png\" alt=\"\" class=\"wp-image-6935\" srcset=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2026\/01\/image-5-1024x242.png 1024w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2026\/01\/image-5-300x71.png 300w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2026\/01\/image-5-768x181.png 768w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2026\/01\/image-5-500x118.png 500w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2026\/01\/image-5.png 1173w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>and allow ADB debugging (since this is how sideloading works) when prompted.<\/p>\n\n\n\n<p><\/p>\n<div class=\"pvc_clear\"><\/div><p id=\"pvc_stats_6926\" class=\"pvc_stats all  \" data-element-id=\"6926\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p><div class=\"pvc_clear\"><\/div>","protected":false},"excerpt":{"rendered":"<p>There are many forks of WSA. For this blog post, I&#8217;ll assume this popular variant that&#8217;s the most updated https:\/\/github.com\/MustardChef\/WSABuilds The common use case starts the program with Run.bat which is just a wrapper for the powershell script Install.ps1. Unlike &hellip; <a href=\"https:\/\/wonghoi.humgar.com\/blog\/2026\/01\/01\/windows-subsystem-for-android-fine-tuning-notes\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_6926\" class=\"pvc_stats all  \" data-element-id=\"6926\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[66,1,70,4],"tags":[],"class_list":["post-6926","post","type-post","status-publish","format-standard","hentry","category-android","category-uncategorized","category-vm","category-windows"],"_links":{"self":[{"href":"https:\/\/wonghoi.humgar.com\/blog\/wp-json\/wp\/v2\/posts\/6926","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wonghoi.humgar.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wonghoi.humgar.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wonghoi.humgar.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wonghoi.humgar.com\/blog\/wp-json\/wp\/v2\/comments?post=6926"}],"version-history":[{"count":5,"href":"https:\/\/wonghoi.humgar.com\/blog\/wp-json\/wp\/v2\/posts\/6926\/revisions"}],"predecessor-version":[{"id":6937,"href":"https:\/\/wonghoi.humgar.com\/blog\/wp-json\/wp\/v2\/posts\/6926\/revisions\/6937"}],"wp:attachment":[{"href":"https:\/\/wonghoi.humgar.com\/blog\/wp-json\/wp\/v2\/media?parent=6926"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wonghoi.humgar.com\/blog\/wp-json\/wp\/v2\/categories?post=6926"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wonghoi.humgar.com\/blog\/wp-json\/wp\/v2\/tags?post=6926"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}