問題タブ [jarsigner]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Android キーストアが機能しなくなった
つい最近、キー ストアで問題が発生しました。この問題についてはすでに多くの質問があることを知っています。私はそれらすべてを読み、猛烈にグーグルで検索しました。
エラー:
私が使用しているソフトウェア:
ジャワ
エクリプス
最新の ADT プラグイン
最新の Android SDK
これが私が知っていることです:
- 私はパスワードを紛失しておらず、変更されたこともありません。
- パスワードを取得できません (パスは知っています)。
- まったく新しいアプリケーションをリリースせずに、別のキーで既存のアプリケーションに署名することはできません (したがって、更新を公開することはできません)。
これが私がやったことです:
- Eclipse を何度もアンインストールして再インストールしました。
- Android ADT プラグインをアンインストールして再インストールしました。
- 最新の Android SDK を何度も削除して再ダウンロードしました。
- JDK7をアンインストールして再インストールしました。
- キーストアのバックアップを使用してみました。
- 「md5sum KEYSTORE」を使用して MD5 チェックサムをチェックし、バックアップと比較しました (同じ MD5 出力 - 改ざんされていません)。
- キー ストアの総当りを試みました (知っているパスワードを取得しました)。
- テストキーを作成し(現在のセットアップで)、パスワードをテストしたところ、うまく機能しているようです(何かが変更されました)。
- Android .apk を手動でエクスポートしてから、署名しようとしました (Eclipse の外部)。
署名されたアプリケーションをエクスポートする方法は次のとおりです。
- Eclipse 経由: [ファイル] > [エクスポート] > [Android アプリケーションのエクスポート] を使用したエクスポート。
- JDK7 より前: jarsigner -verbose -keystore KEYSTORE FILE ALIAS。
- JDK7 の場合: jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore KEYSTORE FILE ALIAS。
理解したり試したりするために何が残っていますか?
「trusted.certs」ファイルを削除するように指示されている参照/URL がありますか?「debug.keystore」を削除してみてください。Eclipse や Android 開発ツールを更新すると、キーストアに影響がありますか?Java を jdk6 から jdk7 に更新すると問題が発生しますか?とにかく、これは jarsigner の動作を台無しにしたり、変更したりする可能性がありますか?
ユーザーの提案:
- JDK6 を使用してみましたが、最近アプリケーションをエクスポートできました。
local.properties で key.store.password または key.alias.password を確認しましたEclipse で自動的にビルドのチェックを外し、プロジェクトをクリーンアップするワークスペースの .metadata フォルダーを削除し、すべての一時フォルダーをクリアしてみてください。
概要
- キーストアは変更されていません。
- 私はキーストアへのパスワードを持っています。
- 最近、以下を使用してアプリケーションを正常にエクスポートしました。
- Eclipse 3.8 (および Eclipse 4.0+)、
- 最新の Java 7、
- 最新の ADT プラグイン。
- 最後に成功したエクスポートとビルドは、数週間前に Eclipse 3.8、最新の Android ツール、および同じパスワードで Java 7 を使用したものでした。
更新 (2014 年 6 月 29 日)
- keytool -list -keystore KEYSTOREを使用して、4つのキーのうち3つが機能することを正常に証明し、示しました。
- 最後のキーをブルートフォースし、キーストアからパスワードを取得しました (既に知っているパス) が、署名のために入力するとパスワードが機能しません。私が使用したのは、java -jar AndroidKeystoreBrute_v1.02.jar -m 3 -k KEYSTORE -d WORDLISTです。
- 奇妙なことに、Eclipse にパスワードをすばやく入力すると、エイリアスが表示され、アプリケーションを正常にエクスポートできる場合があります。(私はこれがクレイジーであることを知っています)。
- Javaのバージョンを更新しました。
パスワードをすばやく入力すると、うまくいくことがあります。
Eclipse を開いて最初にパスワードを入力すると、キーストアを使用できるようになります。
明らかに、他のすべてが失敗した場合は、新しいキー ストアを作成する必要があります。私は本当にこれを解決したいと思っています。新しいキーで再発行する以外に、今何をすべきかわかりません。
キーが適切に復元できない場合は、Github でオープン ソース化する可能性があります。
解決策 (2014 年 6 月 29 日):
ユーザーErhannisに特別な感謝を!
これが私がしたことです:
コマンドは毎回エラーになります:
Java キーストア (.jks) から秘密鍵を抽出できるとのことでしたので、さらに掘り下げて、コマンドのバリエーションを使用することになりました。こことここに投稿したリンクをたどりました:
秘密鍵を抽出して PKCS12 として保存した後、秘密鍵を抽出して新しい Java キーストアに戻したと思います。
参考文献:
http://developer.android.com/tools/publishing/app-signing.html#signapp
http://code.google.com/p/android-keystore-password-recover/
私が読んだ StackOverflow URL のリスト:
Androidで失われたKeyStoreパスワードを処理するには?
Android: Android キー ストアを紛失しました。どうすればよいですか?
ブルートフォース検出を考えて、キーストアのパスワードを忘れました。キーストアが破損しますか?
Android Keystore ファイルのパスワードを紛失しました
署名済みのリリース キーストアを Eclipse で実行する際の問題
java - 署名されたAPKまたはJARから生のX.509証明書を抽出します
さまざまなjarに署名するために使用される公開鍵のMD5ハッシュのライブラリと、さまざまなAPKに署名するために使用するそれぞれのキーストアへのマッピングがあります。私がやりたいのは、試行錯誤をせずに、APKの署名に使用されたキーストアを特定することです。(また、悲しいことに、私たちのキーの多くは類似または同一のDNを共有しています。)
私の解決策は、META-INF / FOO.RSA(またはFOO.DSA)に証明書が含まれていることを知っているため、APKのRSAファイルから証明書を抽出し、MD5ハッシュを直接計算することでした。(実行中のAndroidアプリケーションからアクセスできるため、証明書が存在することはわかっています。jarsignerのドキュメントには、証明書が存在することが示されています。)
しかし、証明書の実際のバイトを提供するツールが見つかりません。を使用するとDNと証明書のメタデータを取得できますがjarsigner -verbose -verify -certs my.apk
、バイトが取得されません。
android - Androidフォンで「.apk」ファイルに署名する方法は?
電話で新しい「.apk」ファイル (アプリのようなアプリ市場の機能) を生成したいのですが、インストールする前に署名する必要があります。電話で JarSigner を実行する必要があると思います。
JarSigner は、OpenJDK と GCC-libjava の 2 つのプロジェクトにあります。
インターネットからダウンロードした OpenJDK.jar を含めようとしましたが、JarSigner クラスが含まれていません。
また、JarSigner.java を OpenJDK ソースから Android APP プロジェクトに追加しようとしましたが、依存関係が多すぎます。GCC-LibJAVA の JarSigner.java と同じです。
Android 用の新しい JarSigner を実装するのは非常に困難です。
android - インストール時に「パッケージ ファイルが正しく署名されていません」というエラーが表示される
Android アプリを作成し、Google Play ストアで公開しました。その後のダウンロード時に、「パッケージ ファイルが正しく署名されていませんでした」というエラーが表示されます。調査したところ、次のエントリが見つかりました。
公開された Android APK で「パッケージ ファイルが正しく署名されていません」というエラーが表示される
JDK 6 ソリューション (JDK 6 でコンパイルおよび署名) を試しましたが、満足のいく結果は得られませんでした。2.3.3 と 4.x の両方のデバイスにダウンロード/インストールしようとしましたが、どちらも機能しませんでした。私の場合、アプリは新しいものだったので、キーストアも (更新ではなく) 新しいものです。新しいキーストアは最初に JDK 1.7 で作成されたと言います。
この問題を解決する方法に困惑しています。誰か考えがありますか?
java - maven-jarsigner-pluginでのリリース時にのみTSA引数を設定する方法
jarにタイムスタンプを追加すると、Mavenビルドに通常の約4倍の時間がかかります。リリースビルドにはタイムスタンプが必要ですが、スナップショットビルドには必要ありません。リリースバージョンの場合(つまり、SNAPSHOTがプロジェクトバージョンに表示されない場合)にのみTSA引数を追加するようにPOMファイルを構成するにはどうすればよいですか。
以下は、jarsignerプラグインのPOMエントリです。下部に追加された引数に注意してください。プロジェクトバージョンにSNAPSHOTが表示されている場合は、これらを追加しないでください。
android - keytool と jarsigner を使用してアプリに署名する
コモンズウェアの本と、アプリに署名する方法を説明する Android ドキュメントの両方を使用しています。でも、わからないことがあって…
KeyStore ファイルを問題なく生成できました。
現在、コモンズウェアの本には、「プロジェクトの bin/directory に unsigned.apk ファイルを作成するリリース バージョンをビルドする」と記載されていますが、その方法は説明されていません。Eclipseでそれを行う方法がわかりません。Build -> Release メニュー項目がないようです。グーグルで調べてみましたが、何も見つかりませんでした。
Androidのドキュメントには、「2.アプリケーションをリリースモードでコンパイルする」と書かれており、「署名されていないアプリケーションパッケージをエクスポートする」ように指示され、どこかに保存されます。私はそれをしました、そして今私は2つのapkファイルを持っています. 1 つは私の bin ディレクトリにあり、もう 1 つはエクスポートしました。今ではjarsignerとzipalignerを使用するように言われていますが、私はこれを保存したエクスポートされたapk(私のbinディレクトリにあるものではない)に対して行っていると仮定しています(それは言いません)。次に、この保存された apk を bin ディレクトリ内の apk にコピーするだけですか?? 次回のコンパイル時に消去されませんか?
これは、アプリの作成よりもはるかに難しく、楽しくありません。
誰かが私を正すことができますか?ありがとう、ゲイリー
android - Windows 上の Android 署名アプリケーション
APK にサインアップして Play ストア マーケットにアップロードしようとしています。ここで下線を引いた手順に従っています
次のエラーが表示されます
Eclipse を使用してアプリケーションに署名しようとするとproject->Android Tools->Export Signed Application Package
。
android - Jarsigner が間違ったディレクトリにある - HoloEverywhere + Maven
現在、このページのガイドラインを使用して、holoeverywhere プロジェクトを構築しようとしています。 https://github.com/ChristopheVersieux/HoloEverywhere/wiki/Maven
しかし、プロジェクトをビルドしようとすると、最終的に jarsigner に関してビルドが失敗します。
エラーは次のとおりです。
jarsigner.exe を見つけようとしたディレクトリに移動しましたが、そこにはありませんでした。そのため、C:\Program Files\Java\jdk1.7.0_11\bin\ で見つけ、jarsigner.exe の場所が間違っていることに気付きました。
jarsigner の場所を指定するために、pom.xml に含めるタグをグーグルで検索してみました。jdkインストール、jarsigner(JARSIGNERLOCATION内)などへのパス変数を正しく設定しました...
私の質問は、ビルダーがファイルを見つけられるように、jarsigner.exe の場所をどこに設定すればよいかということです。
参照用に私の pom.xml を示します。
ありがとうございました!!!!!
android - .apkファイルに署名しようとしたときにエラーが発生しました
署名されていない.apkファイルの署名に問題があります。
このコマンドを入力しようとするといつでもjarsigner –verbose –sigalg MD5withRSA –digestalg SHA1 –keystore my-release-key.keystore AmazonInAppSample-release-unsigned.apk alias_name
このエラーが発生します:
このコマンドを実行しました。現在のディレクトリは、キーストアと.apkファイルが存在するbinフォルダーです。
また、正しいパスワードを入力したことを確認しました。
空白のパスを入力しようとすると、次のメッセージが表示されます。
正しいパスワードまたは無効なパスワードを入力しようとすると、次のメッセージが表示されます。
更新:–sigalg MD5withRSA –digestalg SHA1を使用するには、Java JDK 7をインストールする必要がありますか?
java - Jar ファイルに署名する
いくつかのクラス ファイルを jar に手動で追加しました。サーバーに置き換えられます。しかし、サーバーは次のような新しい jar を思い付きませんでした: java.lang.SecurityException: クラス "test.TestProcess2" の署名者情報が、同じパッケージ内の他のクラスの署名者情報と一致しません。
更新後に jar に署名する必要がありますか。また、その方法も教えてください。
前もって感謝します