Comments 30
увы разработчики гугл обычно воспринимают только отзывы отправленные через отзыв в приложении.
боюсь эта статья не в аудиторию.

цитата из справки гугл:

Что делать, если удаленная фотография снова появилась в коллекции?

Если это произошло, но вы не восстанавливали фото, попробуйте удалить его в приложении «Галерея». Возможно, фото или видео, которое вы пытаетесь удалить, хранится на съемной карте памяти.
Я видел это в справке. И это значит, что google в курсе возможной проблемы. Даже само наличие диалога о недостатке прав — это факт того, что программисты предусмотрели такую ситуацию.
Удивляет то, что google уже столько времени ничего с этим не делает.
И через отзывы в приложении им много писали, судя по опросу. Хотелось бы надеяться, что этой статьёй я привлеку внимание google к проблеме.
ну я им написал отзыв щас через приложение, потому что у меня это ещё более абсурдно выглядит у меня нет галереи… только гугл.фото но меня посылают в галерею…
Призыв гугла ради совсем небольшой функции в небольшой программе Google Photo выглядит мягко говоря забавно на фоне того, как гугл уже призывали не удалять Reader, затем призывали не удалять Picasa и еще что-то там было кажется с Hangouts…
А вы тут просите явиться разрабочтам с небесного гугла и узнать, что photo не удаляет фотки. Такая форма багрепорта… Есть ведь альтернативные программы, их в маркете полно. Т.е. альтернатива вполне себе есть.
Удаление Reader — политическое решение, поэтому повлиять на него очень сложно.
А тут баг, который может исправить один программист, поэтому могут и прислушаться.
UFO landed and left these words here
Да, изменения были. Но порядок был такой:
4.3 — всем всё можно
4.4 — ввели saf, нет возможности записи на sd без root или лазейки
5.0 — возможность предоставлять приложениям права записи в каталоги на sd
6.0 — Возможность исп. sd карту вместо (!) встроенной памяти.
7.0 — виртуальные файлы

Обратите внимание, что нововведение в 6.0 превращает карту в несъёмную. Хоть физически файлы и лежат на ней, вы не можете просто вынуть её и вставить в комп, т.к. карта отформатирована особым образом. Кроме того, надо понимать, что в таком режиме sd карта будет именно заменять (но не дополнять) внутреннюю память. Соответственно, преимущество sd карты теряется. И прямого отношения к проблеме доступа на sd это нововведение не имеет. Как и нововведение в 7.0.
В 6.0 можно попросить разрешение WRITE_EXTERNAL_STORAGE и сможешь писать на карту памяти. Сталкивался с этим. Но отказ в разрешении тоже надо обрабатывать, система никаких песочниц для этого не даёт и приложение упадёт.
Некоторое время назад я проводил эксперименты, и, насколько помню, метод sd fix не работает для 6.0.
Вот видео, где я показал неработоспособность варианта «сделать приложение системным» на 4.4.
Но по-моему, на 6.0 это сделать можно. И есть ещё однин способ исправить конфигурацию системы.
Когда на 6.0 прошьюсь, проверю это и запишу следующее видео.

Такая же проблема. root не получить (слишком редкий девайс), прошивку не обновить, застрял на 4.4

