4.01.2014 / 22:38 | |
Naik Пользователь Сейчас: Offline
Имя: %name% Регистрация: 14.03.2010
| PLUTONiUM, Потому что это исключение, в андроиде другие механизмы работы с внутренними файлами., да и если бы работало, мне ведь ресурс нужно брать не из apk эмулятора, а из внешнего jar, поетому в микроемуляторе тоже заменяется этот метод, осталось разобраться как.
Изменено Naik (4.01 / 22:41) (всего 1 раз) |
4.01.2014 / 22:39 | |
HoldFast Пользователь Сейчас: Offline
Имя: Андрей Откуда: Великие Луки Регистрация: 18.04.2011
| Naik (04.01.2014/22:38)PLUTONiUM, Потому что это исключение, в андроиде другие механизмы работы с внутренними файлами.Кстати говоря, если не сложно, можно про это поподробнее?
__________________
Да, детка, я - Король Ящериц!!! |
4.01.2014 / 22:40 | |
PLUTONiUM Пользователь Сейчас: Offline
Имя: Nameless Откуда: Авалон Регистрация: 14.10.2012
| Naik, а с другими классами из пакета java.* таких проблем нет?
|
4.01.2014 / 22:46 | |
Naik Пользователь Сейчас: Offline
Имя: %name% Регистрация: 14.03.2010
| HoldFast, Тут обширная тема, если по простому, то ложишь файлы, папки, в папку assets проекта., и myContext.getAssets().open("file") возвращает InputStream, также можно получить список файлов методом list("dir").
Еще ресурсы можно хранить в папке raw — я не пробовал, картинки в res/drawable/.
|
4.01.2014 / 22:46 | |
Salat-Cx65 Пользователь Сейчас: Offline
Имя: Сергей Откуда: Кременчуг Регистрация: 23.03.2010
| Хм, я тут краем глаза тему почитал. Говорите getClass().getResourcesAsStream(...). Не воркает так как надо ресурс с яра из фс читать. Про new File(our_jar) -> new FileInputStream() -> new ZipInputStream() (ну это образно, там чуть иначе) и потом по ентити находим наш ресурс -> возвращаем стрим ресурса. Сильно не бить если уже было или сами в курсе, всю тему не перечесть |
4.01.2014 / 23:00 | |
Naik Пользователь Сейчас: Offline
Имя: %name% Регистрация: 14.03.2010
| Salat-Cx65, Нужно заменить метод получения файла в class файлах или dex, который загружается через DexClassLoader
|
5.01.2014 / 02:07 | |
vl@volk Пользователь Сейчас: Offline
Имя: Владислав Откуда: Земля Регистрация: 26.12.2012
| в dx можно заменить, но я еще пока не могу точно удостоверится, что я нашел то что надо, пока могу сказать, что в исходниках dx есть класс Ropper в этом классе есть метод doit() и еще какой-то(вызывается с doit()) вот в них запутался, на них я вышел из класса CfTranslate. можно еще посмотреть в Rop, но там сложнее
для .dex будет пожалуй быстрее
__________________
знает толк |
5.01.2014 / 09:13 | |
kiriman Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Красноярск Регистрация: 18.01.2010
| Naik, Да попробуй ты написать это дело с моим последним классом! PPM запустится, будь уверен. Да и если не запустится, то стоит дописать пару строк в классе модификации байткода и все запашет. Кстати работать с зип проще пареной репы, не знаю какие там ты себесложности придумал.
Изменено kiriman (5.01 / 09:15) (всего 2 раза) |
5.01.2014 / 12:29 | |
kiriman Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Красноярск Регистрация: 18.01.2010
| Naik, Вот моя либа на данный момент, точно работает с getClass().getResourceAsStream(...) http://pastebin.com/vGct6SePИспользовать так: byte[] new_class = Modify.modifyClass(new FileInputStream("Main.class"), "AndroidLoader");
if (new_class != null) {
// Успешно
} else {
// Класс не нуждается в изменении
}
Изменено kiriman (5.01 / 12:39) (всего 2 раза) |
5.01.2014 / 14:27 | |
Naik Пользователь Сейчас: Offline
Имя: %name% Регистрация: 14.03.2010
| kiriman (05.01.2014/09:13)Naik, Да попробуй ты написать это дело с моим последним классом! PPM запустится, будь уверен. Да и если не запустится, то стоит дописать пару строк в классе модификации байткода и все запашет. Кстатита мне несложно с зип, все уже сделано, просто телодвижений много. Попробую твою либу, но позже, сейчас игру нужно доделывать
|