Não foi possível instalar o certificado

13

Estou tentando instalar este certificado em um tablet Google Nexus 7 .

Copiei o arquivo de certificado (do Win7x64) para seu armazenamento interno e o abri em um gerenciador de arquivos para instalá-lo. Este procedimento funcionou para a versão anterior (agora expirada) do certificado (que eu removi no dispositivo antes de tentar instalar o novo).

No entanto, para este novo certificado, a seguinte mensagem aparece:

Não foi possível instalar porque o arquivo de certificado não pôde ser lido.

O mesmo arquivo pode ser instalado perfeitamente em vários armazenamentos de certificados no computador ao qual eu conectei o tablet (portanto, o arquivo baixado não está corrompido). Copiei o arquivo várias vezes para o tablet e tentei novamente, sempre com o mesmo resultado (portanto, o arquivo copiado provavelmente também não está corrompido).

O tablet tinha o Android 4.4.4 no começo e depois atualizei para o Android 5.0.2. Estou recebendo a mesma mensagem de erro nos dois sistemas.

Os administradores responsáveis ​​por fornecer o certificado não haviam recebido nenhum relatório até agora e o certificado parecia ter sido instalado perfeitamente para outras pessoas em dispositivos Android de diferentes tipos.

Não consegui encontrar muitos problemas relacionados na web; pesquisar rapidamente a mensagem de erro levou rapidamente aos arquivos de recursos de localização que especificam essa mensagem (geralmente um sinal ruim com relação à frequência de usuários por aí para encontrar uma mensagem de erro). Os links mais promissores ainda parecem ser becos sem saída:

  • A mensagem de erro é mencionada em uma postagem no fórum , mas a única reação a ela parece ser hmm ... não tenho certeza do que é isso. Vou analisar o assunto (a partir de dezembro de 2013). Não consegui encontrar nenhum acompanhamento para esse problema, e o restante do tópico parece ser uma conversa não relacionada.
  • Há uma pergunta aberta do SO que cita a mesma mensagem (embora se refira a algo chamado "Android Moto G") de março de 2014, mas ninguém forneceu uma resposta até agora.

Portanto, minhas perguntas são:

  • Para qual problema a mensagem de erro aponta?
  • Como posso instalar o arquivo de certificado?

EDIT: Aqui está a saída de log do que acontece quando tento abrir o certificado em um aplicativo gerenciador de arquivos no dispositivo:

I/ActivityManager(  540): START u0 {act=android.intent.action.VIEW dat=file:///storage/emulated/0/Download/infcacert.crt typ=application/x-x509-ca-cert flg=0x10000000 cmp=com.android.certinstaller/.CertInstallerMain} from uid 10083 on display 0

E/ActivityManager(  540): Invalid thumbnail dimensions: 720x720

I/ActivityManager(  540): Start proc com.android.certinstaller for activity com.android.certinstaller/.CertInstallerMain: pid=11644 uid=10008 gids={50008, 9997} abi=armeabi-v7a

E/CertInstaller(11644): Failed to read certificate: java.io.FileNotFoundException: /storage/emulated/0/Download/infcacert.crt: open failed: EACCES (Permission denied)

D/OpenGLRenderer(11644): Render dirty regions requested: true

D/Atlas   (11644): Validating map...

I/Adreno-EGL(11644): <qeglDrvAPI_eglInitialize:410>: QUALCOMM Build: 10/28/14, c33033c, Ia6306ec328

I/OpenGLRenderer(11644): Initialized EGL, version 1.4

D/OpenGLRenderer(11644): Enabling debug mode 0

I/ActivityManager(  540): Displayed com.android.certinstaller/.CertInstallerMain: +362ms (total +453ms)

V/RenderScript(11644): Application requested CPU execution

V/RenderScript(11644): 0xa330c400 Launching thread(s), CPUs 4

D/TaskPersister(  540): removeObsoleteFile: deleting file=7_task.xml

D/TaskPersister(  540): removeObsoleteFile: deleting file=7_task_thumbnail.png

A parte crucial da qual parece ser java.io.FileNotFoundException: /storage/emulated/0/Download/infcacert.crt: open falhou: EACCES (permissão negada) . Não entendi esta mensagem - copiei e abri com êxito outros arquivos no dispositivo da mesma maneira que fiz agora com o arquivo de certificado. Além disso, como eu definiria essas permissões de arquivo de maneira apropriada ao copiá-las para o dispositivo via Windows Explorer?

Usuário de Stgt
fonte
Se você estiver familiarizado com o adb, poderá fornecer uma cópia da saída do logcat ao tentar instalar o certificado. Como parece haver algum registro logo antes de começar a torrada. grepcode.com/file/repository.grepcode.com/java/ext/…
Morrison Chang
@MorrisonChang: adicionei a respectiva saída de log. Não tenho certeza de como interpretá-lo (nesta situação em particular - em diferentes circunstâncias, a exceção seria totalmente clara), ou melhor, como corrigir o problema.
Usuário De Stgt

Respostas:

28

Só tive o mesmo problema.

Ir para Settings> Security> Install from storage.
Localize o seu arquivo de certificado e instale-o.

Editar:
seInstall from storagevocê tem preferênciaInstall from SD card(emvez dapreferência), quando é usado o emulador API-19, por exemplo), é necessário executar uma etapa extra. Porque, neste caso, a atividade mostra apenasRecenteDownloadsmenus sem uma maneira simples de escolher o certificado no sdcard.
A solução alternativa para mim foi colocar o certificado no servidor da Web local da área de trabalho ( mangusto, por exemplo). Então (no emulador), usei o navegador de ações para abrir o diretório da web, toquei no certificado (veja abaixo) e selecioneiSave link. O arquivo será baixado e mostrado na visualização Downloads e você poderá selecioná-lo com sucesso.

salvar captura de tela do link

Alex Lipov
fonte
8

Outra ressalva: ao instalar um certificado em Configurações> Segurança> Instalar a partir do armazenamento no meu Nexus 7, Android 5.0.2, tive que navegar para o arquivo via Armazenamento Interno :

Navegue pelo armazenamento interno

Tentando selecionar o arquivo através do atalho para downloads que não funcionam.

kynan
fonte
Poderia, por favor, explicar como você faz isso? Quero dizer, como você navega para um arquivo via armazenamento interno?
Alex Lipov
@AlexLipov Adicionei uma captura de tela, espero que esclareça.
Kynan
OBRIGADO! Eu estava puxando meu cabelo neste dispositivo genymotion 5.0.0 nexus.
Dylan Pierce
Ainda tinha que fazer isso no Android P no meu Pixel. Tinha que ir para o Pixel e navegar para Downloads, em vez de usar os Downloads de nível superior, antes de aceitar os arquivos.
Jonas H.