APKファイルに署名をつけるためにkeytoolで
jarsigner -verbose -keystore c:\ディレクトリ\証明書名.keystore c:\ディレクトリ\アプリ名.apk o証明書別名
や
jarsigner -keystore 証明書名.keystore -digestalg SHA1 アプリ名.apk 証明書別名
jarsigner -verbose -keystore 証明書名.keystore -storepass パスワード1 -keypass パスワード2 -signedjar アプリ名.apk aアプリ名2.apk 証明書別名
を実行したら
jarsigner:java.lang.SecurityException: invalid SHA1 signature file digest for n ・・・es/layout/main.xml
というエラーが出てうまく署名できませんでした
そこで
jarsigner -sigalg SHA1withRSA -digestalg SHA1 -keystore 証明書名.keystore -verbose アプリ名.apk 証明書別名
で署名をつけるとあの忌々しいメッセージは表示されなくなり
「jarが検証されました」といううれしいメッセージが表示されるようになりました
しかしなぜか二重署名になってしまい、やはりGooglePlayにアプリを
登録する事はできませんでした
jarsigner -verify -verbose -certs アプリ名.apk
で確認すると
当方がつけた署名以外に
X.509, CN=Android Debug, O=Android, C=US
[証明書は11/11/02 3:15から41/10/25 3:15まで有効です]
という署名がついて複数署名になっています
また、
[CertPathが検証されていません: Path does not chain with any of the trust a
ors]
というエラーが署名の箇所に表示され文末には
このjarには、証明書チェーンがまだ検証されていないエントリが含まれています
と表示されています
なぜこのようなエラーが出るのか、複数署名になるのを防ぐ事はできるのか
もしおわかりになりましたらご指導下さい
お忙しい中ご面倒をおかけ致しますが何卒よろしくお願い申し上げます
No.3ベストアンサー
- 回答日時:
ANo.2で書き忘れていました。
Windowsを使っているなら、zipコマンドをインストールしなくても標準の機能のみでzipファイルの中の一部エントリを消すことは可能です。Androidのapkファイルはzipファイルの一種なので、apkファイルの拡張子をzipに書き換えてください。そのzipファイルをダブルクリックして開き、要らないエントリを消したら、zipファイルの拡張子をapkに戻すだけです。
もっとも、この方法で"Android Debug"署名をきちんと消せるのかどうかは保証しかねます。
ところで、登録者はアプリの内容に手を加えられない、本当の作者は音信不通という状態で、GooglePlayにアプリ登録後に不具合が見つかったりしたらどうするつもりなのでしょうか?
この回答への補足
salsberry様
何度も回答を頂き本当にありがとうございました
「META-INF」フォルダを削除し、再度圧縮する事で無署名のファイルを
作る事ができ、無事GooglePlayに登録する事ができました
salsberry様のおかげで今回非常に勉強になりました
本当に本当にありがとうございました!
ご忠告ありがとうございます
salsberry様のおっしゃるとおり、不具合が出た場合は当方では対処できないと思います
GooglePlayに登録費をもう支払ってしまっているのでなんとか公開にこぎつけたいと
考えていますがダウンロードしてくださるユーザーに迷惑をかけることのないように
無料での公開にするつもりです
素人がアプリを公開しようなどとおこがましかったですね…
お教えくださったようにZIPに拡張子を変更しましたがどれを消せばよいのかわかりません
jarsigner -verify -verbose -certsで当方が署名する前のAPKを検証いたしますと
sm 8585 Sat Jun 01 10:24:18 JST 2013 res/drawable/icon.png
X.509, CN=Android Debug, O=Android, C=US
[証明書は11/11/02 3:15から41/10/25 3:15まで有効です]
[CertPathが検証されていません: Path does not chain with any of the trust
nchors]
sm 476 Sat Jun 01 10:24:18 JST 2013 res/layout/main.xml
X.509, CN=Android Debug, O=Android, C=US
[証明書は11/11/02 3:15から41/10/25 3:15まで有効です]
[CertPathが検証されていません: Path does not chain with any of the trust
nchors]
sm 1548 Sat Jun 01 10:24:18 JST 2013 AndroidManifest.xml
X.509, CN=Android Debug, O=Android, C=US
[証明書は11/11/02 3:15から41/10/25 3:15まで有効です]
[CertPathが検証されていません: Path does not chain with any of the trust
nchors]
sm 1292 Sat Jun 01 10:24:20 JST 2013 resources.arsc
X.509, CN=Android Debug, O=Android, C=US
[証明書は11/11/02 3:15から41/10/25 3:15まで有効です]
[CertPathが検証されていません: Path does not chain with any of the trust
nchors]
sm 4456 Sat Jun 01 10:24:18 JST 2013 classes.dex
X.509, CN=Android Debug, O=Android, C=US
[証明書は11/11/02 3:15から41/10/25 3:15まで有効です]
[CertPathが検証されていません: Path does not chain with any of the trust
nchors]
s 401 Sat Jun 01 10:24:18 JST 2013 META-INF/MANIFEST.MF
X.509, CN=Android Debug, O=Android, C=US
[証明書は11/11/02 3:15から41/10/25 3:15まで有効です]
[CertPathが検証されていません: Path does not chain with any of the trust
nchors]
454 Sat Jun 01 10:24:18 JST 2013 META-INF/CERT.SF
1203 Sat Jun 01 10:24:18 JST 2013 META-INF/CERT.RSA
s=署名が検証されました
m=エントリがマニフェスト内にリストされます
k=1つ以上の証明書がキーストアで検出されました
i=1つ以上の証明書がアイデンティティ・スコープで検出されました
jarが検証されました。
警告:
このjarには、証明書チェーンがまだ検証されていないエントリが含まれています。
というふうにZIPファイルを展開したら表示されるすべてのファイル名に
署名がついています
なのでどのファイルを削除すれば複数署名を防ぐ事ができるのかわかりません
もしよろしければ何度も申し訳ございませんがご教授下さい
よろしくお願い申しあげます
そして何度も回答を下さる事に心より感謝申し上げます
本当に本当にありがとうございます
No.2
- 回答日時:
質問者さん自身はアプリの内容を変更するスキルがなく、問題のアプリはよそから購入したものなのですよね?
だったら、購入先に「未署名のファイルをよこせ」と言えばいいだけのことではないでしょうか。
ご指摘ありがとうございます
一度交渉してみます
購入先には今回の署名の件で問い合わせをしていたのですが
結局解決に至る前に音信不通になってしまいまして…
今回の要望に応えてもらえるかどうかわかりませんが
お願いしてみます
ありがとうございました
No.1
- 回答日時:
「質問者さんが署名する前から、そのapkファイルには"Android Debug"で署名されていた」に一票。
質問者さんが署名する前のapkファイルを jarsigner -verify -verbose -certs アプリ名.apk で検証してみてください。
お忙しい中回答いただきありがとうございます!
確かに署名されているようです
これを外すにはどうすればよいのでしょうか?
zipコマンドで
$ zip -d app.apk.debug_signed 'META-INF/*'
deleting: META-INF/MANIFEST.MF
deleting: META-INF/CERT.SF
deleting: META-INF/CERT.RSA
と入れれば署名が消せるらしいのですが「ZIPコマンド」をどのように
入手すればよいのかわかりません
コマンドプロンプトで入力しても当然でしょうが
'zip' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
C:\Documents and Settings\Owner>deleting: META-INF/MANIFEST.MF
'deleting:' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
C:\Documents and Settings\Owner>deleting: META-INF/CERT.SF
'deleting:' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
と表示されます
どうすればすでに署名されているものを削除できるのでしょうか?
何度も申し訳ございませんがおわかりになりましたらご指導下さい
よろしくお願いいたします
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(税金) 令和3年分の医療費控除をe-taxで行おうとしております。 何度やっても、最後の送信で写真のようにエ 2 2022/12/02 21:40
- 戸籍・住民票・身分証明書 マイナンバーカードのパスワードはどの様に保管すべきか、国から指示はありますか? 5 2023/07/02 01:27
- その他(IT・Webサービス) iphoneでのマイナンバーカードの署名用電子証明書のパスワードの確認方法。 2 2022/10/11 17:31
- その他(悩み相談・人生相談) 配達証明。郵便局員が受取人の署名を勝手に書く事って、ありますか? 現在、行政機関における処分に対して 1 2022/11/20 20:35
- 確定申告 マイナポータルの 電子署名用パスワード 利用者証明電子証明書 これいつ決めたか覚えてません 2 2022/05/17 22:14
- PDF 間違ってPDFに不可視署名をしてしまったのですが、削除の方法を教えてください 1 2022/10/06 12:07
- その他(行政) なんと自転車で違反切符されました 明らかに止まってたのに赤信号無視やね言われた 本人確認書類とかない 5 2022/06/03 08:43
- 警察・消防 なんと自転車で違反切符されました 明らかに止まってたのに赤信号無視やね言われた 本人確認書類とかない 5 2022/06/02 19:12
- 事故 自転車で違反切符されました 明らかに止まってたのに赤信号無視やね言われた 本人確認書類とかないから 3 2022/06/02 09:16
- その他(ニュース・時事問題) マイナンバーを頑張って記憶しても マイナカードは必要なのかなぁ。 10 2023/07/22 03:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
#include <Windows.h>というヘ...
-
Latexで図番号だけを「図1.1」...
-
自分で作成した重要ファイルを...
-
アクセス 壊れた? 「ファイ...
-
binファイルを解凍したいの...
-
.NETアプリを作ったときの .man...
-
参照するファイルをワイルドカ...
-
ADODB.Streamで開いたファイル...
-
コマンドプロンプトで作成日時...
-
exeファイルの中身を見る方法は...
-
jarファイル
-
VB.netで DirListBoxを使いたい
-
実行ファイル(.exeファイル)...
-
ハイパーリンクされたJPGファイ...
-
g1tファイルとは
-
既に開いているエクセルを閉じ...
-
公文書のxmlファイルの開き方が...
-
Seasar2のdiconファイルの読み方
-
バッチ処理で追記コピーしたい
-
Word VBA MSGBOX 内で降順表示
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
iPhoneでXMLファイルを開くには...
-
公文書のxmlファイルの開き方が...
-
binファイルを解凍したいの...
-
アクセス 壊れた? 「ファイ...
-
.NETアプリを作ったときの .man...
-
リンクの張り付けかたを教えて...
-
#include <Windows.h>というヘ...
-
jarファイル
-
Seasar2のdiconファイルの読み方
-
Word VBA MSGBOX 内で降順表示
-
監視ツールを入れさせられまし...
-
CSSを1ページに1枚作るのって変...
-
コマンドプロンプトで、指定し...
-
ファイルが開かれているかどう...
-
exeファイルをデータ転送サービ...
-
パイソンでpy ファイルと p...
-
exeファイルの中身を見る方法は...
-
Latexで図番号だけを「図1.1」...
-
参照するファイルをワイルドカ...
-
バッチ処理で追記コピーしたい
おすすめ情報