Я вас понял.
Вот об этом то я и говорю, что есть пользователи, у которых нет вариантов решения, даже невзирая на наличие или отсутствие навыков по перепрошивке.
Проверьте на всякий случай удаление файлой с помощью лазейки по варианту «не баг, а фича» (например, Total Commander'ом). Если сработает — значит у вас ещё не «всё плохо» и нужно бы модифицировать GP для исп. лазейки силами сообщества.
Если же у вас совсем «всё плохо», то есть: системная камера не может сохранять в произвольный каталог, и Google никогда не сделают вариант «закладка»,
то тут поможет либо смена девайса, либо искать вариант самостоятельного взлома девайса.

Ни у кого, кстати, не было опыта восстановления прав platform.xml без какого‐либо, прежде имевшегося, инструментария самого смарта?

Есть проблема, связанная с правами platform.xml: они должны быть 644, в то время как копирование/перемещение без --preserve=mode может изменить их из‐за umask – причём это происходит неосознанно со стороны модифицирующего.


Factory reset технически никак не может помочь – не в его компетенции; подключить устройство через MTP, опять же, не выйдет из‐за поломанной инициализации. Единственный простой выход – сменить eMMC на новый, но, может, есть альтернативные пути?

Тоже был возмущён этим. Но, так как с первого устройства на Андроиде использую root-доступ, для меня проблема решилась правкой 1 файла. Устройство должно подчиняться человеку, а не наоборот.

Мои сочувствия пользователям, для устройств которых 4.4 — последняя запланированная версия, и обновлений не будет.
Я понял, почему я подумал, что Google Photos было предустановлено. Я сделал обновление телефона на другую версию OS. Затем, когда хотел запустить google photos, на экране появилось приглашение обновить приложение. Я нажал кнопку обновить и открылось окно Play Market на странице Google Photos. Но меня смутил факт, что вместо кнопки «обновить» отображалась кнопка «установить». Значит, приложение ещё не установлено. Но из какого тогда приложения я только что пришёл в play market? Я же нажал на иконку Google Photos.
Решил поинтересоваться, кто маскируется под Google Photos (названием и иконкой): при запущенной активности выполнил команду
adb shell dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'

И увидел ответ:
com.google.android.apps.plus/com.google.android.apps.plus.phone.PhotosAppPromoActivity


Таким образом, приложение google plus имеет несколько иконок в меню приложений: свою и google photos. Я не знал, что такое бывает. Видимо, так сделано, чтобы переход от google+ photo к googe photos был прозрачным для пользователя.

Вывод: при кажущейся предустановленности, реально приложение Google Photos не предустановлено на уже несвежих версиях ос.
И теперь мне понятно, почему обсуждение этой проблемы обострилось только в середине 2015 года.
Я задавался вопросом, если Андроид 4.4 вышла 31 октября 2013 года, почему тогда столько времени все как-то жили с ограничением на запись на sd, а потом вдруг стали бурно обсуждать?

Я провёл собственное расследование.

Оказывается был осуществлён незаметный переход от приложения Google+ Photos на отдельное приложение Google Photos. Названия очень похожи, а приложения разные. Но кому какое дело, пока всё работает?
Первое сообщение на официальном форуме google датируется 17.08.2015, где человек говорит, что проблемы начались несколько недель назад:
Since a few weeks google photos started to say that can not delete photos from device

то есть, примерно с 3 августа.

А Google в своём блоге объявляли, что с первого августа 2015 года они отключат Google+ Photos.

Всё сходится.

В google+ photos теперь предлагается установить google photos. Но google+ photos было системным приложением и могло удалять с sd, а приложение google photos, которое устанавливает пользователь, системным не является и на него распространяются ограничения на запись.
Поделюсь ещё некоторыми моими исследованиями:

1) Есть ли google api для Google Photos — отпадает
Я подумал, а нельзя ли создать workaround application, которое бы получало доступ как к фоткам юзера, так и к sd карте по варианту «не баг, а фича». По аналогии с YouTube Data API, поискал есть ли что-то подобное для GP? Нашёл и обрадовался.
Да, в интернете нагуглилась информация по Google Photos API. Радовался я рано. Оказывается, это api предоставляет возможность пользоваться алгоритмами googe по распознаванию объектов на снимках, как это происходит в их приложении. Но никакого отношения к снимкам пользователя этот api не имеtт.

2) Перед тем как проводить модификации gp, захотел проверить, получится ли вообще его потом запустить.
Итак, я решил переподписать gp своим ключом и посмотреть, бедет ли google работать с таким приложением.
Взял orig_gp.apk, удалил внутри него папку META-INF, переименовал в orig_gp_nometa.apk
Установил jdk6, положил свой keystore в ~/.keystore и выполнил
jarsigner -verbose -keystore ~/.keystore orig_gp_nometa.apk my_alias 

