tverona1 / QuestAppLauncher

An app launcher for Quest implemented in Unity.
MIT License
216 stars 44 forks source link

App scanning crashes if an app with the same package name but differn case is installed #58

Open hjochman opened 3 years ago

hjochman commented 3 years ago

Hi, on Quest 2 I only get the settings Icon. I can open the setings and download the icon pack. But the Main screen is empty.

hjochman commented 3 years ago

Hi,

checked the logs. I see he is loding the first 20 of 64 apps and then stops without any error message:

[OVRManager] HMDAcquired event
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

2020-12-05T10:28:18.342Z:info5275/5119 Unity

installed apps: 67
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

2020-12-05T10:28:18.363Z:info5150/5119 Unity [OVRManager] InputFocusLost event
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

2020-12-05T10:28:18.368Z:info5275/5119 Unity Skipping Excluded [2] Package: aaa.QuestAppLauncher.App, name: .Quest App Launcher
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

2020-12-05T10:28:18.371Z:warn5150/5119 VrApi vrapi_GetPredictedTracking2: ovr is invalid 2020-12-05T10:28:18.371Z:warn5150/5119 VrApi IsOvrValid: ovr == nullptr. Package: aaa.QuestAppLauncher.App 2020-12-05T10:28:18.371Z:warn5150/5119 VrApi vrapi_GetPredictedTracking2: ovr is invalid 2020-12-05T10:28:18.371Z:warn5150/5119 VrApi vrapi_LocateTrackingSpace: ovr == NULL 2020-12-05T10:28:18.371Z:info5275/5119 Unity [3] package: com.felixandpaul.quest.jw_portal, name: Jurassic World, auto tab: Quest
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

2020-12-05T10:28:18.375Z:info5275/5119 Unity [4] package: com.aarpinnovation.alcoveonquest, name: Alcove, auto tab: Quest
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

2020-12-05T10:28:18.384Z:info5275/5119 Unity [5] package: com.tripp.tripp_client_unity, name: TRIPP, auto tab: Quest
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

2020-12-05T10:28:18.385Z:info5275/5119 Unity [6] package: com.slindev.BlobbyTennis, name: Blobby Tennis, auto tab: Quest
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

2020-12-05T10:28:18.386Z:info5275/5119 Unity Skipping 2D [7] Package: com.ghisler.android.TotalCommander, name: Total Commander
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

2020-12-05T10:28:18.388Z:info5275/5119 Unity Skipping 2D [8] Package: com.sidequest.launcher, name: AppStarter
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

2020-12-05T10:28:18.390Z:info5275/5119 Unity [9] package: aschvr.happyrun.com, name: HappyRun, auto tab: Quest
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

2020-12-05T10:28:18.391Z:info5150/5119 OVRMrcLib ProfilerSystem: verbose mode 0 2020-12-05T10:28:18.395Z:info5275/5119 Unity [10] package: com.ILMxLAB.VaderImmortal.ep1, name: WKND, auto tab: Quest
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

2020-12-05T10:28:18.400Z:info5275/5119 Unity [11] package: com.ILMxLAB.VaderImmortal.ep2, name: WKND, auto tab: Quest
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

2020-12-05T10:28:18.405Z:info5275/5119 Unity [12] package: com.ILMxLAB.VaderImmortal.ep3, name: WKND, auto tab: Quest
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

2020-12-05T10:28:18.410Z:info5275/5119 Unity [13] package: com.deovr.gearvr, name: DeoVR, auto tab: Quest
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

2020-12-05T10:28:18.411Z:info5275/5119 Unity [14] package: com.readyatdawn.r15, name: Echo VR, auto tab: Quest
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

2020-12-05T10:28:18.412Z:info5275/5119 Unity [15] package: com.drbeef.questzdoom, name: QuestZDoom, auto tab: Quest
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

2020-12-05T10:28:18.414Z:info5275/5119 Unity [16] package: cz.immersive.skoda125, name: Skoda 125 Let, auto tab: Quest
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

2020-12-05T10:28:18.415Z:info5275/5119 Unity [17] package: com.storyup.healiumpro, name: Healium Pro Escapes, auto tab: Quest
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

2020-12-05T10:28:18.415Z:info5275/5119 Unity Skipping 2D [18] Package: com.oculus.environment.prod.adobe, name: com.oculus.environment.prod.adobe
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

2020-12-05T10:28:18.416Z:info5275/5119 Unity Skipping 2D [19] Package: com.oculus.environment.prod.japan, name: com.oculus.environment.prod.japan
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

