File tree Expand file tree Collapse file tree 1 file changed +20
-0
lines changed
services/java/com/android/server Expand file tree Collapse file tree 1 file changed +20
-0
lines changed Original file line number Diff line number Diff line change @@ -640,7 +640,27 @@ private boolean isAllowedProviderSafe(String provider) {
640640 == PackageManager .PERMISSION_GRANTED ) ||
641641 (mContext .checkCallingOrSelfPermission (ACCESS_COARSE_LOCATION )
642642 == PackageManager .PERMISSION_GRANTED );
643+ } else {
644+ // mock providers
645+ LocationProviderInterface lp = mMockProviders .get (provider );
646+ if (lp != null ) {
647+ ProviderProperties properties = lp .getProperties ();
648+ if (properties != null ) {
649+ if (properties .mRequiresSatellite ) {
650+ // provider requiring satellites require FINE permission
651+ return mContext .checkCallingOrSelfPermission (ACCESS_FINE_LOCATION )
652+ == PackageManager .PERMISSION_GRANTED ;
653+ } else if (properties .mRequiresNetwork || properties .mRequiresCell ) {
654+ // provider requiring network and or cell require COARSE or FINE
655+ return (mContext .checkCallingOrSelfPermission (ACCESS_FINE_LOCATION )
656+ == PackageManager .PERMISSION_GRANTED ) ||
657+ (mContext .checkCallingOrSelfPermission (ACCESS_COARSE_LOCATION )
658+ == PackageManager .PERMISSION_GRANTED );
659+ }
660+ }
661+ }
643662 }
663+
644664 return false ;
645665 }
646666
You can’t perform that action at this time.
0 commit comments