Файл перезаписался, переименовал его в gp_resigned_unaligned.apk
Нашёл утилиту zipalign (эта утилита должна находиться где-то в sdk, но я не докопался где она лежит, поэтому скачал бинарник из интернета).
Выполнил
./zipalign -v 4 gp_resigned_unaligned.apk gp_resigned_aligned.apk

Проверил на всякий случай корректность подписи на выровненном файле
jarsigner -verify gp_resigned_aligned.apk

Перенёс apk на смартфон, удалил настоящий gp (а то невозможно установить с другой подписью), устанавливаю переподписанный вариант.
Запускаю — приложение остановлено.
В логах мы видим

E/AndroidRuntime: FATAL EXCEPTION: main
                                             Process: com.google.android.apps.photos,
                                             PID: 30383
                                             java.lang.SecurityException: Signature check failed for
                                             com.google.android.apps.photos

И, заметьте, мы ещё даже не модифицировали приложение, только переподписали.

Чтобы убедиться, что я всё делал правильно, решил попробовать переподписать какое-нибудь отдельное приложение. Взял coolreader.apk, проделал с ним все те же манипуляции, ставлю — всё прекрасно работает.

Значит, я всё делал как надо, а проблема кроется в том, что кто-то ещё проверяет подпись на принадлежность гуглу. Это скорее всего какие-нибудь google services.

3) Принцип работы OG Youtube
Интересно, а если пакет проверяется на нетронутость, то как тогда модифицировали youtube? Решил разобраться как работает OG Youtube.
Понятно, что ни у одного модифицированного apk нет подписи google. Как устанавливается мод?
Есть три варианта.
a) безрутовый
ставится как другой пакет параллельно с настоящим youtube. Авторизация при помощи microg.
б) рутовый простой
удаляется системный youtube, ставится под видом гугловского пакета. Авторизация при помощи microg.
в) рутовый xposed
удаляется системный youtube, ставится под видом гугловского пакета. Авторизация при помощи настоящих google сервисов путём их обмана о том, что подпись принадлежит гуглу.

В нашем случае интересны варианты а и б. Не удивляйтесь, что я указал рутовый вариант: у нас же gp не системное, мы его можем спокойно удалить, чтобы система позволила поставить пакет с иной подписью. Принципиально а и б ничем не отличаются, просто в одном случае это будет установленное рядом с настоящим приложение, а в другом — заменяющее настоящее.

Тут самое главное.
Представим, что мы кул-хакеры, всё уже декомпилировали, добавили функционал, собрали модифицированный пакет apk. Вопрос: а есть ли возможность авторизоваться таким приложением, используя microG?
Может мне кто-то это подсказать?
Это принципиальный вопрос, т.к. если ответ будет отрицательный, зачем вообще пытаться что-то ковырять? Хотя…
Есть одна интересная вещь: в ресурсах приложения Google Photos есть easter_egg.png.

Может кто-то подсказать, как узнать кто использует этот ресурс и можно ли как то выяснить, что за пасхалка используется в Google Фото? Гугл молчит.
Этот png очень хочется использовать вместо стандартного системного индикатора загрузки…
Наверное, резерв для будущих «первоапрелей».
Нагуглилось: нужно в поиске приложения набрать «I love Google Photos» соблюдая регистр. Тогда вылетит этот андроид на ракете и полетает пару секунд на экране. Видео:
А у меня LG G4, на 6м Андроиде, и даже обещали 7й, но когда… и вот проблема, при всем желании получить рут, приложение падает в ошибку и рута не получить. Тоже мучаюсь с данной проблемой.
Update: давно бросил это приложение (в ноябре 2016), но обнаружил, что его наконец пофиксили! Судя по одному из комментариев это произошло в версии 2.9 от 17.02.2017.
Only those users with full accounts are able to leave comments. Log in, please.