Open yesitskev opened 8 years ago
Is there any free disassembler for unity? I mean to view resources or program? prefer open source ;)
Unfortunately not for 4.6.4p4, will update if i find something that works.
This may explain the binary data you are seeing in the packets: http://docs.unity3d.com/Manual/class-NetworkView.html
apktool
is your friend for decompiling the APK of the Android app. You'll also find a bunch of shockwave files on the inside which are the real meat of the application. flasm
helps you dump the assets but doesn't give you action script. To get that out, the only decent thing I found was http://www.showmycode.com/. Didn't get a chance to try out https://github.com/jindrapetrik/jpexs-decompiler though.
Full listing of files from the apk:
.
├── AndroidManifest.xml
├── apktool.yml
├── assets
│ ├── CommDump
│ │ ├── Mess0.bin
│ │ └── RecordFile.txt
│ ├── CompanionWorldMap.png
│ ├── Components
│ │ ├── ConditionClips
│ │ │ ├── Condition_Body_0.swf
│ │ │ ├── Condition_Body_1.swf
│ │ │ ├── Condition_Body_10.swf
│ │ │ ├── Condition_Body_11.swf
│ │ │ ├── Condition_Body_12.swf
│ │ │ ├── Condition_Body_13.swf
│ │ │ ├── Condition_Body_14.swf
│ │ │ ├── Condition_Body_15.swf
│ │ │ ├── Condition_Body_16.swf
│ │ │ ├── Condition_Body_2.swf
│ │ │ ├── Condition_Body_3.swf
│ │ │ ├── Condition_Body_4.swf
│ │ │ ├── Condition_Body_5.swf
│ │ │ ├── Condition_Body_6.swf
│ │ │ ├── Condition_Body_7.swf
│ │ │ ├── Condition_Body_8.swf
│ │ │ ├── Condition_Body_9.swf
│ │ │ └── Condition_Head.swf
│ │ ├── Faction\ Vault\ boys
│ │ │ ├── Brotherhood\ of\ Steel
│ │ │ │ ├── BoS100_Fire\ Support.swf
│ │ │ │ ├── BoS101_Call\ to\ Arms.swf
│ │ │ │ ├── BoS200_Semper\ Invicta.swf
│ │ │ │ ├── BoS201B_Tour\ of\ Duty.swf
│ │ │ │ ├── BoS201_Shadow\ of\ Steel.swf
│ │ │ │ ├── BoS202_Show\ No\ Mercy.swf
│ │ │ │ ├── BoS203_From\ Within.swf
│ │ │ │ ├── BoS204_Outside\ the\ Wire.swf
│ │ │ │ ├── BoS301_Liberty\ Reprimed.swf
│ │ │ │ ├── BoS302B_Tactical\ Thinking.swf
│ │ │ │ ├── BoS302_Blind\ Betrayal.swf
│ │ │ │ ├── BoS303_Spoils\ of\ War.swf
│ │ │ │ ├── BoS304_Ad\ Victorium.swf
│ │ │ │ ├── BoS305_A\ New\ Dawn.swf
│ │ │ │ ├── BoSM01_The\ Lost\ Patrol.swf
│ │ │ │ ├── BoSM02_Duty\ or\ Dishonor.swf
│ │ │ │ ├── BoSM04_A\ Loose\ End.swf
│ │ │ │ └── Faction_VB_Brotherhood\ of\ Steel.swf
│ │ │ ├── Minutemen
│ │ │ │ ├── Faction_VB_Minutemen.swf
│ │ │ │ ├── Min00_At\ a\ Minutes\ Notice.swf
│ │ │ │ ├── Min01_Sanctuary.swf
│ │ │ │ ├── Min02_Taking\ Independence.swf
│ │ │ │ ├── Min03_Old\ Guns.swf
│ │ │ │ ├── Min301_Form\ Ranks.swf
│ │ │ │ ├── MinDefendCastle.swf
│ │ │ │ └── MinDestBos_With\ Our\ Powers\ Combined.swf
│ │ │ ├── Railroad
│ │ │ │ ├── Faction_VB_Railroad.swf
│ │ │ │ ├── RR101_Road\ to\ Freedom.swf
│ │ │ │ ├── RR102_Tradecraft.swf
│ │ │ │ ├── RR201_Underground\ Undercover.swf
│ │ │ │ ├── RR301_Operation\ Ticonderoga.swf
│ │ │ │ ├── RR302_Precipice\ of\ War.swf
│ │ │ │ ├── RR303_Rockets\ Red\ Glare.swf
│ │ │ │ ├── RRM01_Boston\ After\ Dark.swf
│ │ │ │ └── RRM02_Memory\ Interrupted.swf
│ │ │ └── the\ Institute
│ │ │ ├── Faction_VB_Institute.swf
│ │ │ ├── Inst301_Synth\ Retention.swf
│ │ │ ├── Inst302_Battle\ of\ Bunker\ Hill.swf
│ │ │ ├── Inst303_Looking\ to\ the\ Future.swf
│ │ │ ├── Inst303_Mankind-Redefined.swf
│ │ │ ├── Inst305_Powering\ Up.swf
│ │ │ ├── Inst307_End\ of\ the\ Line.swf
│ │ │ ├── Inst308_Airship\ Down.swf
│ │ │ ├── Inst309_\ Epilogue.swf
│ │ │ ├── InstM01_Building\ a\ Better\ Crop.swf
│ │ │ ├── InstM02_Plugging\ a\ Leak.swf
│ │ │ ├── InstM03_A\ House\ Divided.swf
│ │ │ ├── InstM04_The\ Replacement.swf
│ │ │ └── Inst_MinVsInst_Pinned.swf
│ │ ├── Magazine\ perks
│ │ │ ├── MP_Astoundingly\ Awesome\ Tales.swf
│ │ │ ├── MP_Covert\ Operations\ Manual.swf
│ │ │ ├── MP_Grognac.swf
│ │ │ ├── MP_Guns\ and\ Bullets.swf
│ │ │ ├── MP_Hot\ Rodder.swf
│ │ │ ├── MP_La\ Coiffe.swf
│ │ │ ├── MP_Live_Love.swf
│ │ │ ├── MP_Massachusetts\ Surgical\ Journal\ .swf
│ │ │ ├── MP_Picket\ Fences.swf
│ │ │ ├── MP_RobCo_Fun.swf
│ │ │ ├── MP_Taboo\ Tattoos.swf
│ │ │ ├── MP_Tales\ Junktown\ Jerky\ Vendor.swf
│ │ │ ├── MP_Tesla\ Science\ Magazine.swf
│ │ │ ├── MP_Total\ Hack.swf
│ │ │ ├── MP_Tumblers\ Today.swf
│ │ │ ├── MP_Unstoppables.swf
│ │ │ └── MP_Wasteland\ Survival\ Guide.swf
│ │ ├── Quest\ Vault\ Boys
│ │ │ ├── Act\ 1\ Quest
│ │ │ │ ├── MQ101_War\ Never\ Changes.swf
│ │ │ │ ├── MQ102_Out\ of\ Time.swf
│ │ │ │ ├── MQ103_Jewel\ of\ the\ Commonwealth.swf
│ │ │ │ ├── MQ104_Unlikely\ Valentine.swf
│ │ │ │ ├── MQ105_Getting\ a\ Clue.swf
│ │ │ │ └── MQ106_Reunions.swf
│ │ │ ├── Act\ 2\ Quest
│ │ │ │ ├── MQ201_The\ Enemy\ of\ my\ Enemy.swf
│ │ │ │ ├── MQ202_Dangerous\ Minds.swf
│ │ │ │ ├── MQ203_Shattered.swf
│ │ │ │ ├── MQ204_The\ Glowing\ Sea.swf
│ │ │ │ ├── MQ205_Hunter-Hunted.swf
│ │ │ │ ├── MQ206_The\ Molecular\ Level.swf
│ │ │ │ └── MQ207_Institutionalized.swf
│ │ │ └── Miscellaneous\ Quests
│ │ │ ├── DefaultBoy.swf
│ │ │ ├── MQ301_Off\ the\ Grid.swf
│ │ │ ├── MQ302_The\ Nuclear\ Option.swf
│ │ │ ├── MS01_Kid\ In\ A\ Fridge.swf
│ │ │ ├── MS02_Here\ There\ Be\ Monsters.swf
│ │ │ ├── MS03_20\ Leagues\ Under\ The\ Sea.swf
│ │ │ ├── MS04_The\ Silver\ Shroud.swf
│ │ │ ├── MS05\ The\ Devil's\ Due.swf
│ │ │ ├── MS07_Detective\ Case\ Files.swf
│ │ │ ├── MS09_The\ Secret\ of\ Cabot\ House.swf
│ │ │ ├── MS10_Curtain\ Call.swf
│ │ │ ├── MS11_Last\ Voyage\ of\ the\ U.S.S.\ Constitution.swf
│ │ │ ├── MS13_Diamond\ City\ Blues.swf
│ │ │ ├── MS14_Confidence\ Man.swf
│ │ │ ├── MS16_The\ Big\ Dig.swf
│ │ │ ├── MS17_Human\ Error.swf
│ │ │ └── MS19_Vault\ 81.swf
│ │ └── VaultBoys
│ │ ├── Perks
│ │ │ ├── Berserk.swf
│ │ │ ├── Cloak\ and\ Dagger.swf
│ │ │ ├── Close\ to\ Metal.swf
│ │ │ ├── Combat\ Medic.swf
│ │ │ ├── FortuneFinderRank4.swf
│ │ │ ├── Gift\ of\ Gab.swf
│ │ │ ├── Isodoped.swf
│ │ │ ├── Killshot.swf
│ │ │ ├── Know\ Your\ Enemy.swf
│ │ │ ├── Lovers\ Embrace.swf
│ │ │ ├── PerkClip_19aa3.swf
│ │ │ ├── PerkClip_1d02b5.swf
│ │ │ ├── PerkClip_1d2451.swf
│ │ │ ├── PerkClip_1d2456.swf
│ │ │ ├── PerkClip_1d245e.swf
│ │ │ ├── PerkClip_1d2461.swf
│ │ │ ├── PerkClip_1d246b.swf
│ │ │ ├── PerkClip_1d246f.swf
│ │ │ ├── PerkClip_1d2479.swf
│ │ │ ├── PerkClip_1d247c.swf
│ │ │ ├── PerkClip_1d247f.swf
│ │ │ ├── PerkClip_1d2487.swf
│ │ │ ├── PerkClip_1d248a.swf
│ │ │ ├── PerkClip_1dafe.swf
│ │ │ ├── PerkClip_1e67f.swf
│ │ │ ├── PerkClip_207d1.swf
│ │ │ ├── PerkClip_221fc.swf
│ │ │ ├── PerkClip_24aff.swf
│ │ │ ├── PerkClip_264d9.swf
│ │ │ ├── PerkClip_4a09f.swf
│ │ │ ├── PerkClip_4a0ab.swf
│ │ │ ├── PerkClip_4a0b0.swf
│ │ │ ├── PerkClip_4a0b5.swf
│ │ │ ├── PerkClip_4a0b6.swf
│ │ │ ├── PerkClip_4a0b9.swf
│ │ │ ├── PerkClip_4a0bb.swf
│ │ │ ├── PerkClip_4a0bc.swf
│ │ │ ├── PerkClip_4a0c5.swf
│ │ │ ├── PerkClip_4a0cf.swf
│ │ │ ├── PerkClip_4a0d4.swf
│ │ │ ├── PerkClip_4a0d5.swf
│ │ │ ├── PerkClip_4a0d6.swf
│ │ │ ├── PerkClip_4a0da.swf
│ │ │ ├── PerkClip_4b24e.swf
│ │ │ ├── PerkClip_4b253.swf
│ │ │ ├── PerkClip_4b254.swf
│ │ │ ├── PerkClip_4b258.swf
│ │ │ ├── PerkClip_4b259.swf
│ │ │ ├── PerkClip_4b26d.swf
│ │ │ ├── PerkClip_4c91f.swf
│ │ │ ├── PerkClip_4c923.swf
│ │ │ ├── PerkClip_4c926.swf
│ │ │ ├── PerkClip_4c929.swf
│ │ │ ├── PerkClip_4c92a.swf
│ │ │ ├── PerkClip_4c92d.swf
│ │ │ ├── PerkClip_4c935.swf
│ │ │ ├── PerkClip_4c93b.swf
│ │ │ ├── PerkClip_4c942.swf
│ │ │ ├── PerkClip_4d869.swf
│ │ │ ├── PerkClip_4d872.swf
│ │ │ ├── PerkClip_4d87a.swf
│ │ │ ├── PerkClip_4d881.swf
│ │ │ ├── PerkClip_4d886.swf
│ │ │ ├── PerkClip_4d887.swf
│ │ │ ├── PerkClip_4d888.swf
│ │ │ ├── PerkClip_4d889.swf
│ │ │ ├── PerkClip_4d88a.swf
│ │ │ ├── PerkClip_4d88d.swf
│ │ │ ├── PerkClip_4d890.swf
│ │ │ ├── PerkClip_4d895.swf
│ │ │ ├── PerkClip_4d89b.swf
│ │ │ ├── PerkClip_4d89e.swf
│ │ │ ├── PerkClip_4d8a2.swf
│ │ │ ├── PerkClip_4d8a6.swf
│ │ │ ├── PerkClip_4d8a7.swf
│ │ │ ├── PerkClip_4ddee.swf
│ │ │ ├── PerkClip_523ff.swf
│ │ │ ├── PerkClip_52403.swf
│ │ │ ├── PerkClip_65df9.swf
│ │ │ ├── PerkClip_65e65.swf
│ │ │ ├── PerkClip_Default.swf
│ │ │ ├── PerkClip_ca99d.swf
│ │ │ ├── PerkClip_d2287.swf
│ │ │ ├── PerkClip_d9784.swf
│ │ │ ├── PerkClip_d9789.swf
│ │ │ ├── PerkClip_d978e.swf
│ │ │ ├── PerkClip_d9793.swf
│ │ │ ├── PerkClip_d9798.swf
│ │ │ ├── PerkClip_d979d.swf
│ │ │ ├── PerkClip_d97a2.swf
│ │ │ ├── PerkClip_e36f9.swf
│ │ │ ├── PerkClip_e36ff.swf
│ │ │ ├── PerkClip_e9453.swf
│ │ │ ├── Quiet\ Reflection.swf
│ │ │ ├── Robot\ Sympathy.swf
│ │ │ ├── Shield\ Harmonics.swf
│ │ │ ├── Trigger_Rush.swf
│ │ │ ├── United\ We\ Stand.swf
│ │ │ ├── Well\ Rested.swf
│ │ │ ├── WorkbenchPerkClip_264d9.swf
│ │ │ └── WorkshopPerkClip_264d9.swf
│ │ └── SPECIAL
│ │ ├── Agility.swf
│ │ ├── Charisma.swf
│ │ ├── Endurance.swf
│ │ ├── Intelligence.swf
│ │ ├── Luck.swf
│ │ ├── Name_Clip.swf
│ │ ├── Perception.swf
│ │ └── Strength.swf
│ ├── DemoMode
│ │ └── DemoMode.bin
│ ├── IntroPipboy.swf
│ ├── IntroPipboyFrameResize.swf
│ ├── MessageBoxMenu.swf
│ ├── Minigames
│ │ ├── AtomicCommand.swf
│ │ ├── AtomicCommandAssets.swf
│ │ ├── AtomicCommandTutorialAssets.swf
│ │ ├── GenericConfirmQuitAssets.swf
│ │ ├── GenericPauseAssets.swf
│ │ ├── Grognak.swf
│ │ ├── GrognakAssets.swf
│ │ ├── GrognakGameOverAssets.swf
│ │ ├── GrognakMapAssets.swf
│ │ ├── GrognakMapTutorialAssets.swf
│ │ ├── GrognakTitleAssets.swf
│ │ ├── GrognakWindowAssets.swf
│ │ ├── GrognakWindowTutorialAssets.swf
│ │ ├── PipFall.swf
│ │ ├── PipFallAssets.swf
│ │ ├── PipFallTutorialAssets.swf
│ │ ├── RedMenace.html
│ │ ├── RedMenace.swf
│ │ ├── RedMenaceAssets.swf
│ │ ├── RedMenaceTutorialAssets.swf
│ │ ├── ZetaInvaders.swf
│ │ ├── ZetaInvadersAssets.swf
│ │ ├── ZetaInvadersTutorialAssets.swf
│ │ ├── fonts_programs.swf
│ │ └── xml
│ │ ├── AtomicCommandConfig.xml
│ │ ├── GrognakConfig.xml
│ │ ├── PipFallConfig.xml
│ │ ├── RedMenaceConfig.xml
│ │ └── ZetaInvadersConfig.xml
│ ├── PipFallAssets.swf
│ ├── PipboyMenu.swf
│ ├── PipboyMessageBox.swf
│ ├── PipboyMobileSettings.swf
│ ├── PipboyUnavailable.swf
│ ├── Pipboy_DataPage.swf
│ ├── Pipboy_InvPage.swf
│ ├── Pipboy_MapPage.swf
│ ├── Pipboy_RadioPage.swf
│ ├── Pipboy_StatsPage.swf
│ ├── bin
│ │ └── Data
│ │ ├── 3f6d0d75f9e944ec1ade35d71a3a5905
│ │ ├── 5480721b914ca72419d9c9d67cbe0851
│ │ ├── Managed
│ │ │ ├── Assembly-CSharp.dll
│ │ │ ├── ICSharpCode.SharpZipLib.dll
│ │ │ ├── System.Core.dll
│ │ │ ├── System.dll
│ │ │ ├── UnityEngine.UI.dll
│ │ │ ├── UnityEngine.dll
│ │ │ └── mscorlib.dll
│ │ ├── Resources
│ │ │ └── unity_builtin_extra
│ │ ├── e308342edd122461d8e376c70a2f7ccb
│ │ ├── mainData
│ │ ├── settings.xml
│ │ ├── sharedassets0.assets.split0
│ │ ├── sharedassets0.assets.split1
│ │ ├── sharedassets0.assets.split10
│ │ ├── sharedassets0.assets.split2
│ │ ├── sharedassets0.assets.split3
│ │ ├── sharedassets0.assets.split4
│ │ ├── sharedassets0.assets.split5
│ │ ├── sharedassets0.assets.split6
│ │ ├── sharedassets0.assets.split7
│ │ ├── sharedassets0.assets.split8
│ │ ├── sharedassets0.assets.split9
│ │ ├── splash.png
│ │ └── unity\ default\ resources
│ ├── boot.html
│ ├── fontconfig.txt
│ ├── fonts_en.swf
│ ├── menu.html
│ └── pipboybootsequence.swf
├── lib
│ └── armeabi-v7a
│ ├── libSmartGlassCore.so
│ ├── libSmartGlassSDK.so
│ ├── libgfxunity3d.so
│ ├── libgnustl_shared.so
│ ├── libmain.so
│ ├── libmono.so
│ └── libunity.so
├── original
│ ├── AndroidManifest.xml
│ └── META-INF
│ ├── CERT.RSA
│ ├── CERT.SF
│ └── MANIFEST.MF
├── res
│ ├── drawable
│ │ └── app_icon.png
│ ├── drawable-hdpi-v4
│ │ └── app_icon.png
│ ├── drawable-ldpi-v4
│ │ └── app_icon.png
│ ├── drawable-xhdpi-v4
│ │ └── app_icon.png
│ ├── drawable-xxhdpi-v4
│ │ └── app_icon.png
│ ├── drawable-xxxhdpi-v4
│ │ └── app_icon.png
│ ├── layout
│ │ └── msaauthenticatorview.xml
│ └── values
│ ├── ids.xml
│ ├── public.xml
│ └── strings.xml
├── smali
│ ├── com
│ │ ├── bhvr
│ │ │ ├── smartglassnativeplugin
│ │ │ │ └── BuildConfig.smali
│ │ │ └── smartglassnativepluginlib
│ │ │ ├── MsaAuthenticatorView.smali
│ │ │ ├── SmartGlassAPI$1.smali
│ │ │ ├── SmartGlassAPI$2.smali
│ │ │ ├── SmartGlassAPI$3.smali
│ │ │ ├── SmartGlassAPI$4.smali
│ │ │ ├── SmartGlassAPI$AuthenticatorListener.smali
│ │ │ ├── SmartGlassAPI$AuxiliaryListener.smali
│ │ │ ├── SmartGlassAPI$DiscoveryListener.smali
│ │ │ ├── SmartGlassAPI$SessionListener.smali
│ │ │ ├── SmartGlassAPI$TokenListener.smali
│ │ │ └── SmartGlassAPI.smali
│ │ ├── microsoft
│ │ │ └── xbox
│ │ │ └── smartglass
│ │ │ ├── Accelerometer$1.smali
│ │ │ ├── Accelerometer$SensorListener.smali
│ │ │ ├── Accelerometer.smali
│ │ │ ├── AccelerometerListener.smali
│ │ │ ├── AccelerometerReading.smali
│ │ │ ├── ActiveTitleLocation.smali
│ │ │ ├── ActiveTitleState.smali
│ │ │ ├── AgeGroup.smali
│ │ │ ├── AuthError.smali
│ │ │ ├── AuthInfo.smali
│ │ │ ├── AuxiliaryStream.smali
│ │ │ ├── AuxiliaryStreamListener.smali
│ │ │ ├── AuxiliaryStreamReadResult.smali
│ │ │ ├── AuxiliaryStreamReadStats.smali
│ │ │ ├── AuxiliaryStreamWriteResult.smali
│ │ │ ├── AuxiliaryStreamWriteStats.smali
│ │ │ ├── CatalogServiceManager.smali
│ │ │ ├── ClientInformation.smali
│ │ │ ├── ClientResolution.smali
│ │ │ ├── ConnectionState.smali
│ │ │ ├── ControlKey.smali
│ │ │ ├── DeviceCapabilities.smali
│ │ │ ├── DeviceStatus.smali
│ │ │ ├── DeviceType.smali
│ │ │ ├── DiscoveryManager.smali
│ │ │ ├── DiscoveryManagerListener.smali
│ │ │ ├── Environment.smali
│ │ │ ├── EnvironmentManager.smali
│ │ │ ├── EnvironmentManagerListener.smali
│ │ │ ├── EnvironmentSettings.smali
│ │ │ ├── GameDvr.smali
│ │ │ ├── GamePad.smali
│ │ │ ├── GamePadButtons.smali
│ │ │ ├── Gyrometer$1.smali
│ │ │ ├── Gyrometer$SensorListener.smali
│ │ │ ├── Gyrometer.smali
│ │ │ ├── GyrometerListener.smali
│ │ │ ├── GyrometerReading.smali
│ │ │ ├── HttpResponse.smali
│ │ │ ├── JavaScriptAdapter$AccelListener.smali
│ │ │ ├── JavaScriptAdapter$GyroListener.smali
│ │ │ ├── JavaScriptAdapter.smali
│ │ │ ├── JavaScriptAdapterListener.smali
│ │ │ ├── JavaScriptCommand.smali
│ │ │ ├── JsonMessage.smali
│ │ │ ├── Listenable.smali
│ │ │ ├── MediaCommand.smali
│ │ │ ├── MediaControlCommands.smali
│ │ │ ├── MediaMetaDataEntry.smali
│ │ │ ├── MediaPlaybackStatus.smali
│ │ │ ├── MediaState.smali
│ │ │ ├── MediaTransportCapabilities.smali
│ │ │ ├── MediaTransportState.smali
│ │ │ ├── MediaType.smali
│ │ │ ├── Message.smali
│ │ │ ├── MessageTarget.smali
│ │ │ ├── MessageType.smali
│ │ │ ├── MetricsManager.smali
│ │ │ ├── PairedIdentityState.smali
│ │ │ ├── PrimaryDevice.smali
│ │ │ ├── PrimaryDeviceFlags.smali
│ │ │ ├── PrimaryDeviceState.smali
│ │ │ ├── ReconnectPolicy.smali
│ │ │ ├── RefTPtr.smali
│ │ │ ├── SGError.smali
│ │ │ ├── SGException.smali
│ │ │ ├── SGPlatform.smali
│ │ │ ├── SGResult.smali
│ │ │ ├── Sensor.smali
│ │ │ ├── SensorArguments.smali
│ │ │ ├── SensorManager$1.smali
│ │ │ ├── SensorManager$2.smali
│ │ │ ├── SensorManager.smali
│ │ │ ├── SensorResult.smali
│ │ │ ├── ServiceChannel.smali
│ │ │ ├── ServiceManager.smali
│ │ │ ├── ServiceRequestListener.smali
│ │ │ ├── SessionManager.smali
│ │ │ ├── SessionManagerListener.smali
│ │ │ ├── SoundLevel.smali
│ │ │ ├── SurfaceType.smali
│ │ │ ├── TextAction.smali
│ │ │ ├── TextConfiguration.smali
│ │ │ ├── TextInputScope.smali
│ │ │ ├── TextManager.smali
│ │ │ ├── TextManagerListener.smali
│ │ │ ├── TextOptions.smali
│ │ │ ├── TextResult.smali
│ │ │ ├── Token.smali
│ │ │ ├── TokenListener.smali
│ │ │ ├── TokenManager.smali
│ │ │ ├── TokenManagerListener.smali
│ │ │ ├── TokenResult.smali
│ │ │ ├── TokenType.smali
│ │ │ ├── TouchAction.smali
│ │ │ ├── TouchFrame.smali
│ │ │ ├── TouchPoint.smali
│ │ │ ├── TraceLog.smali
│ │ │ ├── TraceLogLevel.smali
│ │ │ ├── TraceLogListener.smali
│ │ │ ├── XboxLiveServiceManager.smali
│ │ │ ├── controls
│ │ │ │ ├── Accelerometer$Listener.smali
│ │ │ │ ├── Accelerometer.smali
│ │ │ │ ├── AssociatedChannel.smali
│ │ │ │ ├── BridgedWebView$ChromeClient.smali
│ │ │ │ ├── BridgedWebView$JavaScriptBridge.smali
│ │ │ │ ├── BridgedWebView$ViewClient.smali
│ │ │ │ ├── BridgedWebView.smali
│ │ │ │ ├── Browser.smali
│ │ │ │ ├── CanvasComponent.smali
│ │ │ │ ├── CanvasEvent.smali
│ │ │ │ ├── CanvasFragment$1.smali
│ │ │ │ ├── CanvasFragment$SessionListener.smali
│ │ │ │ ├── CanvasFragment$WebListener.smali
│ │ │ │ ├── CanvasFragment.smali
│ │ │ │ ├── CanvasKey.smali
│ │ │ │ ├── CanvasKeyMapper$1.smali
│ │ │ │ ├── CanvasKeyMapper.smali
│ │ │ │ ├── CanvasScript.smali
│ │ │ │ ├── CanvasState.smali
│ │ │ │ ├── GameDvr.smali
│ │ │ │ ├── GamePad.smali
│ │ │ │ ├── Gyroscope$Listener.smali
│ │ │ │ ├── Gyroscope.smali
│ │ │ │ ├── HandlesIme.smali
│ │ │ │ ├── Haptic.smali
│ │ │ │ ├── HttpClient.smali
│ │ │ │ ├── Information$1.smali
│ │ │ │ ├── Information$SessionListener.smali
│ │ │ │ ├── Information.smali
│ │ │ │ ├── InformationV1.smali
│ │ │ │ ├── InformationV2.smali
│ │ │ │ ├── Input$1.smali
│ │ │ │ ├── Input.smali
│ │ │ │ ├── InputStreamUtils.smali
│ │ │ │ ├── InputV1.smali
│ │ │ │ ├── InputV2.smali
│ │ │ │ ├── JavaScriptBridge$1.smali
│ │ │ │ ├── JavaScriptBridge$AdapterListener.smali
│ │ │ │ ├── JavaScriptBridge$Bridge.smali
│ │ │ │ ├── JavaScriptBridge$ChromeClient.smali
│ │ │ │ ├── JavaScriptBridge$JsonCommand.smali
│ │ │ │ ├── JavaScriptBridge$ViewClient.smali
│ │ │ │ ├── JavaScriptBridge.smali
│ │ │ │ ├── Json.smali
│ │ │ │ ├── JsonAccelerometer.smali
│ │ │ │ ├── JsonAccelerometerCurrentState.smali
│ │ │ │ ├── JsonActiveTitle.smali
│ │ │ │ ├── JsonBrowserParameters.smali
│ │ │ │ ├── JsonCanvasClientInfo.smali
│ │ │ │ ├── JsonCanvasHostInfo.smali
│ │ │ │ ├── JsonCanvasMediaState$1.smali
│ │ │ │ ├── JsonCanvasMediaState.smali
│ │ │ │ ├── JsonCanvasParameters.smali
│ │ │ │ ├── JsonClientsUpdated.smali
│ │ │ │ ├── JsonCompleteRequest.smali
│ │ │ │ ├── JsonConnectionStateChanged.smali
│ │ │ │ ├── JsonEnvironmentSettings.smali
│ │ │ │ ├── JsonError.smali
│ │ │ │ ├── JsonGamePad.smali
│ │ │ │ ├── JsonGyroscope.smali
│ │ │ │ ├── JsonGyroscopeCurrentState.smali
│ │ │ │ ├── JsonHapticCurrentState.smali
│ │ │ │ ├── JsonInformationCurrentState.smali
│ │ │ │ ├── JsonInformationGamercard.smali
│ │ │ │ ├── JsonInformationGetPrivileges.smali
│ │ │ │ ├── JsonInformationPrivileges.smali
│ │ │ │ ├── JsonInputKey.smali
│ │ │ │ ├── JsonLaunchTitleParameters.smali
│ │ │ │ ├── JsonLaunchUriParameters.smali
│ │ │ │ ├── JsonLogMessage.smali
│ │ │ │ ├── JsonMediaGetState.smali
│ │ │ │ ├── JsonMediaSeek.smali
│ │ │ │ ├── JsonMediaSend.smali
│ │ │ │ ├── JsonPairedIdentityStateChanged.smali
│ │ │ │ ├── JsonRecordPreviousMessage.smali
│ │ │ │ ├── JsonScriptNotify.smali
│ │ │ │ ├── JsonSendMessage.smali
│ │ │ │ ├── JsonSensorStartParameters.smali
│ │ │ │ ├── JsonServiceRequest.smali
│ │ │ │ ├── JsonServiceResponse.smali
│ │ │ │ ├── JsonTitleChanged.smali
│ │ │ │ ├── JsonTitleChannelChanged.smali
│ │ │ │ ├── JsonTouchFrame.smali
│ │ │ │ ├── JsonTouchPoint.smali
│ │ │ │ ├── JsonUserGamercard.smali
│ │ │ │ ├── JsonUserInfo.smali
│ │ │ │ ├── Log.smali
│ │ │ │ ├── LogV1.smali
│ │ │ │ ├── LogV2.smali
│ │ │ │ ├── Media$1.smali
│ │ │ │ ├── Media$SessionListener.smali
│ │ │ │ ├── Media.smali
│ │ │ │ ├── MediaV1.smali
│ │ │ │ ├── MediaV2.smali
│ │ │ │ ├── Messaging$1.smali
│ │ │ │ ├── Messaging$SessionListener.smali
│ │ │ │ ├── Messaging.smali
│ │ │ │ ├── MessagingV1.smali
│ │ │ │ ├── MessagingV2.smali
│ │ │ │ ├── MsaAuthenticator.smali
│ │ │ │ ├── MsaAuthenticatorListener.smali
│ │ │ │ ├── MsaAuthenticatorView.smali
│ │ │ │ ├── NavigationComponent.smali
│ │ │ │ ├── ResourceFinder.smali
│ │ │ │ ├── RunnableScript.smali
│ │ │ │ ├── SGHttpResponse.smali
│ │ │ │ ├── ScriptRunner$1.smali
│ │ │ │ ├── ScriptRunner.smali
│ │ │ │ ├── Sensor.smali
│ │ │ │ ├── ServiceProxy$1.smali
│ │ │ │ ├── ServiceProxy.smali
│ │ │ │ ├── ServiceRequest$1.smali
│ │ │ │ ├── ServiceRequest.smali
│ │ │ │ ├── ServiceRequestListener.smali
│ │ │ │ ├── ServiceRequestTracker.smali
│ │ │ │ ├── ServiceResponse.smali
│ │ │ │ ├── TextEntryFragment$1.smali
│ │ │ │ ├── TextEntryFragment$2.smali
│ │ │ │ ├── TextEntryFragment$3.smali
│ │ │ │ ├── TextEntryFragment$TextEntryWatcher.smali
│ │ │ │ ├── TextEntryFragment.smali
│ │ │ │ ├── Touch.smali
│ │ │ │ ├── UserGamercardRequest$1.smali
│ │ │ │ ├── UserGamercardRequest.smali
│ │ │ │ ├── UserInfoRequest$1.smali
│ │ │ │ ├── UserInfoRequest.smali
│ │ │ │ ├── WebComponent.smali
│ │ │ │ ├── WebComponentContainer.smali
│ │ │ │ ├── WebComponentVersion.smali
│ │ │ │ └── WebViewListener.smali
│ │ │ └── internal
│ │ │ ├── HttpClient.smali
│ │ │ └── Random.smali
│ │ └── unity3d
│ │ └── player
│ │ ├── NativeLoader.smali
│ │ ├── PsmMainActivity.smali
│ │ ├── PsmUnityActivity.smali
│ │ ├── ReflectionHelper$1.smali
│ │ ├── ReflectionHelper$a.smali
│ │ ├── ReflectionHelper.smali
│ │ ├── UnityPlayer$1.smali
│ │ ├── UnityPlayer$10.smali
│ │ ├── UnityPlayer$11.smali
│ │ ├── UnityPlayer$12$1.smali
│ │ ├── UnityPlayer$12.smali
│ │ ├── UnityPlayer$13.smali
│ │ ├── UnityPlayer$14.smali
│ │ ├── UnityPlayer$15.smali
│ │ ├── UnityPlayer$16.smali
│ │ ├── UnityPlayer$17.smali
│ │ ├── UnityPlayer$18.smali
│ │ ├── UnityPlayer$19.smali
│ │ ├── UnityPlayer$2.smali
│ │ ├── UnityPlayer$3.smali
│ │ ├── UnityPlayer$4.smali
│ │ ├── UnityPlayer$5.smali
│ │ ├── UnityPlayer$6.smali
│ │ ├── UnityPlayer$7.smali
│ │ ├── UnityPlayer$8.smali
│ │ ├── UnityPlayer$9.smali
│ │ ├── UnityPlayer$a.smali
│ │ ├── UnityPlayer$b.smali
│ │ ├── UnityPlayer$c.smali
│ │ ├── UnityPlayer.smali
│ │ ├── UnityPlayerActivity.smali
│ │ ├── UnityPlayerNativeActivity.smali
│ │ ├── UnityPlayerProxyActivity.smali
│ │ ├── WWW.smali
│ │ ├── a$1.smali
│ │ ├── a$2.smali
│ │ ├── a$a.smali
│ │ ├── a.smali
│ │ ├── b.smali
│ │ ├── c$1.smali
│ │ ├── c$2.smali
│ │ ├── c.smali
│ │ ├── d.smali
│ │ ├── e$1.smali
│ │ ├── e$2.smali
│ │ ├── e.smali
│ │ ├── f.smali
│ │ ├── g.smali
│ │ ├── h.smali
│ │ ├── i.smali
│ │ ├── j.smali
│ │ ├── k$1.smali
│ │ ├── k.smali
│ │ ├── l.smali
│ │ ├── m.smali
│ │ ├── n$1.smali
│ │ ├── n$2.smali
│ │ ├── n$3.smali
│ │ ├── n.smali
│ │ ├── o.smali
│ │ ├── p.smali
│ │ ├── q.smali
│ │ ├── r$1.smali
│ │ └── r.smali
│ ├── net
│ │ └── hockeyapp
│ │ ├── android
│ │ │ ├── Constants.smali
│ │ │ ├── CrashManager$1.smali
│ │ │ ├── CrashManager$2.smali
│ │ │ ├── CrashManager$3.smali
│ │ │ ├── CrashManager$4.smali
│ │ │ ├── CrashManager.smali
│ │ │ ├── CrashManagerListener.smali
│ │ │ ├── ExceptionHandler.smali
│ │ │ ├── ExpiryInfoActivity.smali
│ │ │ ├── FeedbackActivity$1.smali
│ │ │ ├── FeedbackActivity$2$1.smali
│ │ │ ├── FeedbackActivity$2.smali
│ │ │ ├── FeedbackActivity$3$1.smali
│ │ │ ├── FeedbackActivity$3.smali
│ │ │ ├── FeedbackActivity$4.smali
│ │ │ ├── FeedbackActivity$5.smali
│ │ │ ├── FeedbackActivity.smali
│ │ │ ├── FeedbackActivityInterface.smali
│ │ │ ├── FeedbackManager.smali
│ │ │ ├── FeedbackManagerListener.smali
│ │ │ ├── StringListener.smali
│ │ │ ├── Strings.smali
│ │ │ ├── Tracking.smali
│ │ │ ├── UpdateActivity$1.smali
│ │ │ ├── UpdateActivity$2.smali
│ │ │ ├── UpdateActivity$3.smali
│ │ │ ├── UpdateActivity$4.smali
│ │ │ ├── UpdateActivity.smali
│ │ │ ├── UpdateActivityInterface.smali
│ │ │ ├── UpdateFragment$1.smali
│ │ │ ├── UpdateFragment.smali
│ │ │ ├── UpdateInfoListener.smali
│ │ │ ├── UpdateManager.smali
│ │ │ ├── UpdateManagerListener.smali
│ │ │ ├── adapters
│ │ │ │ └── MessagesAdapter.smali
│ │ │ ├── listeners
│ │ │ │ ├── DownloadFileListener.smali
│ │ │ │ └── SendFeedbackListener.smali
│ │ │ ├── objects
│ │ │ │ ├── ErrorObject.smali
│ │ │ │ ├── Feedback.smali
│ │ │ │ ├── FeedbackMessage.smali
│ │ │ │ └── FeedbackResponse.smali
│ │ │ ├── tasks
│ │ │ │ ├── CheckUpdateTask$1.smali
│ │ │ │ ├── CheckUpdateTask$2.smali
│ │ │ │ ├── CheckUpdateTask.smali
│ │ │ │ ├── DownloadFileTask$1.smali
│ │ │ │ ├── DownloadFileTask$2.smali
│ │ │ │ ├── DownloadFileTask.smali
│ │ │ │ ├── ParseFeedbackTask.smali
│ │ │ │ └── SendFeedbackTask.smali
│ │ │ ├── utils
│ │ │ │ ├── ConnectionManager$1.smali
│ │ │ │ ├── ConnectionManager$ConnectionManagerHolder.smali
│ │ │ │ ├── ConnectionManager.smali
│ │ │ │ ├── DeviceUtils$1.smali
│ │ │ │ ├── DeviceUtils$DeviceUtilsHolder.smali
│ │ │ │ ├── DeviceUtils.smali
│ │ │ │ ├── FeedbackParser$1.smali
│ │ │ │ ├── FeedbackParser$FeedbackParserHolder.smali
│ │ │ │ ├── FeedbackParser.smali
│ │ │ │ ├── PrefsUtil$1.smali
│ │ │ │ ├── PrefsUtil$PrefsUtilHolder.smali
│ │ │ │ ├── PrefsUtil.smali
│ │ │ │ ├── UiThreadUtil$1.smali
│ │ │ │ ├── UiThreadUtil$2.smali
│ │ │ │ ├── UiThreadUtil$3.smali
│ │ │ │ ├── UiThreadUtil$WbUtilHolder.smali
│ │ │ │ ├── UiThreadUtil.smali
│ │ │ │ ├── Util.smali
│ │ │ │ ├── VersionCache.smali
│ │ │ │ ├── VersionHelper$1.smali
│ │ │ │ ├── VersionHelper.smali
│ │ │ │ └── ViewHelper.smali
│ │ │ └── views
│ │ │ ├── ExpiryInfoView.smali
│ │ │ ├── FeedbackMessageView.smali
│ │ │ ├── FeedbackView.smali
│ │ │ └── UpdateView.smali
│ │ └── unity
│ │ ├── HockeyUnityPlugin$1.smali
│ │ ├── HockeyUnityPlugin$2$1.smali
│ │ ├── HockeyUnityPlugin$2.smali
│ │ ├── HockeyUnityPlugin$3$1.smali
│ │ ├── HockeyUnityPlugin$3.smali
│ │ ├── HockeyUnityPlugin$4.smali
│ │ ├── HockeyUnityPlugin$5.smali
│ │ └── HockeyUnityPlugin.smali
│ └── org
│ └── fmod
│ ├── FMODAudioDevice$a.smali
│ ├── FMODAudioDevice.smali
│ └── a.smali
├── source.zip
└── src
├── com
│ ├── bhvr
│ │ ├── smartglassnativeplugin
│ │ │ └── BuildConfig.java
│ │ └── smartglassnativepluginlib
│ │ ├── MsaAuthenticatorView.java
│ │ ├── SmartGlassAPI$1.java
│ │ ├── SmartGlassAPI$2.java
│ │ ├── SmartGlassAPI$3.java
│ │ ├── SmartGlassAPI$4.java
│ │ ├── SmartGlassAPI$AuthenticatorListener.java
│ │ ├── SmartGlassAPI$AuxiliaryListener.java
│ │ ├── SmartGlassAPI$DiscoveryListener.java
│ │ ├── SmartGlassAPI$SessionListener.java
│ │ ├── SmartGlassAPI$TokenListener.java
│ │ └── SmartGlassAPI.java
│ ├── microsoft
│ │ └── xbox
│ │ └── smartglass
│ │ ├── Accelerometer$1.java
│ │ ├── Accelerometer$SensorListener.java
│ │ ├── Accelerometer.java
│ │ ├── AccelerometerListener.java
│ │ ├── AccelerometerReading.java
│ │ ├── ActiveTitleLocation.java
│ │ ├── ActiveTitleState.java
│ │ ├── AgeGroup.java
│ │ ├── AuthError.java
│ │ ├── AuthInfo.java
│ │ ├── AuxiliaryStream.java
│ │ ├── AuxiliaryStreamListener.java
│ │ ├── AuxiliaryStreamReadResult.java
│ │ ├── AuxiliaryStreamReadStats.java
│ │ ├── AuxiliaryStreamWriteResult.java
│ │ ├── AuxiliaryStreamWriteStats.java
│ │ ├── CatalogServiceManager.java
│ │ ├── ClientInformation.java
│ │ ├── ClientResolution.java
│ │ ├── ConnectionState.java
│ │ ├── ControlKey.java
│ │ ├── DeviceCapabilities.java
│ │ ├── DeviceStatus.java
│ │ ├── DeviceType.java
│ │ ├── DiscoveryManager.java
│ │ ├── DiscoveryManagerListener.java
│ │ ├── Environment.java
│ │ ├── EnvironmentManager.java
│ │ ├── EnvironmentManagerListener.java
│ │ ├── EnvironmentSettings.java
│ │ ├── GameDvr.java
│ │ ├── GamePad.java
│ │ ├── GamePadButtons.java
│ │ ├── Gyrometer$1.java
│ │ ├── Gyrometer$SensorListener.java
│ │ ├── Gyrometer.java
│ │ ├── GyrometerListener.java
│ │ ├── GyrometerReading.java
│ │ ├── HttpResponse.java
│ │ ├── JavaScriptAdapter$AccelListener.java
│ │ ├── JavaScriptAdapter$GyroListener.java
│ │ ├── JavaScriptAdapter.java
│ │ ├── JavaScriptAdapterListener.java
│ │ ├── JavaScriptCommand.java
│ │ ├── JsonMessage.java
│ │ ├── Listenable.java
│ │ ├── MediaCommand.java
│ │ ├── MediaControlCommands.java
│ │ ├── MediaMetaDataEntry.java
│ │ ├── MediaPlaybackStatus.java
│ │ ├── MediaState.java
│ │ ├── MediaTransportCapabilities.java
│ │ ├── MediaTransportState.java
│ │ ├── MediaType.java
│ │ ├── Message.java
│ │ ├── MessageTarget.java
│ │ ├── MessageType.java
│ │ ├── MetricsManager.java
│ │ ├── PairedIdentityState.java
│ │ ├── PrimaryDevice.java
│ │ ├── PrimaryDeviceFlags.java
│ │ ├── PrimaryDeviceState.java
│ │ ├── ReconnectPolicy.java
│ │ ├── RefTPtr.java
│ │ ├── SGError.java
│ │ ├── SGException.java
│ │ ├── SGPlatform.java
│ │ ├── SGResult.java
│ │ ├── Sensor.java
│ │ ├── SensorArguments.java
│ │ ├── SensorManager$1.java
│ │ ├── SensorManager$2.java
│ │ ├── SensorManager.java
│ │ ├── SensorResult.java
│ │ ├── ServiceChannel.java
│ │ ├── ServiceManager.java
│ │ ├── ServiceRequestListener.java
│ │ ├── SessionManager.java
│ │ ├── SessionManagerListener.java
│ │ ├── SoundLevel.java
│ │ ├── SurfaceType.java
│ │ ├── TextAction.java
│ │ ├── TextConfiguration.java
│ │ ├── TextInputScope.java
│ │ ├── TextManager.java
│ │ ├── TextManagerListener.java
│ │ ├── TextOptions.java
│ │ ├── TextResult.java
│ │ ├── Token.java
│ │ ├── TokenListener.java
│ │ ├── TokenManager.java
│ │ ├── TokenManagerListener.java
│ │ ├── TokenResult.java
│ │ ├── TokenType.java
│ │ ├── TouchAction.java
│ │ ├── TouchFrame.java
│ │ ├── TouchPoint.java
│ │ ├── TraceLog.java
│ │ ├── TraceLogLevel.java
│ │ ├── TraceLogListener.java
│ │ ├── XboxLiveServiceManager.java
│ │ ├── controls
│ │ │ ├── Accelerometer$Listener.java
│ │ │ ├── Accelerometer.java
│ │ │ ├── AssociatedChannel.java
│ │ │ ├── BridgedWebView$ChromeClient.java
│ │ │ ├── BridgedWebView$JavaScriptBridge.java
│ │ │ ├── BridgedWebView$ViewClient.java
│ │ │ ├── BridgedWebView.java
│ │ │ ├── Browser.java
│ │ │ ├── CanvasComponent.java
│ │ │ ├── CanvasEvent.java
│ │ │ ├── CanvasFragment$1.java
│ │ │ ├── CanvasFragment$SessionListener.java
│ │ │ ├── CanvasFragment$WebListener.java
│ │ │ ├── CanvasFragment.java
│ │ │ ├── CanvasKey.java
│ │ │ ├── CanvasKeyMapper$1.java
│ │ │ ├── CanvasKeyMapper.java
│ │ │ ├── CanvasScript.java
│ │ │ ├── CanvasState.java
│ │ │ ├── GameDvr.java
│ │ │ ├── GamePad.java
│ │ │ ├── Gyroscope$Listener.java
│ │ │ ├── Gyroscope.java
│ │ │ ├── HandlesIme.java
│ │ │ ├── Haptic.java
│ │ │ ├── HttpClient.java
│ │ │ ├── Information$1.java
│ │ │ ├── Information$SessionListener.java
│ │ │ ├── Information.java
│ │ │ ├── InformationV1.java
│ │ │ ├── InformationV2.java
│ │ │ ├── Input$1.java
│ │ │ ├── Input.java
│ │ │ ├── InputStreamUtils.java
│ │ │ ├── InputV1.java
│ │ │ ├── InputV2.java
│ │ │ ├── JavaScriptBridge$1.java
│ │ │ ├── JavaScriptBridge$AdapterListener.java
│ │ │ ├── JavaScriptBridge$Bridge.java
│ │ │ ├── JavaScriptBridge$ChromeClient.java
│ │ │ ├── JavaScriptBridge$JsonCommand.java
│ │ │ ├── JavaScriptBridge$ViewClient.java
│ │ │ ├── JavaScriptBridge.java
│ │ │ ├── Json.java
│ │ │ ├── JsonAccelerometer.java
│ │ │ ├── JsonAccelerometerCurrentState.java
│ │ │ ├── JsonActiveTitle.java
│ │ │ ├── JsonBrowserParameters.java
│ │ │ ├── JsonCanvasClientInfo.java
│ │ │ ├── JsonCanvasHostInfo.java
│ │ │ ├── JsonCanvasMediaState$1.java
│ │ │ ├── JsonCanvasMediaState.java
│ │ │ ├── JsonCanvasParameters.java
│ │ │ ├── JsonClientsUpdated.java
│ │ │ ├── JsonCompleteRequest.java
│ │ │ ├── JsonConnectionStateChanged.java
│ │ │ ├── JsonEnvironmentSettings.java
│ │ │ ├── JsonError.java
│ │ │ ├── JsonGamePad.java
│ │ │ ├── JsonGyroscope.java
│ │ │ ├── JsonGyroscopeCurrentState.java
│ │ │ ├── JsonHapticCurrentState.java
│ │ │ ├── JsonInformationCurrentState.java
│ │ │ ├── JsonInformationGamercard.java
│ │ │ ├── JsonInformationGetPrivileges.java
│ │ │ ├── JsonInformationPrivileges.java
│ │ │ ├── JsonInputKey.java
│ │ │ ├── JsonLaunchTitleParameters.java
│ │ │ ├── JsonLaunchUriParameters.java
│ │ │ ├── JsonLogMessage.java
│ │ │ ├── JsonMediaGetState.java
│ │ │ ├── JsonMediaSeek.java
│ │ │ ├── JsonMediaSend.java
│ │ │ ├── JsonPairedIdentityStateChanged.java
│ │ │ ├── JsonRecordPreviousMessage.java
│ │ │ ├── JsonScriptNotify.java
│ │ │ ├── JsonSendMessage.java
│ │ │ ├── JsonSensorStartParameters.java
│ │ │ ├── JsonServiceRequest.java
│ │ │ ├── JsonServiceResponse.java
│ │ │ ├── JsonTitleChanged.java
│ │ │ ├── JsonTitleChannelChanged.java
│ │ │ ├── JsonTouchFrame.java
│ │ │ ├── JsonTouchPoint.java
│ │ │ ├── JsonUserGamercard.java
│ │ │ ├── JsonUserInfo.java
│ │ │ ├── Log.java
│ │ │ ├── LogV1.java
│ │ │ ├── LogV2.java
│ │ │ ├── Media$1.java
│ │ │ ├── Media$SessionListener.java
│ │ │ ├── Media.java
│ │ │ ├── MediaV1.java
│ │ │ ├── MediaV2.java
│ │ │ ├── Messaging$1.java
│ │ │ ├── Messaging$SessionListener.java
│ │ │ ├── Messaging.java
│ │ │ ├── MessagingV1.java
│ │ │ ├── MessagingV2.java
│ │ │ ├── MsaAuthenticator.java
│ │ │ ├── MsaAuthenticatorListener.java
│ │ │ ├── MsaAuthenticatorView.java
│ │ │ ├── NavigationComponent.java
│ │ │ ├── ResourceFinder.java
│ │ │ ├── RunnableScript.java
│ │ │ ├── SGHttpResponse.java
│ │ │ ├── ScriptRunner$1.java
│ │ │ ├── ScriptRunner.java
│ │ │ ├── Sensor.java
│ │ │ ├── ServiceProxy$1.java
│ │ │ ├── ServiceProxy.java
│ │ │ ├── ServiceRequest$1.java
│ │ │ ├── ServiceRequest.java
│ │ │ ├── ServiceRequestListener.java
│ │ │ ├── ServiceRequestTracker.java
│ │ │ ├── ServiceResponse.java
│ │ │ ├── TextEntryFragment$1.java
│ │ │ ├── TextEntryFragment$2.java
│ │ │ ├── TextEntryFragment$3.java
│ │ │ ├── TextEntryFragment$TextEntryWatcher.java
│ │ │ ├── TextEntryFragment.java
│ │ │ ├── Touch.java
│ │ │ ├── UserGamercardRequest$1.java
│ │ │ ├── UserGamercardRequest.java
│ │ │ ├── UserInfoRequest$1.java
│ │ │ ├── UserInfoRequest.java
│ │ │ ├── WebComponent.java
│ │ │ ├── WebComponentContainer.java
│ │ │ ├── WebComponentVersion.java
│ │ │ └── WebViewListener.java
│ │ └── internal
│ │ ├── HttpClient.java
│ │ └── Random.java
│ └── unity3d
│ └── player
│ ├── NativeLoader.java
│ ├── PsmMainActivity.java
│ ├── PsmUnityActivity.java
│ ├── ReflectionHelper$1.java
│ ├── ReflectionHelper$a.java
│ ├── ReflectionHelper.java
│ ├── UnityPlayer$1.java
│ ├── UnityPlayer$10.java
│ ├── UnityPlayer$11.java
│ ├── UnityPlayer$12$1.java
│ ├── UnityPlayer$12.java
│ ├── UnityPlayer$13.java
│ ├── UnityPlayer$14.java
│ ├── UnityPlayer$15.java
│ ├── UnityPlayer$16.java
│ ├── UnityPlayer$17.java
│ ├── UnityPlayer$18.java
│ ├── UnityPlayer$19.java
│ ├── UnityPlayer$2.java
│ ├── UnityPlayer$3.java
│ ├── UnityPlayer$4.java
│ ├── UnityPlayer$5.java
│ ├── UnityPlayer$6.java
│ ├── UnityPlayer$7.java
│ ├── UnityPlayer$8.java
│ ├── UnityPlayer$9.java
│ ├── UnityPlayer$a.java
│ ├── UnityPlayer$b.java
│ ├── UnityPlayer$c.java
│ ├── UnityPlayer.java
│ ├── UnityPlayerActivity.java
│ ├── UnityPlayerNativeActivity.java
│ ├── UnityPlayerProxyActivity.java
│ ├── WWW.java
│ ├── a$1.java
│ ├── a$2.java
│ ├── a$a.java
│ ├── a.java
│ ├── b.java
│ ├── c$1.java
│ ├── c$2.java
│ ├── c.java
│ ├── d.java
│ ├── e$2.java
│ ├── e.java
│ ├── f.java
│ ├── g.java
│ ├── h.java
│ ├── i.java
│ ├── j.java
│ ├── k$1.java
│ ├── k.java
│ ├── l.java
│ ├── m.java
│ ├── n$1.java
│ ├── n$2.java
│ ├── n$3.java
│ ├── n.java
│ ├── o.java
│ ├── p.java
│ ├── q.java
│ ├── r$1.java
│ └── r.java
├── net
│ └── hockeyapp
│ ├── android
│ │ ├── Constants.java
│ │ ├── CrashManager$1.java
│ │ ├── CrashManager$2.java
│ │ ├── CrashManager$3.java
│ │ ├── CrashManager$4.java
│ │ ├── CrashManager.java
│ │ ├── CrashManagerListener.java
│ │ ├── ExceptionHandler.java
│ │ ├── ExpiryInfoActivity.java
│ │ ├── FeedbackActivity$1.java
│ │ ├── FeedbackActivity$2$1.java
│ │ ├── FeedbackActivity$2.java
│ │ ├── FeedbackActivity$3$1.java
│ │ ├── FeedbackActivity$3.java
│ │ ├── FeedbackActivity$4.java
│ │ ├── FeedbackActivity$5.java
│ │ ├── FeedbackActivity.java
│ │ ├── FeedbackActivityInterface.java
│ │ ├── FeedbackManager.java
│ │ ├── FeedbackManagerListener.java
│ │ ├── StringListener.java
│ │ ├── Strings.java
│ │ ├── Tracking.java
│ │ ├── UpdateActivity$1.java
│ │ ├── UpdateActivity$2.java
│ │ ├── UpdateActivity$3.java
│ │ ├── UpdateActivity$4.java
│ │ ├── UpdateActivity.java
│ │ ├── UpdateActivityInterface.java
│ │ ├── UpdateFragment$1.java
│ │ ├── UpdateFragment.java
│ │ ├── UpdateInfoListener.java
│ │ ├── UpdateManager.java
│ │ ├── UpdateManagerListener.java
│ │ ├── adapters
│ │ │ └── MessagesAdapter.java
│ │ ├── listeners
│ │ │ ├── DownloadFileListener.java
│ │ │ └── SendFeedbackListener.java
│ │ ├── objects
│ │ │ ├── ErrorObject.java
│ │ │ ├── Feedback.java
│ │ │ ├── FeedbackMessage.java
│ │ │ └── FeedbackResponse.java
│ │ ├── tasks
│ │ │ ├── CheckUpdateTask$1.java
│ │ │ ├── CheckUpdateTask$2.java
│ │ │ ├── CheckUpdateTask.java
│ │ │ ├── DownloadFileTask$1.java
│ │ │ ├── DownloadFileTask$2.java
│ │ │ ├── DownloadFileTask.java
│ │ │ ├── ParseFeedbackTask.java
│ │ │ └── SendFeedbackTask.java
│ │ ├── utils
│ │ │ ├── ConnectionManager$1.java
│ │ │ ├── ConnectionManager$ConnectionManagerHolder.java
│ │ │ ├── ConnectionManager.java
│ │ │ ├── DeviceUtils$1.java
│ │ │ ├── DeviceUtils$DeviceUtilsHolder.java
│ │ │ ├── DeviceUtils.java
│ │ │ ├── FeedbackParser$1.java
│ │ │ ├── FeedbackParser$FeedbackParserHolder.java
│ │ │ ├── FeedbackParser.java
│ │ │ ├── PrefsUtil$1.java
│ │ │ ├── PrefsUtil$PrefsUtilHolder.java
│ │ │ ├── PrefsUtil.java
│ │ │ ├── UiThreadUtil$1.java
│ │ │ ├── UiThreadUtil$2.java
│ │ │ ├── UiThreadUtil$3.java
│ │ │ ├── UiThreadUtil$WbUtilHolder.java
│ │ │ ├── UiThreadUtil.java
│ │ │ ├── Util.java
│ │ │ ├── VersionCache.java
│ │ │ ├── VersionHelper$1.java
│ │ │ ├── VersionHelper.java
│ │ │ └── ViewHelper.java
│ │ └── views
│ │ ├── ExpiryInfoView.java
│ │ ├── FeedbackMessageView.java
│ │ ├── FeedbackView.java
│ │ └── UpdateView.java
│ └── unity
│ ├── HockeyUnityPlugin$1.java
│ ├── HockeyUnityPlugin$2$1.java
│ ├── HockeyUnityPlugin$2.java
│ ├── HockeyUnityPlugin$3$1.java
│ ├── HockeyUnityPlugin$3.java
│ ├── HockeyUnityPlugin$4.java
│ ├── HockeyUnityPlugin$5.java
│ └── HockeyUnityPlugin.java
└── org
└── fmod
├── FMODAudioDevice$a.java
├── FMODAudioDevice.java
└── a.java
85 directories, 1114 files
Yeah that is the very first thing i used. Files which deserve special mention: Mess0.bin and DemoMode.bin
I don't think you'll manage to decompile any of the monoscripts used.
Mess0.bin is in Format of that other network update (Type 3) DemoMode.bin is in another format. i decoded it, will describe it soon
DemoMode could be a mock server / mock data for well, the demo mode of the app. I can only assume parsing that would be similar, if not the same, as network parsing.
DemoMode ist the Data used when app is in DemoMode for decoding look in https://github.com/NimVek/pipboy/blob/master/FILEFORMAT.md Content look at https://github.com/NimVek/pipboy/blob/master/DemoMode.json In DemoMode.bin all Strings are lowercase. In the JSON-dump i changed it to the known case.
Open "Assembly-CSharp.dll" with a .NET decompiler, and you will have source code in plain sight. (Like https://www.red-gate.com/products/dotnet-development/reflector/ )
I'm a bit wary of posting decompiled sources in this repository, though it may be helpful if you make a new one.
Hey, I'm working on one of these projects too https://github.com/nkatsaros/pipboygo. Most of my work is based off the great research you all have done but you might find something useful in there.
If you pull the first commit, the application was a Mess0.bin parser that would dump the database in JSON. I found that pasting it in the Chrome Developer Tools was a good was to browse it.
Also, don't know if any of you found this yet, but fontconfig.txt contains the multilingual translations for all of the $variables in the database. It could be useful if you want to create your own user interface on top of it.
@nkatsaros yours is awesome!
I especially love the local map dump
I tried to combine some mapdumps, and get these little image of my walk in sanctury. Blue means the gray value in the dump is 0 (assumed no data is given) On the green channel i used the average gray value, and on the red channel i display the difference between min and max value. Because i do Nearest-neighbor interpolation the is a lot of red ;) Try to upload my script next days.
The SmartGlass SDK makes me think that the xbox protocol will be very very different indeed. At least the initiation part anyway
As I investigate i'll dump my findings in this issue.
For what its worth, the mobile app was written in Unity 4.6.4p4