Preface:
Worthwhile to know is that WSA is a Hosted OS what runs on Top Of Windows OS
so it shares all hardware resources with Windows OS, really all.
As in every Android OS - so also in WSA emulator - exist files what contain all the important information and command lines to identify the device and to make it run smoothly along side, they basically are named build.prop and/or default.prop and may be located in different partitions. These setting files are read by the Android kernel and also by apps thus they can mend their interface and their functionality to have a smooth interface between user and apps. These files also contain the build number, manufacturer name and other essential information to identify the emulated Android device distinctly.
In WSA w/ Android 11 image these settings are split into several files what are scattered over various locations: root, root/vendor and root/product. In WSA w/ Android 13 image these settings also are split into several files what are scattered over into 2 locations: root, root/vendor.
Prerequisite:
WSA's Android image must got rooted. This in order to can mount the related partitions where the settings files are housed as RW.
Overview:
Android settings in WSA w/ Android 11 image:
For those who are interested in these setting files I've extracted them from WSA w/ Android 11 image and attached:
File: /build.prop -> attached build.prop.zip
Here is printout of this build.prop file
File: /default.prop -> attached default.prop.zip
File: /vendor/build.prop -> attached vendor.build.prop..zip
File: /vendor/default.prop -> attached vendor.default.prop.zip
File: /product/build.prop -> attached product.build.prop,zip
In WSA w/ Android 11 image also additionally exists file prop.default what isn't of interest here: it's merely a backup of file root/default.prop.
Android settings in WSA w/ Android 13 image:
In WSA w/ Android 13 image only 2 file /build.prop & /vendor/build.prop exist.
File: /build.prop -> attached 13-build.prop.zip
Here is printout of this build.prop file - extracted from WSA w/ Android 13 image
File: /vendor/build.prop -> attached 13-vendor.build.prop.zip
Here is printout of this build.prop file - extracted from WSA w/ Android 13 image
Take note that settings stored in /vendor/build.prop files take precedence over those stored in default.prop and/or /system/build.prop if they also exist there.
As one can notice contents of build.prop as provided w/ Android 11 image and w/ Android 13 image heavily differ.
Tweaking - Relates to WSA w/ Android 13 image:
We all know Android is the best platform that offers to customize everything. Each operating system has its own config file and All function is stored in the build. prop file, but also in /vendor/build.prop. So changing the /vendor/build. prop file will change the WSA core functioning values. You can tweak your WSA without installing any 3rd party apps or mods, just need root access to edit /vendor/build. prop on WSA emulator.
We know that WSA isn't a smartphone, it's merely an Android emulator that can connect to computer's local Wi-Fi network, hence it's not so much what can get tweaked. But we can try it:
1. Raise RAM Useable by App
Android limits memory per process. Todays apps often require hundreds of MBs of available RAM for exclusive use to flawlessly run. So we give them ( at maximum ) 512 MB - alike Samsung Galaxy S6 SM-G920W8.
dalvik.vm.dex2oat-Xmx=512m
ro.media.enc.jpeg.quality=100
ro.media.dec.jpeg.memcap=8000000
ro.media.enc.hprof.vid.bps=8000000
ro.media.capture.maxres=8m
ro.media.panorama.defres=3264×1840
ro.media.panorama.frameres=1280×720
ro.camcorder.videoModes=true
ro.media.enc.hprof.vid.fps=65
net.tcp.buffersize.default=4096,87380,256960,4096, 16384,256960
net.tcp.buffersize.wifi=4096,87380,256960,4096,163 84,256960
net.tcp.buffersize.umts=4096,87380,256960,4096,163 84,256960
net.tcp.buffersize.gprs=4096,87380,256960,4096,163 84,256960
net.tcp.buffersize.edge=4096,87380,256960,4096,163 84,256960
net.dns1=8.8.8.8
net.dns2=8.8.4.4
profiler.force_disable_err_rpt=1
profiler.force_disable_ulog=1
If you set low DPI then the output is a larger UI, larger texts, and larger icons. Always set a perfect DPI otherwise you can’t operate WSA. Add the following line to the end of the /vendor/build.prop.
ro.sf.lcd_density=XXX
Here, XXX refers to the DPI Value. The values are a multiple of 160, That is, 160, 320, 480, 640, etc. XXX replace with a value you like.
logcat.live=disable
7. Make sure USB-MTP mode is enabled.
Add the following line to the end of the /vendor/build.prop.
persist.sys.usb.config=adb,mtp
8. Ensure ADB is debuggable
Add the following lines to the end of the /vendor/build.prop.
persist.service.adb.enable=1
persist.service.debuggable1
9. Enable Faster boot.
Paste the following code at the bottom of the /vendor/build.prop:
ro.config.hw_quickpoweron=true
persist.sys.shutdown.mode=hibernate
10. Improve the speed of video streaming.
Add the following lines to the bottom of the /vendor/build.prop:
media.stagefright.enable-player=true
media.stagefright.enable-meta=true
media.stagefright.enable-scan=true
media.stagefright.enable-http=true
media.stagefright.enable-rtsp=true
media.stagefright.enable-record=false
11. Set Wireless & TCP Speed.
Paste the following code at the bottom of the /vendor/build.prop:
net.core.wmem_max=1048576
net.core.rmem_max=1048576
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.optmem_max=20480
net.unix.max_dgram_qlen=50
12. Set number of CPU-cores to be used
It should be well known that WSA emulator shares the Windows computer's hardware resources, so both RAM and CPU. The RAM usage is fixed to 4 GB ( what can't be changed AFAIK ), the number of virtual CPU cores is not. We may have to configure how the virtual CPUs are assigned in terms of real CPU cores and cores per socket,
Note: You may use Windows Command Prompt to get the number of real CPU cores
IMO it's recommnded to determine the half of real CPU cores as virtual CPU cores. Example:
ro.core_ctl_min_cpu=1
ro.core_ctl_max_cpu=4
Conclusion:
I’m sure that several people will try out tweaking WSA settings as mentioned above. For that reason I've created a batch file named wsa_buildprop_tweaker that'll do the job:
It's for your convenience attached.
Worthwhile to know is that WSA is a Hosted OS what runs on Top Of Windows OS
so it shares all hardware resources with Windows OS, really all.
As in every Android OS - so also in WSA emulator - exist files what contain all the important information and command lines to identify the device and to make it run smoothly along side, they basically are named build.prop and/or default.prop and may be located in different partitions. These setting files are read by the Android kernel and also by apps thus they can mend their interface and their functionality to have a smooth interface between user and apps. These files also contain the build number, manufacturer name and other essential information to identify the emulated Android device distinctly.
In WSA w/ Android 11 image these settings are split into several files what are scattered over various locations: root, root/vendor and root/product. In WSA w/ Android 13 image these settings also are split into several files what are scattered over into 2 locations: root, root/vendor.
Prerequisite:
WSA's Android image must got rooted. This in order to can mount the related partitions where the settings files are housed as RW.
Overview:
Android settings in WSA w/ Android 11 image:
For those who are interested in these setting files I've extracted them from WSA w/ Android 11 image and attached:
File: /build.prop -> attached build.prop.zip
Here is printout of this build.prop file
# begin common build properties
# autogenerated by build/make/tools/buildinfo_common.sh
ro.system.build.date=Tue Aug 24 22:34:56 UTC 2021
ro.system.build.date.utc=1629844496
ro.system.build.fingerprint=google/redfin/redfin:12/SPB5.210812.002/7671067:user/release-keys
ro.system.build.id=SPB5.210812.002
ro.system.build.tags=release-keys
ro.system.build.type=user
ro.system.build.version.incremental=7671067
ro.system.build.version.release=11
ro.system.build.version.release_or_codename=11
ro.system.build.version.sdk=30
ro.product.system.brand=google
ro.product.system.device=generic
ro.product.system.manufacturer=Google
ro.product.system.model=mainline
ro.product.system.name=mainline
# end common build properties
# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=SPB5.210812.002
ro.build.display.id=SPB5.210812.002
ro.build.version.incremental=7671067
ro.build.version.sdk=30
ro.build.version.preview_sdk=0
ro.build.version.preview_sdk_fingerprint=REL
ro.build.version.codename=REL
ro.build.version.all_codenames=REL
ro.build.version.release=11
ro.build.version.release_or_codename=11
ro.build.version.security_patch=2021-09-05
ro.build.version.base_os=
ro.build.version.min_supported_target_sdk=23
ro.build.date=Tue Aug 24 22:34:56 UTC 2021
ro.build.date.utc=1629844496
ro.build.type=user
ro.build.user=android-build
ro.build.host=abfarm807
ro.build.tags=release-keys
ro.build.flavor=redfin-user
ro.build.system_root_image=false
# ro.product.cpu.abi and ro.product.cpu.abi2 are obsolete,
# use ro.product.cpu.abilist instead.
ro.product.cpu.abi=x86_64
ro.product.cpu.abilist=x86_64,x86,arm64-v8a,armeabi-v7a,armeabi
ro.product.cpu.abilist32=x86,armeabi-v7a,armeabi
ro.product.cpu.abilist64=x86_64,arm64-v8a
ro.product.locale=en-US
ro.wifi.channels=
# ro.build.product is obsolete; use ro.product.device
ro.build.product=redfin
# Do not try to parse description or thumbprint
ro.build.description=redfin-user 12 SPB5.210812.002 7671067 release-keys
# end build properties
#
# ADDITIONAL_BUILD_PROPERTIES
#
ro.treble.enabled=true
net.bt.name=Android
ro.build.fingerprint=google/redfin/redfin:12/SPB5.210812.002/7671067:user/release-keys
ro.product.brand=google
ro.product.device=redfin
ro.product.manufacturer=Google
ro.product.model=Pixel 5
ro.product.name=redfin
# autogenerated by build/make/tools/buildinfo_common.sh
ro.system.build.date=Tue Aug 24 22:34:56 UTC 2021
ro.system.build.date.utc=1629844496
ro.system.build.fingerprint=google/redfin/redfin:12/SPB5.210812.002/7671067:user/release-keys
ro.system.build.id=SPB5.210812.002
ro.system.build.tags=release-keys
ro.system.build.type=user
ro.system.build.version.incremental=7671067
ro.system.build.version.release=11
ro.system.build.version.release_or_codename=11
ro.system.build.version.sdk=30
ro.product.system.brand=google
ro.product.system.device=generic
ro.product.system.manufacturer=Google
ro.product.system.model=mainline
ro.product.system.name=mainline
# end common build properties
# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=SPB5.210812.002
ro.build.display.id=SPB5.210812.002
ro.build.version.incremental=7671067
ro.build.version.sdk=30
ro.build.version.preview_sdk=0
ro.build.version.preview_sdk_fingerprint=REL
ro.build.version.codename=REL
ro.build.version.all_codenames=REL
ro.build.version.release=11
ro.build.version.release_or_codename=11
ro.build.version.security_patch=2021-09-05
ro.build.version.base_os=
ro.build.version.min_supported_target_sdk=23
ro.build.date=Tue Aug 24 22:34:56 UTC 2021
ro.build.date.utc=1629844496
ro.build.type=user
ro.build.user=android-build
ro.build.host=abfarm807
ro.build.tags=release-keys
ro.build.flavor=redfin-user
ro.build.system_root_image=false
# ro.product.cpu.abi and ro.product.cpu.abi2 are obsolete,
# use ro.product.cpu.abilist instead.
ro.product.cpu.abi=x86_64
ro.product.cpu.abilist=x86_64,x86,arm64-v8a,armeabi-v7a,armeabi
ro.product.cpu.abilist32=x86,armeabi-v7a,armeabi
ro.product.cpu.abilist64=x86_64,arm64-v8a
ro.product.locale=en-US
ro.wifi.channels=
# ro.build.product is obsolete; use ro.product.device
ro.build.product=redfin
# Do not try to parse description or thumbprint
ro.build.description=redfin-user 12 SPB5.210812.002 7671067 release-keys
# end build properties
#
# ADDITIONAL_BUILD_PROPERTIES
#
ro.treble.enabled=true
net.bt.name=Android
ro.build.fingerprint=google/redfin/redfin:12/SPB5.210812.002/7671067:user/release-keys
ro.product.brand=google
ro.product.device=redfin
ro.product.manufacturer=Google
ro.product.model=Pixel 5
ro.product.name=redfin
File: /default.prop -> attached default.prop.zip
File: /vendor/build.prop -> attached vendor.build.prop..zip
File: /vendor/default.prop -> attached vendor.default.prop.zip
File: /product/build.prop -> attached product.build.prop,zip
In WSA w/ Android 11 image also additionally exists file prop.default what isn't of interest here: it's merely a backup of file root/default.prop.
Android settings in WSA w/ Android 13 image:
In WSA w/ Android 13 image only 2 file /build.prop & /vendor/build.prop exist.
File: /build.prop -> attached 13-build.prop.zip
Here is printout of this build.prop file - extracted from WSA w/ Android 13 image
####################################
# from generate-common-build-props
# These properties identify this partition image.
####################################
ro.product.system.brand=google
ro.product.system.device=redfin
ro.product.system.manufacturer=Google
ro.product.system.model=Pixel 5
ro.product.system.name=redfin
ro.system.product.cpu.abilist=x86_64,x86,arm64-v8a,armeabi-v7a,armeabi
ro.system.product.cpu.abilist32=x86,armeabi-v7a,armeabi
ro.system.product.cpu.abilist64=x86_64,arm64-v8a
ro.system.build.date=Wed Dec 14 02:14:23 UTC 2022
ro.system.build.date.utc=1670984063
ro.system.build.fingerprint=google/redfin/redfin:13/TP1A.221105.002/2211.40000.10.0:user/release-keys
ro.system.build.id=TP1A.221105.002
ro.system.build.tags=release-keys
ro.system.build.type=user
ro.system.build.version.incremental=2211.40000.10.0
ro.system.build.version.release=13
ro.system.build.version.release_or_codename=13
ro.system.build.version.sdk=33
####################################
# from out/target/product/windows_x86_64/obj/PACKAGING/system_build_prop_intermediates/buildinfo.prop
####################################
# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=TP1A.221105.002
ro.build.display.id=TP1A.221105.002
ro.build.version.incremental=2211.40000.10.0
ro.build.version.sdk=33
ro.build.version.preview_sdk=0
ro.build.version.preview_sdk_fingerprint=REL
ro.build.version.codename=REL
ro.build.version.all_codenames=REL
ro.build.version.known_codenames=Base,Base11,Cupcake,Donut,Eclair,Eclair01,EclairMr1,Froyo,Gingerbread,GingerbreadMr1,Honeycomb,HoneycombMr1,HoneycombMr2,IceCreamSandwich,IceCreamSandwichMr1,JellyBean,JellyBeanMr1,JellyBeanMr2,Kitkat,KitkatWatch,Lollipop,LollipopMr1,M,N,NMr1,O,OMr1,P,Q,R,S,Sv2,Tiramisu
ro.build.version.release=13
ro.build.version.release_or_codename=13
ro.build.version.release_or_preview_display=13
ro.build.version.security_patch=2022-11-05
ro.build.version.base_os=
ro.build.version.min_supported_target_sdk=23
ro.build.date=Wed Dec 14 02:14:23 UTC 2022
ro.build.date.utc=1670984063
ro.build.type=user
ro.build.user=cloudtest
ro.build.host=8f3cde02c000000
ro.build.tags=release-keys
ro.build.flavor=redfin-user
ro.build.system_root_image=false
# ro.product.cpu.abi and ro.product.cpu.abi2 are obsolete,
# use ro.product.cpu.abilist instead.
ro.product.cpu.abi=x86_64
ro.product.locale=en-US
ro.wifi.channels=
# ro.build.product is obsolete; use ro.product.device
ro.build.product=redfin
# Do not try to parse description or thumbprint
ro.build.description=redfin-user 13 TP1A.221105.002 2211.40000.10.0 release-keys
# end build properties
####################################
# from variable ADDITIONAL_SYSTEM_PROPERTIES
####################################
ro.treble.enabled=true
ro.actionable_compatible_property.enabled=true
ro.postinstall.fstab.prefix=/system
ro.secure=1
security.perf_harden=1
ro.adb.secure=1
ro.allow.mock.location=0
ro.debuggable=0
net.bt.name=Android
####################################
# from variable PRODUCT_SYSTEM_PROPERTIES
####################################
debug.atrace.tags.enableflags=0
persist.traced.enable=1
dalvik.vm.image-dex2oat-Xms=64m
dalvik.vm.image-dex2oat-Xmx=64m
dalvik.vm.dex2oat-Xms=64m
dalvik.vm.dex2oat-Xmx=512m
dalvik.vm.usejit=true
dalvik.vm.usejitprofiles=true
dalvik.vm.dexopt.secondary=true
dalvik.vm.dexopt.thermal-cutoff=2
dalvik.vm.appimageformat=lz4
ro.dalvik.vm.native.bridge=0
pm.dexopt.first-boot=verify
pm.dexopt.boot-after-ota=verify
pm.dexopt.post-boot=extract
pm.dexopt.install=speed-profile
pm.dexopt.install-fast=skip
pm.dexopt.install-bulk=speed-profile
pm.dexopt.install-bulk-secondary=verify
pm.dexopt.install-bulk-downgraded=verify
pm.dexopt.install-bulk-secondary-downgraded=extract
pm.dexopt.bg-dexopt=speed-profile
pm.dexopt.ab-ota=speed-profile
pm.dexopt.inactive=verify
pm.dexopt.cmdline=verify
pm.dexopt.shared=speed
dalvik.vm.dex2oat-resolve-startup-strings=true
dalvik.vm.dex2oat-max-image-block-size=524288
dalvik.vm.minidebuginfo=true
dalvik.vm.dex2oat-minidebuginfo=true
dalvik.vm.madvise.vdexfile.size=104857600
dalvik.vm.madvise.odexfile.size=104857600
dalvik.vm.madvise.artfile.size=4294967295
####################################
# from variable PRODUCT_SYSTEM_DEFAULT_PROPERTIES
####################################
# end of file
# extra prop added by MagiskOnWSA
ro.product.brand=google
ro.product.manufacturer=Google
ro.system.build.product=redfin
ro.product.name=redfin
ro.product.device=redfin
ro.product.model=Pixel 5
ro.system.build.flavor=redfin-user
ro.build.fingerprint=google/redfin/redfin:13/TP1A.221105.002/2211.40000.10.0:user/release-keys
ro.system.build.description=redfin-user 13 TP1A.221105.002 2211.40000.10.0 release-keys
ro.bootimage.build.fingerprint=google/redfin/redfin:13/TP1A.221105.002/2211.40000.10.0:user/release-keys
# from generate-common-build-props
# These properties identify this partition image.
####################################
ro.product.system.brand=google
ro.product.system.device=redfin
ro.product.system.manufacturer=Google
ro.product.system.model=Pixel 5
ro.product.system.name=redfin
ro.system.product.cpu.abilist=x86_64,x86,arm64-v8a,armeabi-v7a,armeabi
ro.system.product.cpu.abilist32=x86,armeabi-v7a,armeabi
ro.system.product.cpu.abilist64=x86_64,arm64-v8a
ro.system.build.date=Wed Dec 14 02:14:23 UTC 2022
ro.system.build.date.utc=1670984063
ro.system.build.fingerprint=google/redfin/redfin:13/TP1A.221105.002/2211.40000.10.0:user/release-keys
ro.system.build.id=TP1A.221105.002
ro.system.build.tags=release-keys
ro.system.build.type=user
ro.system.build.version.incremental=2211.40000.10.0
ro.system.build.version.release=13
ro.system.build.version.release_or_codename=13
ro.system.build.version.sdk=33
####################################
# from out/target/product/windows_x86_64/obj/PACKAGING/system_build_prop_intermediates/buildinfo.prop
####################################
# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=TP1A.221105.002
ro.build.display.id=TP1A.221105.002
ro.build.version.incremental=2211.40000.10.0
ro.build.version.sdk=33
ro.build.version.preview_sdk=0
ro.build.version.preview_sdk_fingerprint=REL
ro.build.version.codename=REL
ro.build.version.all_codenames=REL
ro.build.version.known_codenames=Base,Base11,Cupcake,Donut,Eclair,Eclair01,EclairMr1,Froyo,Gingerbread,GingerbreadMr1,Honeycomb,HoneycombMr1,HoneycombMr2,IceCreamSandwich,IceCreamSandwichMr1,JellyBean,JellyBeanMr1,JellyBeanMr2,Kitkat,KitkatWatch,Lollipop,LollipopMr1,M,N,NMr1,O,OMr1,P,Q,R,S,Sv2,Tiramisu
ro.build.version.release=13
ro.build.version.release_or_codename=13
ro.build.version.release_or_preview_display=13
ro.build.version.security_patch=2022-11-05
ro.build.version.base_os=
ro.build.version.min_supported_target_sdk=23
ro.build.date=Wed Dec 14 02:14:23 UTC 2022
ro.build.date.utc=1670984063
ro.build.type=user
ro.build.user=cloudtest
ro.build.host=8f3cde02c000000
ro.build.tags=release-keys
ro.build.flavor=redfin-user
ro.build.system_root_image=false
# ro.product.cpu.abi and ro.product.cpu.abi2 are obsolete,
# use ro.product.cpu.abilist instead.
ro.product.cpu.abi=x86_64
ro.product.locale=en-US
ro.wifi.channels=
# ro.build.product is obsolete; use ro.product.device
ro.build.product=redfin
# Do not try to parse description or thumbprint
ro.build.description=redfin-user 13 TP1A.221105.002 2211.40000.10.0 release-keys
# end build properties
####################################
# from variable ADDITIONAL_SYSTEM_PROPERTIES
####################################
ro.treble.enabled=true
ro.actionable_compatible_property.enabled=true
ro.postinstall.fstab.prefix=/system
ro.secure=1
security.perf_harden=1
ro.adb.secure=1
ro.allow.mock.location=0
ro.debuggable=0
net.bt.name=Android
####################################
# from variable PRODUCT_SYSTEM_PROPERTIES
####################################
debug.atrace.tags.enableflags=0
persist.traced.enable=1
dalvik.vm.image-dex2oat-Xms=64m
dalvik.vm.image-dex2oat-Xmx=64m
dalvik.vm.dex2oat-Xms=64m
dalvik.vm.dex2oat-Xmx=512m
dalvik.vm.usejit=true
dalvik.vm.usejitprofiles=true
dalvik.vm.dexopt.secondary=true
dalvik.vm.dexopt.thermal-cutoff=2
dalvik.vm.appimageformat=lz4
ro.dalvik.vm.native.bridge=0
pm.dexopt.first-boot=verify
pm.dexopt.boot-after-ota=verify
pm.dexopt.post-boot=extract
pm.dexopt.install=speed-profile
pm.dexopt.install-fast=skip
pm.dexopt.install-bulk=speed-profile
pm.dexopt.install-bulk-secondary=verify
pm.dexopt.install-bulk-downgraded=verify
pm.dexopt.install-bulk-secondary-downgraded=extract
pm.dexopt.bg-dexopt=speed-profile
pm.dexopt.ab-ota=speed-profile
pm.dexopt.inactive=verify
pm.dexopt.cmdline=verify
pm.dexopt.shared=speed
dalvik.vm.dex2oat-resolve-startup-strings=true
dalvik.vm.dex2oat-max-image-block-size=524288
dalvik.vm.minidebuginfo=true
dalvik.vm.dex2oat-minidebuginfo=true
dalvik.vm.madvise.vdexfile.size=104857600
dalvik.vm.madvise.odexfile.size=104857600
dalvik.vm.madvise.artfile.size=4294967295
####################################
# from variable PRODUCT_SYSTEM_DEFAULT_PROPERTIES
####################################
# end of file
# extra prop added by MagiskOnWSA
ro.product.brand=google
ro.product.manufacturer=Google
ro.system.build.product=redfin
ro.product.name=redfin
ro.product.device=redfin
ro.product.model=Pixel 5
ro.system.build.flavor=redfin-user
ro.build.fingerprint=google/redfin/redfin:13/TP1A.221105.002/2211.40000.10.0:user/release-keys
ro.system.build.description=redfin-user 13 TP1A.221105.002 2211.40000.10.0 release-keys
ro.bootimage.build.fingerprint=google/redfin/redfin:13/TP1A.221105.002/2211.40000.10.0:user/release-keys
File: /vendor/build.prop -> attached 13-vendor.build.prop.zip
Here is printout of this build.prop file - extracted from WSA w/ Android 13 image
####################################
# from generate-common-build-props
# These properties identify this partition image.
####################################
ro.product.vendor.brand=google
ro.product.vendor.device=redfin
ro.product.vendor.manufacturer=Google
ro.product.vendor.model=Pixel 5
ro.product.vendor.name=redfin
ro.vendor.product.cpu.abilist=x86_64,x86,arm64-v8a,armeabi-v7a,armeabi
ro.vendor.product.cpu.abilist32=x86,armeabi-v7a,armeabi
ro.vendor.product.cpu.abilist64=x86_64,arm64-v8a
ro.vendor.build.date=Wed Dec 14 02:14:23 UTC 2022
ro.vendor.build.date.utc=1670984063
ro.vendor.build.fingerprint=google/redfin/redfin:13/TP1A.221105.002/2211.40000.10.0:user/release-keys
ro.vendor.build.id=TP1A.221105.002
ro.vendor.build.tags=release-keys
ro.vendor.build.type=user
ro.vendor.build.version.incremental=2211.40000.10.0
ro.vendor.build.version.release=13
ro.vendor.build.version.release_or_codename=13
ro.vendor.build.version.sdk=33
####################################
# from out/target/product/windows_x86_64/obj/ETC/android_info_prop_intermediates/android_info.prop
####################################
####################################
# from variable ADDITIONAL_VENDOR_PROPERTIES
####################################
ro.vndk.version=33
ro.bionic.arch=x86_64
ro.bionic.cpu_variant=
ro.bionic.2nd_arch=x86
ro.bionic.2nd_cpu_variant=
persist.sys.dalvik.vm.lib.2=libart.so
dalvik.vm.isa.x86_64.variant=x86_64
dalvik.vm.isa.x86_64.features=default
dalvik.vm.isa.x86.variant=x86_64
dalvik.vm.isa.x86.features=default
ro.boot.dynamic_partitions=true
ro.product.first_api_level=30
ro.vendor.build.security_patch=
ro.product.board=windows
ro.board.platform=windows
ro.hwui.use_vulkan=
####################################
# from variable PRODUCT_VENDOR_PROPERTIES
####################################
ro.zygote=zygote64_32
# Removed by post_process_props.py because overridden by ro.zygote=zygote64_32
#ro.zygote?=zygote32
ro.logd.size.stats=64K
log.tag.stats_log=I
ro.carrier=unknown
ro.config.notification_sound=OnTheHunt.ogg
ro.config.alarm_alert=Alarm_Classic.ogg
ro.apex.updatable=true
init.userspace_reboot.is_supported=true
ro.virtual_ab.enabled=true
external_storage.projid.enabled=1
external_storage.casefold.enabled=1
external_storage.sdcardfs.enabled=0
dalvik.vm.heapstartsize=16m
dalvik.vm.heapgrowthlimit=192m
dalvik.vm.heapsize=512m
dalvik.vm.heaptargetutilization=0.75
dalvik.vm.heapminfree=512k
dalvik.vm.heapmaxfree=8m
drm.service.enabled=true
wifi.interface=wlan0
####################################
# from variable PRODUCT_DEFAULT_PROPERTY_OVERRIDES
####################################
ro.dalvik.vm.native.bridge=libhoudini.so
####################################
# from variable PRODUCT_PROPERTY_OVERRIDES
####################################
ro.control_privapp_permissions=enforce
debug.sf.nobootanimation=1
ro.opengles.version=196608
debug.stagefright.ccodec=0
debug.latte.hwcodec.avcdec=2
debug.latte.hwcodec.hevcdec=2
debug.latte.hwcodec.vp8dec=2
debug.latte.hwcodec.vp9dec=2
debug.latte.hwcodec.mp4vdec=2
debug.latte.hwcodec.av1dec=2
debug.latte.hwcodec.h263dec=2
debug.latte.hwcodec.mpeg2dec=2
debug.hwui.disable_disk_cache=1
ro.hardware.egl=emulation
ro.surface_flinger.running_without_sync_framework=true
debug.sf.vsync_reactor_ignore_present_fences=true
service.sf.prime_shader_cache=0
ro.hardware.audio.primary=windows
vendor.bt.rootcanal_test_console=off
ro.incremental.enable=true
ro.dalvik.vm.isa.arm=x86
ro.vendor.enable.native.bridge.exec=1
ro.dalvik.vm.isa.arm64=x86_64
ro.vendor.enable.native.bridge.exec64=1
# end of file
# extra prop added by MagiskOnWSA
ro.product.brand=google
ro.product.manufacturer=Google
ro.build.product=redfin
ro.vendor.build.product=redfin
ro.product.name=redfin
ro.product.device=redfin
ro.product.model=Pixel 5
ro.build.flavor=redfin-user
ro.vendor.build.flavor=redfin-user
ro.build.description=redfin-user 13 TP1A.221105.002 2211.40000.10.0 release-keys
ro.build.fingerprint=google/redfin/redfin:13/TP1A.221105.002/2211.40000.10.0:user/release-keys
ro.vendor.build.description=redfin-user 13 TP1A.221105.002 2211.40000.10.0 release-keys
ro.bootimage.build.fingerprint=google/redfin/redfin:13/TP1A.221105.002/2211.40000.10.0:user/release-keys
# from generate-common-build-props
# These properties identify this partition image.
####################################
ro.product.vendor.brand=google
ro.product.vendor.device=redfin
ro.product.vendor.manufacturer=Google
ro.product.vendor.model=Pixel 5
ro.product.vendor.name=redfin
ro.vendor.product.cpu.abilist=x86_64,x86,arm64-v8a,armeabi-v7a,armeabi
ro.vendor.product.cpu.abilist32=x86,armeabi-v7a,armeabi
ro.vendor.product.cpu.abilist64=x86_64,arm64-v8a
ro.vendor.build.date=Wed Dec 14 02:14:23 UTC 2022
ro.vendor.build.date.utc=1670984063
ro.vendor.build.fingerprint=google/redfin/redfin:13/TP1A.221105.002/2211.40000.10.0:user/release-keys
ro.vendor.build.id=TP1A.221105.002
ro.vendor.build.tags=release-keys
ro.vendor.build.type=user
ro.vendor.build.version.incremental=2211.40000.10.0
ro.vendor.build.version.release=13
ro.vendor.build.version.release_or_codename=13
ro.vendor.build.version.sdk=33
####################################
# from out/target/product/windows_x86_64/obj/ETC/android_info_prop_intermediates/android_info.prop
####################################
####################################
# from variable ADDITIONAL_VENDOR_PROPERTIES
####################################
ro.vndk.version=33
ro.bionic.arch=x86_64
ro.bionic.cpu_variant=
ro.bionic.2nd_arch=x86
ro.bionic.2nd_cpu_variant=
persist.sys.dalvik.vm.lib.2=libart.so
dalvik.vm.isa.x86_64.variant=x86_64
dalvik.vm.isa.x86_64.features=default
dalvik.vm.isa.x86.variant=x86_64
dalvik.vm.isa.x86.features=default
ro.boot.dynamic_partitions=true
ro.product.first_api_level=30
ro.vendor.build.security_patch=
ro.product.board=windows
ro.board.platform=windows
ro.hwui.use_vulkan=
####################################
# from variable PRODUCT_VENDOR_PROPERTIES
####################################
ro.zygote=zygote64_32
# Removed by post_process_props.py because overridden by ro.zygote=zygote64_32
#ro.zygote?=zygote32
ro.logd.size.stats=64K
log.tag.stats_log=I
ro.carrier=unknown
ro.config.notification_sound=OnTheHunt.ogg
ro.config.alarm_alert=Alarm_Classic.ogg
ro.apex.updatable=true
init.userspace_reboot.is_supported=true
ro.virtual_ab.enabled=true
external_storage.projid.enabled=1
external_storage.casefold.enabled=1
external_storage.sdcardfs.enabled=0
dalvik.vm.heapstartsize=16m
dalvik.vm.heapgrowthlimit=192m
dalvik.vm.heapsize=512m
dalvik.vm.heaptargetutilization=0.75
dalvik.vm.heapminfree=512k
dalvik.vm.heapmaxfree=8m
drm.service.enabled=true
wifi.interface=wlan0
####################################
# from variable PRODUCT_DEFAULT_PROPERTY_OVERRIDES
####################################
ro.dalvik.vm.native.bridge=libhoudini.so
####################################
# from variable PRODUCT_PROPERTY_OVERRIDES
####################################
ro.control_privapp_permissions=enforce
debug.sf.nobootanimation=1
ro.opengles.version=196608
debug.stagefright.ccodec=0
debug.latte.hwcodec.avcdec=2
debug.latte.hwcodec.hevcdec=2
debug.latte.hwcodec.vp8dec=2
debug.latte.hwcodec.vp9dec=2
debug.latte.hwcodec.mp4vdec=2
debug.latte.hwcodec.av1dec=2
debug.latte.hwcodec.h263dec=2
debug.latte.hwcodec.mpeg2dec=2
debug.hwui.disable_disk_cache=1
ro.hardware.egl=emulation
ro.surface_flinger.running_without_sync_framework=true
debug.sf.vsync_reactor_ignore_present_fences=true
service.sf.prime_shader_cache=0
ro.hardware.audio.primary=windows
vendor.bt.rootcanal_test_console=off
ro.incremental.enable=true
ro.dalvik.vm.isa.arm=x86
ro.vendor.enable.native.bridge.exec=1
ro.dalvik.vm.isa.arm64=x86_64
ro.vendor.enable.native.bridge.exec64=1
# end of file
# extra prop added by MagiskOnWSA
ro.product.brand=google
ro.product.manufacturer=Google
ro.build.product=redfin
ro.vendor.build.product=redfin
ro.product.name=redfin
ro.product.device=redfin
ro.product.model=Pixel 5
ro.build.flavor=redfin-user
ro.vendor.build.flavor=redfin-user
ro.build.description=redfin-user 13 TP1A.221105.002 2211.40000.10.0 release-keys
ro.build.fingerprint=google/redfin/redfin:13/TP1A.221105.002/2211.40000.10.0:user/release-keys
ro.vendor.build.description=redfin-user 13 TP1A.221105.002 2211.40000.10.0 release-keys
ro.bootimage.build.fingerprint=google/redfin/redfin:13/TP1A.221105.002/2211.40000.10.0:user/release-keys
Take note that settings stored in /vendor/build.prop files take precedence over those stored in default.prop and/or /system/build.prop if they also exist there.
As one can notice contents of build.prop as provided w/ Android 11 image and w/ Android 13 image heavily differ.
Tweaking - Relates to WSA w/ Android 13 image:
We all know Android is the best platform that offers to customize everything. Each operating system has its own config file and All function is stored in the build. prop file, but also in /vendor/build.prop. So changing the /vendor/build. prop file will change the WSA core functioning values. You can tweak your WSA without installing any 3rd party apps or mods, just need root access to edit /vendor/build. prop on WSA emulator.
We know that WSA isn't a smartphone, it's merely an Android emulator that can connect to computer's local Wi-Fi network, hence it's not so much what can get tweaked. But we can try it:
1. Raise RAM Useable by App
Android limits memory per process. Todays apps often require hundreds of MBs of available RAM for exclusive use to flawlessly run. So we give them ( at maximum ) 512 MB - alike Samsung Galaxy S6 SM-G920W8.
dalvik.vm.dex2oat-Xmx=512m
2. Improves Recording Quality.
Most of the WSA user wants the best audio and video quality in this emulator. This code in /vendor/build.prop will improve audio and video recording quality. After applying this code the WSA recording may give better clear and louder quality sound.ro.media.enc.jpeg.quality=100
ro.media.dec.jpeg.memcap=8000000
ro.media.enc.hprof.vid.bps=8000000
ro.media.capture.maxres=8m
ro.media.panorama.defres=3264×1840
ro.media.panorama.frameres=1280×720
ro.camcorder.videoModes=true
ro.media.enc.hprof.vid.fps=65
3. Improve Network Speed.
If you are facing low network speed? You can overall increase network speed on your emulated Android device by increasing the TCP’s Buffersize. When you are browsing the internet on the android device, Your net has been directly connected with the google DNS. Paste the following code at the bottom of the /vendor/build.prop.net.tcp.buffersize.default=4096,87380,256960,4096, 16384,256960
net.tcp.buffersize.wifi=4096,87380,256960,4096,163 84,256960
net.tcp.buffersize.umts=4096,87380,256960,4096,163 84,256960
net.tcp.buffersize.gprs=4096,87380,256960,4096,163 84,256960
net.tcp.buffersize.edge=4096,87380,256960,4096,163 84,256960
net.dns1=8.8.8.8
net.dns2=8.8.4.4
4. Disable built-in error reporting.
Every Android user always faces with the Apps crash. After apps crashing, we all noticed a pop-up like Error-Reporting is showing on the screen. It too much annoying for the many users. If you feel this is too much annoying for you and want to disable built-in error reporting features then add the code to the end at the /vendor/build.prop file.profiler.force_disable_err_rpt=1
profiler.force_disable_ulog=1
5. Change DPI on the emulated Android device.
Changing DPI is one of the most useful build.prop for Android users. DPI refers to the Density Independent on the emulated device. You can find many apps in Google Playstore to change this setting but here you can directly tweak DPI on Android. If you set high amount of value in DPI then the output is smaller UI, smaller texts, smaller icons.If you set low DPI then the output is a larger UI, larger texts, and larger icons. Always set a perfect DPI otherwise you can’t operate WSA. Add the following line to the end of the /vendor/build.prop.
ro.sf.lcd_density=XXX
Here, XXX refers to the DPI Value. The values are a multiple of 160, That is, 160, 320, 480, 640, etc. XXX replace with a value you like.
6. Disable Android logger – logcat
Every Android device records Android log. It basically stores application and portions logs in the system. It displays messages in real time and keeps a history so you can view older messages. So if you want to Disable Android logger then add the the following line to the end of the /vendor/build.prop.logcat.live=disable
7. Make sure USB-MTP mode is enabled.
Add the following line to the end of the /vendor/build.prop.
persist.sys.usb.config=adb,mtp
8. Ensure ADB is debuggable
Add the following lines to the end of the /vendor/build.prop.
persist.service.adb.enable=1
persist.service.debuggable1
9. Enable Faster boot.
Paste the following code at the bottom of the /vendor/build.prop:
ro.config.hw_quickpoweron=true
persist.sys.shutdown.mode=hibernate
10. Improve the speed of video streaming.
Add the following lines to the bottom of the /vendor/build.prop:
media.stagefright.enable-player=true
media.stagefright.enable-meta=true
media.stagefright.enable-scan=true
media.stagefright.enable-http=true
media.stagefright.enable-rtsp=true
media.stagefright.enable-record=false
11. Set Wireless & TCP Speed.
Paste the following code at the bottom of the /vendor/build.prop:
net.core.wmem_max=1048576
net.core.rmem_max=1048576
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.optmem_max=20480
net.unix.max_dgram_qlen=50
12. Set number of CPU-cores to be used
It should be well known that WSA emulator shares the Windows computer's hardware resources, so both RAM and CPU. The RAM usage is fixed to 4 GB ( what can't be changed AFAIK ), the number of virtual CPU cores is not. We may have to configure how the virtual CPUs are assigned in terms of real CPU cores and cores per socket,
Note: You may use Windows Command Prompt to get the number of real CPU cores
IMO it's recommnded to determine the half of real CPU cores as virtual CPU cores. Example:
ro.core_ctl_min_cpu=1
ro.core_ctl_max_cpu=4
Conclusion:
I’m sure that several people will try out tweaking WSA settings as mentioned above. For that reason I've created a batch file named wsa_buildprop_tweaker that'll do the job:
Code:
@echo off & setlocal DISABLEDELAYEDEXPANSION
adb disconnect 2>nul
adb connect 127.0.0.1:58526
adb devices
cls
echo Going to tweak Android system settings...
echo Please keep your computer on
echo(
set "CPU_CORES="
for /F "tokens=*" %%a in ('echo %NUMBER_OF_PROCESSORS%) do (
if NOT "%%a"==[] ( set "CPU_CORES=%X%" )
)
::
:: Open Android terminal
::
adb shell
alias SU='find . -executable -type f -iname "su.*"'
if [ -z "$SU" ] then;
echo "SU ( root ) not found. Exiting...";
sleep 10;
exit 1;
fi;
TMP_SCRIPT='/sdcard/Downloads/tweaker.sh';
if [ ! -f "/system/build.prop" ] then;
echo "File /system/build.prop not found. Exiting...";
sleep 10;
exit 1;
fi;
if [ -f "$TMP_SCRIPT" ] then;
rm -f "$TMP_SCRIPT";
fi;
# mount /sytem as RW
$SU 0 -c "mount -o rw,remount -t auto /system"
# create the script we want to get run
alias TWEAKS='cat << EOF'
echo "########################################" >> /vendor/build.prop; \
echo "# Added by $USER" >> /vendor/build.prop; \
echo "########################################" >> /vendor/build.prop; \
echo "dalvik.vm.dex2oat-Xmx=512m" >> /vendor/build.prop; \
echo "ro.media.enc.jpeg.quality=100" >> /vendor/build.prop; \
echo "ro.media.dec.jpeg.memcap=8000000" >> /vendor/build.prop; \
echo "ro.media.enc.hprof.vid.bps=8000000" >> /system/build.prop, \
echo "ro.media.capture.maxres=8m" >> /vendor/build.prop; \
echo "ro.media.panorama.defres=3264×1840" >> /vendor/build.prop; \
echo "ro.media.panorama.frameres=1280×720" >> /system/build.prop, \
echo "ro.camcorder.videoModes=true" >> /vendor/build.prop; \
echo "ro.media.enc.hprof.vid.fps=65" >> /vendor/build.prop; \
echo "net.tcp.buffersize.default=4096,87380,256960,4096, 16384,256960" >> /vendor/build.prop; \
echo "net.tcp.buffersize.wifi=4096,87380,256960,4096,163 84,256960" >> /vendor/build.prop; \
echo "net.tcp.buffersize.umts=4096,87380,256960,4096,163 84,256960" >> /vendor/build.prop; \
echo "net.tcp.buffersize.gprs=4096,87380,256960,4096,163 84,256960" >> /vendor/build.prop; \
echo "net.tcp.buffersize.edge=4096,87380,256960,4096,163 84,256960" >> /vendor/build.prop; \
echo "ro.sf.lcd_density=480" >> /vendor/build.prop; \
echo "logcat.live=disable" >> /vendor/build.prop; \
echo "profiler.force_disable_err_rpt=1" >> /vendor/build.prop; \
echo "profiler.force_disable_ulog=1" >> /vendor/build.prop; \
echo "ro.config.hw_quickpoweron=true" >> /vendor/build.prop; \
echo "persist.sys.usb.config=adb,mtp" >> /vendor/build.prop; \
echo "#" >> /vendor/build.prop; \
TWEAKS
# run the created script in ROOT mode
$SU 0 -c 'echo "$TWEAKS" > "$TMP_SCRIPT";source "$TMP_SCRIPT";rm -f "$TMP_SCRIPT" 2>/dev/null;'
# unmount /system
umount -af;
::
:: Close Android terminal
::
exit
if defined CPU_CORES (
setlocal ENABLEDELAYEDEXPANSION
set /A CPU_CORES=!CPU_CORES!/=2
adb shell 'echo "ro.core_ctl_min_cpu=1"' >> /vendor/build.prop; \
adb shell 'echo "ro.core_ctl_max_cpu=!CPU_CORES!"' >> /vendor/build.prop; \
endlocal
)
echo Job completed!
timeout /t 10 /nobreak >nul
# reboot WSA
adb disconnect 2>nul
adb usb
adb reboot
exit
Attachments
Last edited: