Как я могу изменить и перевыпустить приложение AOSP?

Меня раздражает простая особенность, отсутствующая в приложении электронной почты Android. Поскольку это приложение выпущено как с открытым исходным кодом, я могу исправить это довольно легко.

Вопрос: Как я могу отменить эту модификацию таким образом, чтобы я и другие пользователи могли установить модифицированное приложение EMail (без доступа root)? Я попробовал следующее:

  1. С большим количеством копий я смог создать приложение EMail со стандартной инструментальной цепочкой Eclipse / ant и без инструментальной привязки ASOP, которая использует make-скрипты.
  2. Установка этого приложения теперь приводит к ошибке, поскольку пакет уже установлен (очевидно, и у меня нет ключей для пения для обновления)
  3. Отключение приложения EMail на устройстве также не помогает, я все еще не могу установить новое приложение.

Я хотя об изменении имени пакета приложения в манифесте, но это не так просто: вам также нужно переместить все классы в новый пакет. Кроме того, как вы можете видеть в AndroidManifest , приложение определяет новые разрешения ( com.android.email.permission.READ_ATTACHMENT ) и другие вещи, которые приводят к ошибкам дублирования при установке модифицированного пакета. Эти разрешения являются ссылками в виде строк в источнике.

Модифицирует каждый файл вручную, а затем отлаживает каждую ошибку, действительно единственное решение моей проблемы? Эти изменения также затруднят работу с новыми версиями приложения EMail, поскольку я модифицировал и перемещал каждый файл.

Я хотя об изменении имени пакета приложения в манифесте

Это потребуется.

Вы также должны переместить все классы в новый пакет

Не обязательно. R будет сгенерирован в пакет, объявленный в манифесте, и поэтому вам нужно будет организовать импорт этого класса R И вам нужно будет обновить сам манифест, чтобы использовать полностью квалифицированные имена классов, а не голые имена классов, если это применимо.

Кроме того, как вы можете видеть в AndroidManifest, приложение определяет новые разрешения (com.android.email.permission.READ_ATTACHMENT) и другие вещи, которые приводят к ошибкам дублирования при установке модифицированного пакета.

Полностью можно определить существующее разрешение. Я понятия не имею, где / как вы получаете «ошибки дублирования».

Модифицирует каждый файл вручную, а затем отлаживает каждую ошибку, действительно единственное решение моей проблемы?

Более или менее. См. Выше параграф «необязательно».

Эти изменения также затруднят работу с новыми версиями приложения EMail, поскольку я модифицировал и перемещал каждый файл.

Именно вы решили отправиться в этот квест, а не вносить изменения в существующее приложение с открытым исходным кодом, такое как K-9 Mail (которое также разворачивало приложение AOSP Email, много лет назад) или приложение AOSP Email ( Посредством процесса вклада AOSP ).

Эта тема может быть устаревшей, но я думал, что поделюсь тем, что я сделал для потомков. Я смог использовать приведенную выше информацию для изменения источника браузера и создания моей собственной версии приложения (которое может быть установлено параллельно с приложением для акций). Что я сделал:

  • В манифесте измените имя пакета
  • В res-> values-> strings измените метку приложения (это просто для удобства, чтобы не иметь 2 приложений с тем же именем)
  • В манифесте Удалите атрибут «оригинал-пакет» (может не потребоваться)
  • В манифесте измените полномочия поставщика (чтобы соответствовать моему новому имени пакета)
  • Убедитесь, что все имена классов в манифесте полностью квалифицированы.

На последнем этапе предпринято несколько попыток, но это всего лишь вопрос построения, установки, запуска и проверки LogCat для ошибочных ссылок.