Differences

This shows you the differences between two versions of the page.

Link to this comparison view

steam [2019/01/10 00:22] (current)
dlicious Initial setup instructions
Line 1: Line 1:
 +====== Setting up Steam Guard Mobile Authenticator ======
 +
 +We're going to be running a modified version of Android (LineageOS, formerly known as CyanogenMod) as a virtual machine in VirtualBox.  Then we'll transfer the MFA setup over to ArchiSteamFarm so we can have instant trades and benefit from its Steam Trade Matcher feature.
 +
 +===== Install VirtualBox =====
 +
 +This is well outside the scope of what we're talking about here; if you need help with this, check out the VirtualBox documentation.
 +
 +===== Download LineageOS installer =====
 +
 +Go to http://www.android-x86.org/download and get the latest version of ''CM-x86'' ("CM" is short for "CyanogenMod", which was the former name of LineageOS).  You specifically want LineageOS instead of stock Android because it doesn't require you to sign up for a Google account (you still _can_ if you want, but stock Android _forces_ you to).  As of this writing, the newest download was ''CM-x86 14.1'' so that's what I used, but any version should work; all that matters is that it runs the Steam app.
 +
 +===== Install LineageOS =====
 +
 +TLDR: Standard VirtualBox install process using the recommended 2G RAM and 8G disk, and changing the audio controller to "Intel HD Audio".
 +
 +I pulled up the instructions at http://www.android-x86.org/documents/virtualboxhowto but ultimately there wasn't anything unusual about the setup.  I haven't spent any real time looking at resource usage to figure out what the optimal amount of RAM and hard disk allocations would be, but here's the output from my current install (brand new except for following these steps):
 +
 +<code>
 +android_x86_64:/ $ df -h
 +Filesystem      Size  Used Avail Use% Mounted on
 +tmpfs           999M  4.4M  995M   1% /
 +/dev/loop1      1.3G  1.3G   66M  96% /system
 +/dev/block/sda1 7.7G  1.8G  5.9G  24% /data
 +tmpfs           999M  420K  999M   1% /dev
 +tmpfs           999M     0  999M   0% /mnt
 +none            999M     0  999M   0% /cache
 +tmpfs           999M     0  999M   0% /storage
 +/data/media     7.7G  1.8G  5.9G  24% /storage/emulated
 +tmpfs           999M     0  999M   0% /storage/self
 +
 +android_x86_64:/ $ free -h
 +                total        used        free      shared     buffers
 +Mem:             1.9G        1.8G         59M         41M        108M
 +-/+ buffers/cache:           1.7G        167M
 +Swap:               0           0           0
 +</code>
 +
 +Based on the above, I'd say anecdotally that their recommendation of 2048 MB of RAM is just right, but leaving the virtual disk size as 8.00 GB is a bit of a waste for our purposes; if you look at the output of ''mount'' you can see that the only real filesystems (setting aside stuff like tmpfs, configfs, etc.) are ''/system'' and ''/data'' which are ext4:
 +
 +<code>
 +android_x86_64:/ $ df -h -t ext4
 +Filesystem      Size  Used Avail Use% Mounted on
 +/dev/loop1      1.3G  1.3G   66M  96% /system
 +/dev/block/sda1 7.7G  1.8G  5.9G  24% /data
 +</code>
 +
 +So, we're looking at a total disk usage of about 3.1 GiB (for what it's worth, this is after installing the Steam APK).
 +
 +Having said that, if you're planning on using this install as a general-purpose Android environment for other things, or if you just don't want to think/worry about optimizing and you can spare the extra disk space.
 +
 +Other than that, the only tweak I made based on the instructions was to change the audio controller to "Intel HD Audio".  I didn't try with the default setting; that might have worked as well.  This really only matters if you care about hearing the Steam app's alert notification sounds.
 +
 +===== Set up LineageOS and Steam =====
 +
 +Download the Steam APK: https://support.steampowered.com/kb_article.php?ref=4440-RTUI-9218
 +Direct download link as of this writing: http://media.steampowered.com/apps/steam-android/steam-2.3.1.apk
 +
 +Settings > Personal > Security > Unknown sources
 +
 +Open the file manager and move the APK from the Downloads folder to the Documents folder (the OS won't let you install an APK from the Downloads folder); double-click the APK to install it.
 +
 +===== Set up Mobile Authenticator =====
 +
 +Hamburger > Steam Guard
 +
 +Disposable/anonymous SMS receiving services:
 +
 +  * https://www.receive-sms-online.info/
 +
 +Should probably pick a number in the same country as your Steam account, but who knows if it matters...
 +
 +===== Extract data for ArchiSteamFarm =====
 +
 +Put on your hyper-diligence hats, 'cause this is where slow and steady wins the race.  If you've got a way to actually transfer files in and out of your Android environment (using adb, for example), great...but if not, get ready for some eye-bleeding re-typing.  Hit Alt-F1 to go to the virtual console where a root shell is waiting for you; you can use the GUI terminal app if you like, but its font is crap for character differentiation (zero vs uppercase O, one vs lowercase l vs uppercase I, etc.).
 +
 +Here's one trick to test your interpretation.  Using a shell function seems silly, but the way the shell is set up in that virtual console, it's a visual disaster if you're working in a directory with a long path or typing anything long on the command line.  Normally you'd take the time to fix it, but we're only gonna be doing this one thing at the command line.
 +
 +<code>
 +# ts() { grep --color=always "${1}" /data/data/com.valvesoftware.android.steam.community/files/Steamguard-xxxxxxx; }
 +# ts 'test-string-goes-here'
 +</code>
 +
 +The idea is that you can type what you think the password is, and if grep finds it in the file and it shows up red in the output, you know you've got it right.
 +
 +<code>
 +# cat /data/data/com.valvesoftware.android.steam.community/shared_prefs/steam.uuid.xml
 +# for file in /data/data/com.valvesoftware.android.steam.community/files/Steamguard-*; do echo "===== ${file} ====="; cat ${file}; echo; done
 +</code>
 +
 +The contents of ''steam.uuid.xml'' should look like this (treat this ''uuidKey'' value as you would your password):
 +
 +<file xml steam.uuid.xml>
 +<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
 +<map>
 +    <string name="uuidKey">android:aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee</string>
 +</map>
 +</file>
 +
 +The contents of the ''Steamguard-*'' files should look like this:
 +
 +<file json Steamguard-STEAMID>
 +{"steamid":"00000000000000000","shared_secret":"XXXXXXXXXXXXXXXXXXXXXXXXXXX=","serial_number":"0000000000000000000","revocation_code":"XXXXXX","uri":"otpauth:\/\/totp\/Steam:XXXX?secret=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&issuer=Steam","server_time":"0000000000","account_name":"XXXXX","token_gid":"xxxxxxxxxxxxxxxx","identity_secret":"XXXXXXXXXXXXXXXXXXXXXXXXXXX=","secret_1":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=","status":1,"steamguard_scheme":"2"}
 +</file>
 +
 +If you've copied it correctly, it should pass JSON validation; for instance, ''jq < Steamguard-STEAMID'' should produce output like this:
 +
 +<code json Steamguard-STEAMID>
 +{
 +  "steamid": "00000000000000000",
 +  "shared_secret": "XXXXXXXXXXXXXXXXXXXXXXXXXXX=",
 +  "serial_number": "0000000000000000000",
 +  "revocation_code": "XXXXXX",
 +  "uri": "otpauth://totp/Steam:XXXX?secret=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&issuer=Steam",
 +  "server_time": "0000000000",
 +  "account_name": "XXXXX",
 +  "token_gid": "xxxxxxxxxxxxxxxx",
 +  "identity_secret": "XXXXXXXXXXXXXXXXXXXXXXXXXXX=",
 +  "secret_1": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=",
 +  "status": 1,
 +  "steamguard_scheme": "2"
 +}
 +</code>
 +
 +https://github.com/JustArchiNET/ArchiSteamFarm/wiki/Two-factor-authentication
  
steam.txt · Last modified: 2019/01/10 00:22 by dlicious
 
Except where otherwise noted, content on this wiki is licensed under the following license: GNU Free Documentation License 1.3
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Run by Debian Driven by DokuWiki