Заставить работать старое приложение под Android 4.4 KitKat

  1. 8 г. назад

    имеется некое старое приложение, поддержка которого давно прекращена, исходников нет, последняя версия выпущена в 2012 году.
    тем не менее, приложение успешно функционировала начиная с андроидов 2.х и заканчивая 4.2 (включительно)

    начиная с 4.4 "что-то поломалось".
    само приложение в целом продолжает работать, за исключением одной функции, заканчивающейся ошибкой.
    это функция загрузки данных из внешних таблиц, упакованных в zip-файл, сам zip-файл располагается на sdcard.
    начиная с андроид 4.4 выполнение этой функции заканчивается ошибкой, технических деталей нет (пишет что-то типа не удалось загрузить данные)

    т.к. самым значимым изменением андроид 4.4 было изменение прав при работе приложений с sdcard, то появилась мысль - сделал на устройстве рут, применил SDFix, проверил - все приложения получили полный доступ к sdcard.
    но исходную ошибку загрузки данных это не устранило.

    в какую сторону ещё можно порыть? какие варианты ещё можно попробовать?
    может, есть какие-то системные логи, где можно подсмотреть, на чём именно приложение получает отказ в правах или т.п.? (само приложение свой лог не ведёт)

  2. установить sdcard памятью по умолчанию пробовал?

    Ответы: (2) (5)
  3. (1) да

  4. 21.08.2015 08:54:00 отредактировано Идун

    где-то читал

    /system/etc/permissions/platform.xml
    после строк (последовательно)
    <permission name=»android.permission.WRITE_EXTERNAL_STORAGE» >

    дописать
    <group gid=»sdcard_rw» ></group>
    после
    <permission name=»android.permission.WRITE_MEDIA_STORAGE» >

    дописать
    <group gid=»media_rw» ></group>
    -image-

    и перезагрузить

    Ответы: (4) (6) (18)
  5. (3) а разве SDFix этого не делает?

  6. (1) фишка в том, что на 4.2 работает и на встроенной, и на внешней sdcard
    на 4.4 не работает никак

    Ответы: (17)
  7. 21.08.2015 09:01:53 отредактировано andrewks

    (3)

    Одно из них называется SDFix. Это приложение изменяет следующий файл: /system/etc/permission/platform.xml таким образом, что приложение получает права WRITE_EXTERNAL_STORAGE, то есть полный доступ к SD карте.
    http://android-tip.com/soveti_i_poleznoe/254-raznoglasiya-mezhdu-android-44-kitkat-i-microsd-kartami-pamyati.html

    то бишь не помогает

  8. собственно, смущает момент, что на 4.4 со встроенной sdcard такой же косяк вылазит, хотя на встроенную sdcard, насколько я знаю, ограничения системой не накладываются, а только на внешнюю

    Ответы: (9)
  9. Salvador Limones , у тебя есть идеи?

  10. (7) не совсем так, сторонним приложениям разрешено изменять только "свои" каталоги. Жестко привязанные. А вот как старому приложению задать этот каталог - хез. Типа “/storage/sdcard1/Android/data/myappID”, где myappID - ид приложения из его свойств.

    Ответы: (10)
  11. Идун А вот как старому приложению задать этот каталог - хез. Типа “/storage/sdcard1/Android/data/myappID”

    я копал уже в эту сторону. поэтому не просто так говорю, а это проверено мной лично.
    myappID я выяснил, папку на внешней sdcard такую создавал, и убедился, что приложение туда может писать (без рутования и SDFix)

    НО фишка китката в том, что это ограничение только для внешних sdcard.
    на встроенную sdcard приложение и без этого может писать файлы в разные папки, и это безо всяких рутов и SDFix'ов

  12. нутром чую, что где-то что-то достаточно поменять в конфигурации андроид, чтобы эта ошибка ушла.
    осталось только узнать, что и где поменять

    Ответы: (13)
  13. можно ли как-то узнать, на чём именно спотыкается приложение? какая-нибудь трассировка, например, или системные логи? (я ламер в андроиде, поэтому и спрашиваю)

  14. (11) Покопал тему, похоже что не даст, они вообще все переписали в части работы с файлом через API, и почему-то эта возможность/невозможность зависит от тела. Т.е. решения я не нашел, кроме как совета перепрошить взад. На себе не экспериментирую, у меня 5-й, на торгпредских тоже, у них 4.2 (и все работает).

    Ответы: (14)
  15. Идун кроме как совета перепрошить взад.

    пока так и делаем. но пройдёт год, и уже хрен найдешь прошивку 4.2 для новых устройств.
    вот это меня и беспокоит

  16. Стандарт логгер = log4net, не пользовал и много букв, но он есть.

    Ответы: (16)
  17. (15) log4net смотрел, ничего там не увидел. я так понял, там что-то можно увидеть только тогда, когда само приложение туда что-то напишет. а оно не пишут, цуко :(

    хотелось бы увидеть какую-нибудь запись типа "access to resource бла-бал-бла denied", сделанную самой системой, но не нахожу. может, не там ищу, а может, и вообще этого нет нигде

  18. (5)такая ж хрень

  19. (3)делал , после этого девайс ваще перестает грузится .
    перепрошивал все взад

  20. Может все таки найти разработчиков и попросить исходники ?

    Ответы: (20)
  21. (19) пробовал. безуспешно

или зарегистрируйтесь чтобы ответить!