2020-12-05T10:28:18.416Z:info5275/5119 Unity [20] package: com.coinflip.ninja.demo, name: Ninja Legends, auto tab: Quest
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

2020-12-05T10:28:18.371Z:warn5150/5119 VrApi IsOvrValid: ovr == nullptr. Package: aaa.QuestAppLauncher.App 2020-12-05T10:28:18.368Z:info5275/5119 Unity [1] package: com.FreeFallStudios.DiscBenders, name: Disc Benders: Ace Run, auto tab: Quest
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

2020-12-05T10:28:18.365Z:info5275/5119 Unity [0] package: com.Bernd.Lambda1VRLauncher, name: Lambda1VR_Launcher, auto tab: Quest
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

2020-12-05T10:28:18.522Z:warn5183/5119 VrApi IsOvrValid: ovr == nullptr. Package: aaa.QuestAppLauncher.App 2020-12-05T10:28:18.522Z:info5183/5119 GL_Utils egl = 1.5 2020-12-05T10:28:18.522Z:info5183/5119 GL_Utils Found: GL_QCOM_tiled_rendering 2020-12-05T10:28:18.523Z:info5183

hjochman commented 3 years ago

logcat.log Complete log file

hjochman commented 3 years ago

I removed the app 20] package: com.coinflip.ninja.demo, name: Ninja Legends and now he stops at package 19. I expect the next package he tries to read has a problem. But I have no idea how to find out.

hjochman commented 3 years ago

The only thin that is the same in both logs is the message: IsOvrValid: ovr == nullptr. Package: aaa.QuestAppLauncher.App When the loading of the apps stops.

[14] package: com.readyatdawn.r15, name: Echo VR, auto tab: Quest
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

2020-12-05T11:16:25.123Z:warn16181/16134 VrApi IsOvrValid: ovr == nullptr. Package: aaa.QuestAppLauncher.App

hjochman commented 3 years ago

Found the problem. A developer changed the case of its app name. As a result both apps where installed. The crash happend when the app tried to load the second version with a different case.

With the ADB command "shell 'pm list packages -f|grep data\/app\/' " you get the list of apps in the same order. Then you are able to find out the package that the app was working on if you check the last debug message in the log.

