Size: a a a

Android NDK (C++) — русскоговорящее сообщество

2020 May 01

MG

Matthew Good in Android NDK (C++) — русскоговорящее сообщество
in which printing to stdout before duping, in the JNI library, seems to break stdout, where as in termux, adb shell, and others, it does not break stdout
источник

MG

Matthew Good in Android NDK (C++) — русскоговорящее сообщество
like write(1, "something\n", strlen("something\n")+1); does work, but fprintf(stdout, "something\n"); does not
источник

MG

Matthew Good in Android NDK (C++) — русскоговорящее сообщество
источник

MG

Matthew Good in Android NDK (C++) — русскоговорящее сообщество
источник

MG

Matthew Good in Android NDK (C++) — русскоговорящее сообщество
источник

MG

Matthew Good in Android NDK (C++) — русскоговорящее сообщество
источник

MG

Matthew Good in Android NDK (C++) — русскоговорящее сообщество
источник

MG

Matthew Good in Android NDK (C++) — русскоговорящее сообщество
Ivansuper
It is might be possible, but looking on how frequently and what you are asking for -- it will be pretty hard
ok i finally got this working (on a basic level)
источник
2020 May 02

MG

Matthew Good in Android NDK (C++) — русскоговорящее сообщество
источник

MG

Matthew Good in Android NDK (C++) — русскоговорящее сообщество
all client applications need to do is

TerminalControllerService TCS = new TerminalControllerService();

TCS.bindToTerminalService(this);

TCS.registerActivity(this, TerminalController.createPseudoTerminal());
источник

MG

Matthew Good in Android NDK (C++) — русскоговорящее сообщество
and the service will create a both a native log view (stdout and stderr), and a logcat view (requires root access)
источник

MG

Matthew Good in Android NDK (C++) — русскоговорящее сообщество
NOTE: the psuedoTerminal NEEDS to be created BEFORE any native JNI code gets invoked due an unknown bug in android
источник

MG

Matthew Good in Android NDK (C++) — русскоговорящее сообщество
@Ivansuper  @molind how do i correctly append a string in C

as if i do

char *argv[4];
argv[0] = "/sbin/su";
argv[1] = "-c";
char buffer[4096];
for (int i = 0; i != 4097; i++) buffer[i] = '\0';
char const *fmt_utf8 = (*env)->GetStringUTFChars(env, package_name, NULL);
strcat(buffer, "pidof ");
strcat(buffer, fmt_utf8);
(*env)->ReleaseStringUTFChars(env, package_name, fmt_utf8);
argv[2] = buffer;
argv[3] = NULL;

then my command fails even tho i get

executing '/sbin/su -c "pidof alpine.term.demo"'

via

printf("executing '%s %s \"%s\"'\n", argv[0], argv[1], argv[2]);

but if i do

char *argv[4];
argv[0] = "/sbin/su";
argv[1] = "-c";
argv[2] = "pidof alpine.term.demo";
argv[3] = NULL;

then it works perfectly, why is this?
источник

MG

Matthew Good in Android NDK (C++) — русскоговорящее сообщество
ok so i needed to rely on my env_t and regex_str libraries to accomplish this

env_t argv = env__new();
argv = env__add(argv, "/sbin/su");
argv = env__add(argv, "-c");

str_new_fast(command);
str_insert_string_fast(command, "pidof ");

char const *fmt_utf8 = (*env)->GetStringUTFChars(env, package_name, NULL);
str_insert_string_fast(command, fmt_utf8);

argv = env__add(argv, command.string);
(*env)->ReleaseStringUTFChars(env, package_name, fmt_utf8);

str_free_fast(command);
// ...
env__free(argv);
источник
2020 May 03

SC

Sheldon Cooper in Android NDK (C++) — русскоговорящее сообщество
Если у Вас есть Ваши приложения или приложения в разработке которых Вы участвовали,
Есть ли их ломаные версии на 4pda?
Анонимный опрос
13%
Да, есть. Ломаная версия только добавляет популярности приложению
0%
Да, есть. Хочу, чтобы там не было моего приложения
13%
Нет, её там нет. Моё приложение не так просто сломать
30%
Нет. Моё приложение никому не нужно ломать
0%
Я договорился с 4pda, на нём не выкладывают ломаные версии моего приложения
20%
Не знаю, меня это не интересует
13%
Нужно делать такие приложения, чтобы их не хотелось ломать
7%
У меня приложение [почти] на чистом C/C++, для меня этот вопрос не актуален
0%
Я сам ломаю приложения
3%
Вы, разработчики жируете, нет ничего зазорного в том, чтобы пользоваться ломаной версией
Проголосовало: 30
источник

EB

Evgen Bodunov in Android NDK (C++) — русскоговорящее сообщество
Sheldon Cooper
Если у Вас есть Ваши приложения или приложения в разработке которых Вы участвовали,
Есть ли их ломаные версии на 4pda?
Анонимный опрос
13%
Да, есть. Ломаная версия только добавляет популярности приложению
0%
Да, есть. Хочу, чтобы там не было моего приложения
13%
Нет, её там нет. Моё приложение не так просто сломать
30%
Нет. Моё приложение никому не нужно ломать
0%
Я договорился с 4pda, на нём не выкладывают ломаные версии моего приложения
20%
Не знаю, меня это не интересует
13%
Нужно делать такие приложения, чтобы их не хотелось ломать
7%
У меня приложение [почти] на чистом C/C++, для меня этот вопрос не актуален
0%
Я сам ломаю приложения
3%
Вы, разработчики жируете, нет ничего зазорного в том, чтобы пользоваться ломаной версией
Проголосовало: 30
С момента выхода версии с защитой перестали выкладывать.
источник

ИТ

Иван Тимашков... in Android NDK (C++) — русскоговорящее сообщество
Evgen Bodunov
С момента выхода версии с защитой перестали выкладывать.
👍
источник

SC

Sheldon Cooper in Android NDK (C++) — русскоговорящее сообщество
Evgen Bodunov
С момента выхода версии с защитой перестали выкладывать.
Можете, примерно, сказать на чём основана защита?
источник

A

Alex in Android NDK (C++) — русскоговорящее сообщество
я не знаю, по какой причине моего приложения там нет - то ли недостаточно популярно, то ли и правда не смогли сломать)
(скорее, первое)
источник

EB

Evgen Bodunov in Android NDK (C++) — русскоговорящее сообщество
Sheldon Cooper
Можете, примерно, сказать на чём основана защита?
Примерно так. Вся защита в c++. Она состоит из проверки покупки в lvl, проверки подписей приложения и проверки хэша нативной либы. Старт платных функций тоже в c++.
источник