无法安装证书


13

我正在尝试在Google Nexus 7平板电脑上安装此证书

我已将证书文件(从Win7x64)复制到其内部存储中,并在文件管理器中将其打开以进行安装。此过程适用于证书的先前版本(现已过期)(在尝试安装新证书之前已在设备上将其删除)。

但是,对于此新证书,将出现以下消息:

无法安装,因为无法读取证书文件。

可以将同一文件完美地安装到我将平板电脑连接到的计算机上的各种证书存储中(因此,下载的文件没有损坏)。我多次将文件复制到平板电脑,然后再次尝试,结果始终相同(因此,复制的文件也很可能没有损坏)。

平板电脑最初使用的是Android 4.4.4,然后我升级到了Android 5.0.2。我在两个系统上都收到相同的错误消息。

到目前为止,负责提供证书的管理员尚未收到任何此类报告,并且该证书对于其他人在不同类型的Android设备上似乎可以完美安装。

我在网上找不到许多相关问题;搜寻错误消息很快导致指定该消息的本地化资源文件(通常,相对于在那里遇到错误消息的用户频率而言,这是一个不好的信号)。最有希望的联系似乎仍然是死胡同:

  • 论坛帖子中提到了该错误消息,但是对此的唯一反应似乎是hmm ...不确定该是什么。我会仔细研究一下(从2013年12月开始)。我找不到该问题的任何后续措施,该线程的其余部分似乎无关紧要。
  • 从2014年3月开始,有一个公开的SO问题引用了相同的消息(尽管指的是“ Android Moto G”),但到目前为止,没有人提供答案。

因此,我的问题是:

  • 错误消息实际上指向什么问题?
  • 如何安装证书文件?

编辑:这是当我尝试在设备上的文件管理器应用中打开证书时发生的情况的日志输出:

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

其中的关键部分似乎是java.io.FileNotFoundException:/storage/emulated/0/Download/infcacert.crt:打开失败:EACCES(权限被拒绝)。我不明白该消息-我已经成功地将其他文件复制并打开到设备中,就像现在使用证书文件一样。此外,通过Windows资源管理器将这些文件权限复制到设备时,我还要如何适当设置这些文件权限?


如果您熟悉adb,可以在尝试安装证书时提供logcat输出的副本。在您敬酒之前,似乎已经有些伐木了。grepcode.com/file/repository.grepcode.com/java/ext/…–
Morrison Chang

@MorrisonChang:我已经添加了相应的日志输出。我不确定如何解释(在这种特殊情况下-在不同情况下,例外情况将是完全清楚的),或者不确定如何解决此问题。
从Stgt用户在2015年

Answers:


28

只是有同样的问题。

转到Settings> Security> Install from storage
找到并安装证书文件。

编辑:
如果不是Install from storage您的首选项Install from SD card(例如,这是在使用API​​-19仿真器时显示的内容),则需要多执行一个步骤。因为在这种情况下,活动仅显示RecentDownloads菜单,而没有简单的方法从sdcard中选择证书。
对我来说,解决方法是将证书放在桌面的本地Web服务器上(例如猫鼬)。然后(在模拟器上),我使用库存浏览器打开Web目录,点击证书(见下文)并选择Save link。该文件将被下载并显示在“下载”视图中,您将能够成功选择它。

保存链接截图


9

另一个警告:通过Nexus 7,Android 5.0.2上的“设置”>“安全性”>“从存储安装”安装证书时,我必须通过“ 内部存储”导航到该文件:

通过内部存储导航

试图选择通过快捷方式文件下载没有工作。


你能解释一下你是怎么做到的吗?我的意思是,您如何通过内部存储导航到文件?
Alex Lipov 2015年

@AlexLipov我添加了屏幕截图,希望可以澄清。
凯南2015年

谢谢!我正在这个genymotion 5.0.0 nexus设备上拔头发。
迪伦·皮尔斯

仍然必须在Pixel上的Android P中执行此操作。必须先转到Pixel,然后再导航到“下载”,而不是使用顶级下载,然后才能接受文件。
乔纳·H
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.