Coordenadas de 'Dumpsys local' são censurados em dispositivos Huawei -- huawei campo com location-services campo com dumpsys camp android Relacionado O problema

Coordinates from 'dumpsys location' are censored on Huawei devices


1
vote

problema

português

Eu gostaria de ler coordenadas do meu Huawei P30 Pro por ADB chamando ABCDEFGHIJKLMNABCDEFGHIJKLMN0 . No entanto, a saída é como:

  Last Known Locations:    gps: Location[gps 11******,14****** ...    

Eles são censurados com estrelas, embora o GPS já esteja ligado.

Alguma ideia?

english

I'd like to read coordinates from my Huawei P30 Pro via ADB by calling adb shell dumpsys location. However, the output is like:

Last Known Locations:    gps: Location[gps 11******,14****** ... 

They are censored with stars even though the GPS is already turned on.

Any idea?

        

Lista de respostas

1
 
vote

Parece Esta é uma modificação que Huawei fez por si mesmos (razões factuais ainda não encontradas). Em suma, o método para imprimir o detalhe do local foi sobrescrito.

dumpsys comando chamadas o método de despejo de serviços do sistema (mais detalhe em Esta resposta sobre o estouro de pilha ), e para dumpsys location , o respectivo serviço é LocationManagerService .

o abcdefghijklmn4 método para LocationManagerService (no Android 10, mas Também não há grandes diferenças nas versões anteriores) contém código como este:

  ...  pw.println("  Last Known Locations:"); for (Map.Entry<String, Location> entry : mLastLocation.entrySet()) {     String provider = entry.getKey();     Location location = entry.getValue();     pw.println("    " + provider + ": " + location); }  ...    

Onde ele irá iterar os últimos locais conhecidos de todos os provedores de localização e imprimir o nome do provedor e sua localização. Observe que o local é uma instância de Location objetos.

Por padrão, o método para imprimir o detalhe do objeto Location ( abcdefghijklmnAbcdefghijklmn8 ) contém código como Isto:

  @Override public String toString() {     StringBuilder s = new StringBuilder();     s.append("Location[");     s.append(mProvider);     s.append(String.format(" %.6f,%.6f", mLatitude, mLongitude));     ...    

onde irá imprimir a latitude e longitude em 6 dígitos decimais.

Para muitos dispositivos, este é o comportamento padrão, conforme mostrado no Nexus 5 com Lineageos 14.1 (Android 7.1):

  dumpsys location0   

Os números são alterados devido à razão de privacidade

Ao substituir o método, OEMs pode personalizar como dumpsys location1 exibirá o conteúdo. (Nota: Enquanto Android requer que alguns serviços não sejam modificados , a localização não é uma delas)

 

It looks like this is a modification that Huawei did by themselves (factual reasons not yet found). In short, the method to print the location's detail was overwritten.

dumpsys command calls the system services' dump method (more detail on this answer on Stack Overflow), and for dumpsys location, the respective service is LocationManagerService.

The dump() method for LocationManagerService (in Android 10, but also no major differences on previous versions) contains code like this:

...  pw.println("  Last Known Locations:"); for (Map.Entry<String, Location> entry : mLastLocation.entrySet()) {     String provider = entry.getKey();     Location location = entry.getValue();     pw.println("    " + provider + ": " + location); }  ... 

where it will iterate the last known locations from all location providers and print the name of the provider and its location. Note that the location is an instance of Location objects.

By default, the method to print the detail of the Location object (toString()) contains code like this:

@Override public String toString() {     StringBuilder s = new StringBuilder();     s.append("Location[");     s.append(mProvider);     s.append(String.format(" %.6f,%.6f", mLatitude, mLongitude));     ... 

where it will print the latitude and longitude in 6 decimal digits.

For many devices, this is the standard behavior, as shown on Nexus 5 with LineageOS 14.1 (Android 7.1):

 Last Known Locations:     ...     fused: Location[fused 1.234567,101.010101 acc=500 et=+12h00m00s000ms]     ... 

The numbers are changed due to privacy reason

By overriding the method, OEMs can customize how dumpsys will display the content. (Note: while Android requires some services not to be modified, location is not one of them)

 
 
     
     

Perguntas relacionadas

0  saída de telefonia dumpsys.registry  ( Output of dumpsys telephony registry ) 
Eu tenho um problema. Resolver é muito necessário para mim, muito obrigado pela sua ajuda. Quando eu executo o comando dumpsys telephony.registry | grep ...

0  Quais são as razões de desconexão Wi-Fi no WiFi do ADB Dumpsys?  ( What are the wi fi disconnect reasons on adb dumpsys wifi ) 
adb dumpsys wifi me dá, entre muitos outros, linhas como esta: Event [IFNAME=wlan0 CTRL-EVENT-DISCONNECTED bssid=X reason=7] O que significa reason=...

1  / bin / sh: dumpsys: não encontrado  ( Bin sh dumpsys not found ) 
Eu estou trabalhando em um USOM 845 (Linux SDA845 4.9.103) e deseja modificar o comportamento de carregamento / bateria USB. Eu não sou o mais bem informado q...

0  ADB Dumpsys Batterystats - Como se lê?  ( Adb dumpsys batterystats how does one read it ) 
Por que na terra é o comando abcdefghgjklmnabcdefghijklmn1 não imprimir timestamps regulares? (Como usagestats faz por exemplo, ou literalmente qualquer o...

2  Dumptrace File - / Data / AnR /  ( Dumptrace file data anr ) 
Na torta Android, toda vez que tomamos um bugraport, gera um arquivo temporário em dados / anr. Este arquivo temporário não é apagado e permanece no dispositi...

1  Coordenadas de 'Dumpsys local' são censurados em dispositivos Huawei  ( Coordinates from dumpsys location are censored on huawei devices ) 
Eu gostaria de ler coordenadas do meu Huawei P30 Pro por ADB chamando ABCDEFGHIJKLMNABCDEFGHIJKLMN0 . No entanto, a saída é como: Last Known Locations: ...




© 2022 pergunte.org All Rights Reserved. Casa de perguntas e respostas todos os direitos reservados


Licensed under cc by-sa 3.0 with attribution required.