It is possible on quite a few modern Android phones to access raw receiver data and do post-processing using a rinet file to get mm-level accuracy. It's a little over my head since this isn't my industry. One of Google's more obscure Android apps to be used with it: https://play.google.com/store/apps/details?id=com.google.and...
GPSTest also carries some logging functionality to do the same: https://github.com/barbeau/gpstest