Merge pull request #131 from usetrmnl/debug-workflow

[MORE] Debugging for the key
This commit is contained in:
Hossain Khan
2025-06-28 12:35:52 -04:00
committed by GitHub
+127
View File
@@ -285,3 +285,130 @@ jobs:
echo "Full entry details:"
cat keystore-test/entry-details.txt
fi
- name: Compare Working vs Broken Keystore
if: always()
run: |
echo "Comparing your keystore with the working debug keystore..."
echo "=== Your keystore details ==="
keytool -list -v -keystore keystore-test/release.keystore \
-storepass "${{ secrets.KEYSTORE_PASSWORD }}" \
-alias "${{ secrets.KEY_ALIAS }}" > keystore-test/your-keystore-details.txt 2>&1 || true
echo "=== Debug keystore details ==="
keytool -list -v -keystore keystore-test/debug.keystore \
-storepass "android" \
-alias "androiddebugkey" > keystore-test/debug-keystore-details.txt 2>&1 || true
echo "=== Testing jarsigner with debug keystore ==="
jarsigner -keystore keystore-test/debug.keystore \
-storepass "android" \
-keypass "android" \
-signedjar keystore-test/debug-signed.jar \
keystore-test/test.jar \
"androiddebugkey" > keystore-test/debug-signing.txt 2>&1 || true
if [ -f keystore-test/debug-signed.jar ]; then
echo "✅ Debug keystore can sign files successfully"
ls -la keystore-test/debug-signed.jar
else
echo "❌ Even debug keystore failed to sign"
cat keystore-test/debug-signing.txt
fi
- name: Test with Different jarsigner Options
if: always()
run: |
echo "Testing jarsigner with different options..."
# Try with explicit storetype
echo "=== Trying with explicit -storetype PKCS12 ==="
jarsigner -keystore keystore-test/release.keystore \
-storetype PKCS12 \
-storepass "${{ secrets.KEYSTORE_PASSWORD }}" \
-keypass "${{ secrets.KEY_PASSWORD }}" \
-signedjar keystore-test/signed-pkcs12.jar \
keystore-test/test.jar \
"${{ secrets.KEY_ALIAS }}" > keystore-test/signing-pkcs12.txt 2>&1 || true
# Try with JKS storetype
echo "=== Trying with explicit -storetype JKS ==="
jarsigner -keystore keystore-test/release.keystore \
-storetype JKS \
-storepass "${{ secrets.KEYSTORE_PASSWORD }}" \
-keypass "${{ secrets.KEY_PASSWORD }}" \
-signedjar keystore-test/signed-jks.jar \
keystore-test/test.jar \
"${{ secrets.KEY_ALIAS }}" > keystore-test/signing-jks.txt 2>&1 || true
# Try without keypass (in case store and key passwords are the same)
echo "=== Trying without explicit -keypass ==="
jarsigner -keystore keystore-test/release.keystore \
-storepass "${{ secrets.KEYSTORE_PASSWORD }}" \
-signedjar keystore-test/signed-no-keypass.jar \
keystore-test/test.jar \
"${{ secrets.KEY_ALIAS }}" > keystore-test/signing-no-keypass.txt 2>&1 || true
echo "Results summary:"
for test in pkcs12 jks no-keypass; do
if [ -f keystore-test/signed-$test.jar ]; then
echo "✅ $test approach worked"
else
echo "❌ $test approach failed:"
cat keystore-test/signing-$test.txt | head -2
fi
done
- name: Analyze Private Key Accessibility
if: always()
run: |
echo "Analyzing private key accessibility..."
# Try to export the private key (this will fail but give us info)
echo "=== Attempting to access private key directly ==="
keytool -exportcert -keystore keystore-test/release.keystore \
-storepass "${{ secrets.KEYSTORE_PASSWORD }}" \
-alias "${{ secrets.KEY_ALIAS }}" \
-file keystore-test/cert.der > keystore-test/export-cert.txt 2>&1 || true
if [ -f keystore-test/cert.der ]; then
echo "✅ Certificate export successful"
file keystore-test/cert.der
openssl x509 -in keystore-test/cert.der -inform DER -text -noout | head -10
else
echo "❌ Certificate export failed"
cat keystore-test/export-cert.txt
fi
# Check if we can change the key password (requires private key access)
echo "=== Testing private key access by changing key password ==="
cp keystore-test/release.keystore keystore-test/test-copy.keystore
keytool -keypasswd -keystore keystore-test/test-copy.keystore \
-storepass "${{ secrets.KEYSTORE_PASSWORD }}" \
-alias "${{ secrets.KEY_ALIAS }}" \
-keypass "${{ secrets.KEY_PASSWORD }}" \
-new "newpassword123" > keystore-test/keypasswd-test.txt 2>&1 || true
if grep -q "Warning" keystore-test/keypasswd-test.txt; then
echo "❌ Cannot access private key for password change"
cat keystore-test/keypasswd-test.txt
else
echo "✅ Private key is accessible for password changes"
# Now try jarsigner with the new password
echo "=== Testing jarsigner with new key password ==="
jarsigner -keystore keystore-test/test-copy.keystore \
-storepass "${{ secrets.KEYSTORE_PASSWORD }}" \
-keypass "newpassword123" \
-signedjar keystore-test/signed-newpass.jar \
keystore-test/test.jar \
"${{ secrets.KEY_ALIAS }}" > keystore-test/signing-newpass.txt 2>&1 || true
if [ -f keystore-test/signed-newpass.jar ]; then
echo "✅ Signing worked with new key password!"
else
echo "❌ Still failed with new key password"
cat keystore-test/signing-newpass.txt
fi
fi