Модераторы: javastic
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сравнить сертификаты пакетов .apk 
V
    Опции темы
Nataly88
Дата 7.4.2011, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


нужно что-то менять



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 25.12.2007

Репутация: нет
Всего: нет



Здравствуйте, подскажите пожалуйста, есть ли такая возможность получить от пакета .apk подписанный сертификат, если да, то как это реализовать? архив находится на sd-csrd.
PM MAIL   Вверх
ivanovpv
Дата 7.4.2011, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


Профиль
Группа: Участник
Сообщений: 639
Регистрация: 26.1.2005
Где: Москва

Репутация: 9
Всего: 28



Да, конечно переименуйте {myapp}.apk в {myapp}.zip и извлеките Meta-inf/cert.rsa - и сравните его сигнатуру со своим сертификатом.


--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
Nataly88
Дата 7.4.2011, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


нужно что-то менять



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 25.12.2007

Репутация: нет
Всего: нет



а что вы имеете в виду под "своим" сертификатом?(к сожалению не до конца понимаю эту систему) вообще моя задача заключается в сравнении сертификатов 2-ух .apk архивов, необходим ли этот этап - сверять со "своим" сертификатом?
PM MAIL   Вверх
SneG0K
Дата 7.4.2011, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: нет
Всего: 54



Полагаю что вам тогда надо извлечь сертификаты из обоих apk и сравнить их подписи между собой
или вы хотите один сертификат перенести на другое приложение?
PM WWW Skype   Вверх
Nataly88
Дата 8.4.2011, 00:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


нужно что-то менять



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 25.12.2007

Репутация: нет
Всего: нет



нет не хочу,мне именно и нужно взять эти 2 сертификата, 2-ух разных .apk, но суть в том, что я не знаю как это сделать, я нашла такой вариант, как получить подпись, но не уверена, что этого достаточно:
PackageManager pm = getPackageManager();
                        try {
                                PackageInfo info = pm.getPackageInfo("com.example.app",
PackageManager.GET_SIGNATURES);
                                Signature[] sig = info.signatures;
                                String sigstring = new String(sig[0].toChars());
                                //Do something with signature.
                                //System.out.println(sigstring);

                        } catch (NameNotFoundException e) {
                                e.printStackTrace();
                        }

 
PM MAIL   Вверх
SneG0K
Дата 8.4.2011, 00:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: нет
Всего: 54



Так что вам надо сделать с этими сертификатами? Взять и?
PM WWW Skype   Вверх
Nataly88
Дата 8.4.2011, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


нужно что-то менять



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 25.12.2007

Репутация: нет
Всего: нет



и сравнить, если равно, то True иначе false
PM MAIL   Вверх
SneG0K
Дата 8.4.2011, 01:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: нет
Всего: 54



Ну, судя по всему ваш код возвращает строку с подписью.
таким же образом можно получить подпись и для второго приложения и просто сравнить эти строки
PM WWW Skype   Вверх
ivanovpv
Дата 8.4.2011, 07:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


Профиль
Группа: Участник
Сообщений: 639
Регистрация: 26.1.2005
Где: Москва

Репутация: 9
Всего: 28



Цитата(Nataly88 @  8.4.2011,  00:17 Найти цитируемый пост)
а что вы имеете в виду под "своим" сертификатом?(к сожалению не до конца понимаю эту систему) вообще моя задача заключается в сравнении сертификатов 2-ух .apk архивов, необходим ли этот этап - сверять со "своим" сертификатом? 


Ну значит я вас неправильно понял... Дело в том, что APK подписываются сертификатом девелопера (самодельным) - процедура описана здесь. Если же речь идет о сравнении сертификатов в двух разных APK, то программно как это сделать я не знаю - ваш код очень похож на то что нужно. Как и сказал Snegok - нужно просто сравнить строки.

Рученьками сравнение простое:
1) Извлекаем 2 файлика CERT.RSA 
2) Напускаем на него 
Код

keytool -printcert -file CERT.RSA

он и выдаст вам сигнатуры сертификата, которые надо сличить друг с другом


--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
Nataly88
Дата 8.4.2011, 08:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


нужно что-то менять



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 25.12.2007

Репутация: нет
Всего: нет



спасибо всем, буду пробовать реализовывать.
PM MAIL   Вверх
Nataly88
Дата 9.4.2011, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


нужно что-то менять



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 25.12.2007

Репутация: нет
Всего: нет



мне удалось получить подпись таким образом из пакета, но из архива не удалось,не понимаю в чем проблема, путь указан верно(к архиву производится обращение):
PackageInfo info = pm.getPackageArchiveInfo(Environment.getExternalStorageDirectory()+"/MyFolder/"+"app.apk",
PackageManager.GET_SIGNATURES);
но в info всегда null, а если брать подпись из аналогичного уже установленного приложения - все работает,может, я что-то делаю не так?

PM MAIL   Вверх
SneG0K
Дата 10.4.2011, 05:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: нет
Всего: 54



app.apk - это не что иное как зип-архив.
А установленное приложение уже куда-то там прописываеся в телефон.
Т.е. вы если вы должны програмно открыть архив и достать оттуда сертификат, посчитать его CRC (или как там, я не сильно в курсе) и сравнить.
PM WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Android | Следующая тема »


 




[ Время генерации скрипта: 0.0822 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.