На самом деле есть несколько способов сделать это, но они немного трудоемки, поэтому, вероятно, следует использовать в качестве последнего средства. Используя рутированное устройство, вы можете извлечь символы из jar-файлов фреймворка на устройстве и поместить их в android.jar в вашей папке sdk / platform /. Раньше для этого был скрипт; потерял его при смене места работы.
шагов из памяти (заметьте, у вас, вероятно, возникнут проблемы, поскольку я не помню шагов ... для опытных пользователей, которые понимают, к чему я стремлюсь):
- adb pull / system / framework / * (это все файлы jar). Это может быть
достаточно, чтобы получить framework.jar. распакуйте их.
- для каждого, который, как я верю, даст вам classes.dex и манифест. Если
вы просто получаете файлы классов, пропустите следующий шаг
- dex2jar классы.dex и unjar classes_dex2jar.jar или что угодно
вывод от dex2jar, который даст вам кучу файлов .class
- возьмите файлы классов и добавьте их в свой android sdk android.jar
файл (sdk / platform / android- # sdk # / android.jar).
Я предлагаю дублировать вашу папку android- # sdk # в папку android-1 # sdk #, чтобы android-19 превратился в android-119, а затем измените build.prop в папке, чтобы сказать ro.build.version.sdk = 119, а затем сборка против SDK 119. Таким образом, у вас есть выбор сборки против чистых 119 или ваших взломанных 119. Только не обращайтесь ни к каким файлам com.android.internal.R, потому что эти идентификаторы не точны в моем опыт.
Теперь вы сможете компилировать эти символы и получать к ним доступ в порядке. Хотя не злитесь, если они изменят то, как все работает, и они не обязаны поддерживать совместимость со сторонними приложениями.
Это работает, потому что тег hide используется только на этапе компиляции SDK и удаляет эти символы из файла android.jar, расположенного в вашем SDK. Если мы соберем все символы, которые скомпилированы на устройстве, и вставим их в ваш SDK-банку, это как если бы они никогда не были удалены.
В качестве альтернативы вы можете развернуть и построить полное дерево андроида (https://source.android.com/source/building.html), а затем построить свое приложение на основе полного исходного кода, что в первую очередь сводится к тому, чтобы взять уже скомпилированные символы и работать с ними.