0 package:/data/app/com.Bernd.Lambda1VRLauncher-kOYFgMvHHCXaUH_yNhinQg==/base.apk=com.Bernd.Lambda1VRLauncher 1 package:/data/app/com.FreeFallStudios.DiscBenders--0gWjHnvIUFHwfz8gYA5Vw==/base.apk=com.FreeFallStudios.DiscBenders 2 package:/data/app/aaa.QuestAppLauncher.App-4e4YOTIDPTfL_ZWkecmMPw==/base.apk=aaa.QuestAppLauncher.App 3 package:/data/app/com.felixandpaul.quest.jw_portal-BZeCw0_9OrKuwqZPmKV5uA==/base.apk=com.felixandpaul.quest.jw_portal 4 package:/data/app/com.aarpinnovation.alcoveonquest-Q0aOjbm_QBOzsME4G6tN5w==/base.apk=com.aarpinnovation.alcoveonquest 5 package:/data/app/com.tripp.tripp_client_unity-WVdbOI2C7U57Mch_iNvP6w==/base.apk=com.tripp.tripp_client_unity 6 package:/data/app/com.slindev.BlobbyTennis-yu3rqK1bh_zcn9qRECWncA==/base.apk=com.slindev.BlobbyTennis <================== Duplicate with different chracter size package:/data/app/com.oculus.browser-FiBaQ30ZgT6US8P5rYQmpw==/base.apk=com.oculus.browser 7 package:/data/app/com.ghisler.android.TotalCommander-LQtOK6lFAB-ll_KMfSqKLw==/base.apk=com.ghisler.android.TotalCommander 8 package:/data/app/com.sidequest.launcher-CAE28BXprd0IM8oMUeN1AQ==/base.apk=com.sidequest.launcher 9 package:/data/app/aschvr.happyrun.com-cCa0fwjyOtIEiV2ef6aIrg==/base.apk=aschvr.happyrun.com 10 package:/data/app/com.ILMxLAB.VaderImmortal.ep1-bHO8rrZVUAMZNlXYWkwavA==/base.apk=com.ILMxLAB.VaderImmortal.ep1 11 package:/data/app/com.ILMxLAB.VaderImmortal.ep2-WweGEPZhW7KSiicsp2D26w==/base.apk=com.ILMxLAB.VaderImmortal.ep2 12 package:/data/app/com.ILMxLAB.VaderImmortal.ep3-f9tqM8XsVkIVJrHv3ntmaw==/base.apk=com.ILMxLAB.VaderImmortal.ep3 13 package:/data/app/com.deovr.gearvr-9dgB1BXERPG7o7edbkzFvw==/base.apk=com.deovr.gearvr 14 package:/data/app/com.readyatdawn.r15-mNIgbQ7sPK4cqEDHOa5F0g==/base.apk=com.readyatdawn.r15 15 package:/data/app/com.drbeef.questzdoom-v4-5dlxeD1tHQ7d4K_Dbnw==/base.apk=com.drbeef.questzdoom 16 package:/data/app/cz.immersive.skoda125--clupHxOz-OYiFIhJCD_Fw==/base.apk=cz.immersive.skoda125 17 package:/data/app/com.storyup.healiumpro-HIkfGBLDqDLQxX9z2p_xJw==/base.apk=com.storyup.healiumpro 18 package:/data/app/com.oculus.environment.prod.adobe-UdLpLkJHpaAwCDOZigLugQ==/base.apk=com.oculus.environment.prod.adobe 19 package:/data/app/com.oculus.environment.prod.japan-FNQ_72-qYKBvZKExPnRYLg==/base.apk=com.oculus.environment.prod.japan package:/data/app/com.slindev.blobbytennis--uTpswj0biJ_nVstiXgmMg==/base.apk=com.slindev.blobbytennis. <================== Duplicate with different chracter size package:/data/app/com.oculus.environment.prod.spacestation-ijyhfw561Y86fj924Nq2fQ==/base.apk=com.oculus.environment.prod.spacestation package:/data/app/com.bigscreenvr.bigscreen-rK0vCh-qKHTc_KWjdE0ARw==/base.apk=com.bigscreenvr.bigscreen package:/data/app/com.oculus.socialplatform-oIVvCy11w2McPw1QwbOwkw==/base.apk=com.oculus.socialplatform package:/data/app/com.resolutiongames.abvriop.santacruz-14vy5nsg4d8eATlXdje2rA==/base.apk=com.resolutiongames.abvriop.santacruz package:/data/app/com.tiltkey.cosmic_flow_v1-n7YuuCrPa5S1KVmSFEB07Q==/base.apk=com.tiltkey.cosmic_flow_v1 package:/data/app/com.parkline.wander-tbdRXtFicOZSvpdRW5n-2g==/base.apk=com.parkline.wander package:/data/app/com.drbeef.lambda1vr-CEPK3P6r8Vo3KQ67506WfA==/base.apk=com.drbeef.lambda1vr package:/data/app/com.oculus.MiramarSetupRetail-kWqDLj1k6hhb9L9Yg6V_og==/base.apk=com.oculus.MiramarSetupRetail package:/data/app/com.Armature.SportsScrambleDemo-9qco68sxMHqXCqv7BqRduA==/base.apk=com.Armature.SportsScrambleDemo package:/data/app/com.google.android.apps.youtube.vr.oculus-BnLVpOfmCht09erYIk4HlA==/base.apk=com.google.android.apps.youtube.vr.oculus package:/data/app/com.JustDrive.JustDrive-aWw8I9VwL5y0mq34NpnD2A==/base.apk=com.JustDrive.JustDrive package:/data/app/org.xbmc.kodi-hNArR36AgLnUCYZ4EIsb-g==/base.apk=org.xbmc.kodi package:/data/app/com.netflix.mediaclient-23sFYr9H6yohrJaUIhy9YA==/base.apk=com.netflix.mediaclient package:/data/app/com.Playito.SongBeater-_Wgm7Mr25E3NoH356zpQcg==/base.apk=com.Playito.SongBeater package:/data/app/com.oculus.environment.prod.cyberhome-zRHt32RMkilihAPJlOZToA==/base.apk=com.oculus.environment.prod.cyberhome package:/data/app/Settings.OculusQuest2-Q09_cmvahOtoEs6azzD9bg==/base.apk=Settings.OculusQuest2 package:/data/app/com.oculus.CLG1-8i1o29ylZIOz06WDaDhIzw==/base.apk=com.oculus.CLG1 package:/data/app/com.yur.fitquest-4V2uXkjoFR-wibtkfwaIZQ==/base.apk=com.yur.fitquest package:/data/app/com.oculus.environment.prod.rifthome-R10Qc7gpz5ucEn1Hk-AsGQ==/base.apk=com.oculus.environment.prod.rifthome package:/data/app/com.facebook.venues-W6KXfOY-wpH5NmpdV6etow==/base.apk=com.facebook.venues package:/data/app/uk.co.incoherency.ghostracingvr-1zIDy8Ao0Y9oMC-oN98wyQ==/base.apk=uk.co.incoherency.ghostracingvr package:/data/app/com.oculus.tv-ZM2VSpS6q0WcYEycNfvMCg==/base.apk=com.oculus.tv package:/data/app/com.Baggyg.QuestZDoom_Launcher-odf3SXw_G0bLFIeeJ0mqHg==/base.apk=com.Baggyg.QuestZDoomLauncher package:/data/app/com.hanginghatstudios.pigasus-OqRB6dsTrrzcT1C88eq8aA==/base.apk=com.hanginghatstudios.pigasus package:/data/app/com.oculus.environment.prod.dome-gQ68tOASSkjvYxZM0z5P1A==/base.apk=com.oculus.environment.prod.dome package:/data/app/com.netflix.ninja.vr-gIfzh3x47LNNk2Fxuow2fw==/base.apk=com.netflix.ninja.vr package:/data/app/com.drbeef.rtcwquest-cRn32jDijc-r8LPDzfnxHQ==/base.apk=com.drbeef.rtcwquest package:/data/app/com.danjelricci.vspeedway-j-IuMPNruP-t8NqyyBWmcA==/base.apk=com.danjelricci.vspeedway package:/data/app/com.ivr.GolfSportVR-TlzZuvMxyN86PI2leLz28Q==/base.apk=com.ivr.GolfSportVR package:/data/app/com.Supermedium.Supermedium-cFKYIsZNOBfu08ZqQbeNoA==/base.apk=com.Supermedium.Supermedium package:/data/app/com.oculus.gamingactivity-pnTQY0pTbKeB35shP14EZg==/base.apk=com.oculus.gamingactivity package:/data/app/in.with.within.quest-dtVmCCrClKuBrcFGPvMGFQ==/base.apk=in.with.within.quest package:/data/app/com.oculus.environment.prod.winterlodge-IaA0btab6-Th70lyqLkxw==/base.apk=com.oculus.environment.prod.winterlodge package:/data/app/com.drbeef.quake2quest-JfnuAY6gd5o5AixXmnmT3w==/base.apk=com.drbeef.quake2quest package:/data/app/com.felixandpaul.quest.cds_portal-_awEp4dA-RUwLCHJvLAV8w==/base.apk=com.felixandpaul.quest.cds_portal package:/data/app/com.beatgames.beatsaber.demo-e57lh74cQn-PY2C9YZhZjw==/base.apk=com.beatgames.beatsaber.demo package:/data/app/com.drbeef.quakequest-TMZ4BAjUZ_aXrI-ozQ9qAA==/base.apk=com.drbeef.quakequest package:/data/app/com.stereolife.virus-N9ykKyqtizwhrH8_01xX-w==/base.apk=com.stereolife.virus package:/data/app/com.fasttravelgames.apexconstruct-qdci5fxf_1YdpG5Ind3vbQ==/base.apk=com.fasttravelgames.apexconstruct package:/data/app/com.onehamsa.RNXQ-8Mkwh-Dc_7N9bv4ddxTHIQ==/base.apk=com.onehamsa.RNXQ package:/data/app/com.J7.Hitstream-wj13Z7tq9gFvKcqTIN_Zrw==/base.apk=com.J7.Hitstream package:/data/app/com.mrck.nomedia-ZaXWt8MlMvJJ4ZmXoDEasQ==/base.apk=com.mrck.nomedia package:/data/app/com.spinview.bonechurchgo-pptqCfeq0YM-65oMpb5cPA==/base.apk=com.spinview.bonechurchgo package:/data/app/com.amazon.asxr-N2ngqeXc0c6xGUQcKUhcnA==/base.apk=com.amazon.asxr package:/data/app/com.facebook.arvr.quillplayer-4ur5OvjSec88-aXr2qMyyA==/base.apk=com.facebook.arvr.quillplayer package:/data/app/com.LiminalVR.Liminal-vMbIABHTT4qomQQpxbQq3g==/base.apk=com.LiminalVR.Liminal package:/data/app/com.MightyCoconut.WalkaboutMiniGolf-rS2MvwSNhJyMujqWeTvMbQ==/base.apk=com.MightyCoconut.WalkaboutMiniGolf