Поскольку применяет Дата срока годности (Trial версия) к приложению android, что функционирует офлайн формы

Сначала доводить до сведения, что этот вопрос не дубликат этой.

Я нуждаюсь в том, чтобы знать, как я могу делать то, что ставит в этом же самом вопросе, но для приложения android оплаты, которая функционирует полностью офлайн, в которой оплата не осуществляется через Интернет.

Или же, в чем я нуждаюсь, состоит в том, чтобы, перемещенный время, или в определенной дате, некой функциональности, которые раньше были активными, они сейчас остались бездеятельными во всех устройствах, которые был установлен apk, до тех пор, пока пользователь не обновит в следующую версию. Все это офлайн формы, так как я нахожусь в стране третьего мира в том, который не существуют эти удобства делания этого с Интернетом.

Ах! и еще одна деталь, я нуждаюсь в том, чтобы сделать это безопасной формой. В которой пользователь не смог делать что-то, как просто менять ему дату в устройство и вновь иметь активную функциональность.

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

3
задан 13.04.2017, 16:00
4 ответа

Случаи для bypass классического утверждения trials:

  1. Что разместили дату до даты установки.

  2. Который они разместили в дни перед датой окончания.

  3. Что переоборудовали приложение.

Я имею тебе алгоритм, который у меня есть в C:\erebro в этом моменте:

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

Также счетчик, который инициализировался бы под 0 вместе со всеми произведенными датами и суммировал каждый день действительно: зная, какой день пошел вчера, и какой день пошел до вчерашнего дня, если вчерашнего различия с сегодняшним днем 1, означай, что дата не была изменена, противоположный случай, блокировать app до тех пор, пока пользователь не разместит правильную дату: сложи +1 в дату вчерашнего дня и уже!

Санкционировать, что твой app функционировал в определенном ранге: с даты установки до определенного срока: 30 дней например.

Что происходит, если они меняют ему дату в дни перед установкой? Оно не функционирует, потому что он вне ранга.

Что происходит, если они меняют ему дату в один день перед окончанием trial? Счетчик санкционирует, ergo app блокированная.

Что я делаю, если пользователь переоборудует app? Здесь он становится очень интересным, так как нужно бросать глаз в активизацию app: Существуют решения как Twilio.com, Plivo.com, Bandwidth.com что позволяют отправление SMS с твоего Веб приложения, ты можешь конфигурировать для того, чтобы он послал какой-то код особенно и в твоем подвижном app он был включен посредством этого, для этого я рекомендую тебе управлять о твоих пользователях.

3
ответ дан 24.11.2019, 13:25
  • 1
    Степень магистра помогая новым, я иду без Интернета, но скоро я вернусь – Pedro Miguel Pimienta Morales 13.09.2016, 06:02
  • 2
    Est и # 225; очень интересный твой soluci и # 243; n, думать и # 233; м и # 225; s в этом и тестировать это и # 233; так как quiz и # 225; будьте то, что больше приближается к тому, чего я хочу добиться. Если я функционирует, как я хочу ты это, har и # 233; знать. Большое спасибо!!!!!!!!!:) – Adriana Hernández 13.09.2016, 16:32
  • 3
    Многие nadas: D, что сила вы acompa и # 241; и! и #201; xitos и благословения в проекте: D – fredyfx 13.09.2016, 18:39
  • 4
    Но данные sqlite не исчезают, если пользователь идет настройки app и дает удалять все? – Webserveis 13.09.2016, 19:18
  • 5
    @Webserveis думая по-другому, удаляет ли пользователь все с настроек, tendr и # 237; в который вновь санкционировать app, он считает много сходство с " Цюй и # 233; я делаю, если пользователь переоборудует app? " – fredyfx 13.09.2016, 20:15

Я вижу, что ты понимаешь, что без третьего (server) не существует непогрешимое приближение, а следовательно ты ищешь решение, которое осложняло бы жизнь самое возможное, пользователя, который хочет попробовать сделать reset trial.

Я предлагаю следующие точки.

  1. Сохраняй дату установки используя Баккуп Саредпреференсес. Это позволяет тебе располагать информацией даже, хотя человек re установит приложение.
  2. Каждый раз, когда человек ушел из приложения, сохраняй время используя функции elapsedRealtime() или elapsedRealtimeNanos(). Это монотонные восходящие функции, которые показывают время с последнего boot. Монотонная восходящая функция значит, что время всегда растет, не импортируя, если пользователь изменил час системы. Этот метод не позволит тебе рассказывать с даты установки, но накапливаешь ли ты достаточно чтения и подтверждаешь, что Ваша сумма превосходящая время твоего trial, тогда это недействительное состояние (пользователь пробует изменять даты) и ты будешь знать, что trial потерял силу.

Ввиду того, что ты не всегда будешь мочь накапливать это чтение, возможно, что пользователь меняет дату и продлевает немного trial, но ты сможешь замечать не очень большое время спустя.

  1. Adicionalmente ты можешь включать в твой app быть сообщенной, когда пользователь меняет час (или он двигается часовой зоны и т.д.). У тебя есть следующие доступные Интент Фильтерс:

ACTION_TIME_TICK ACTION_TIME_CHANGED ACTION_TIMEZONE_CHANGED

https://developer.android.com/reference/android/content/Intent.html

Этого метода сам не достаточно, так как пользователь смог бы desinstalar app, меняться час и вновь устанавливать ее, которым ты не получил бы callbacks

В конце концов ты мог бы использовать один AlarmManager, таким образом что ты получишь сообщение в дате, которым кончится trial, и сможешь сохраняться информация, чтобы быть свободным в изменения дат.

2
ответ дан 24.11.2019, 13:25

Он matemáticamente невозможно делать это безопасной формой...

в устройстве, которое не находится под твоим контролем.

Например:

  • Создай виртуальное устройство с любым участником соревнования Android.
  • Установи программу.
  • Создай резервную копию файлов виртуальной машины, которую ты создал.
  • Уже у тебя есть совершенная копия в которую возвращаться, когда закончится время доказательства.

В физическом устройстве также ты можешь делать бинарные копии и реставрировать.

С такой техникой простой возможно побеждать любую офлайн защиту, основанную на истечении времени доказательства. Хотя немного некомфортабельно быть должное начинать нуля каждый месяц (или испытательный срок). Есть более изощренные атаки, как обратное инженерное дело.

0
ответ дан 24.11.2019, 13:25
  • 1
    Если я понимаю тебя, и, что возможно не существовала форма 100 %, безопасный, но эта - идея, что пользователь com и # 250; n будьте должен перемещать немного больше работы (и с небольшим количеством разыскиваемого знания), чтобы ломать безопасность – Adriana Hernández 13.09.2016, 15:08

Хороший то, что приходит в голову мне, в меня что, когда человек будет использовать твое приложение, ты сделал это следующей формой:

  1. Ты позволяешь устанавливать приложение
  2. Ты был бы должен присоединяться по крайней мере в Интернет, который, чтобы включать ее, был бы бесплатной версией или оплаты
  3. С кодом, который ты давал бы, возможно посылая по почте, они это помещают в приложение
  4. И, таким образом, ты избавляешься от любой вещи

У тебя должна быть база данных на сервере с услугой, которая помогала бы проверять, что коды, они для версии оплаты, которая для бесплатной версии, и которые находятся в использовании, и который уже они использовали.

0
ответ дан 24.11.2019, 13:25
  • 1
    Проблема состоит в том, что то, в чем я нуждаюсь, который, проведенный определенное время остались бездеятельными какие-то из функциональности app versi и # 243; n trial (из-за того, что звонит ему каким-то образом в первому versi и # 243; n), до тех пор, пока он не обновит pr и # 243; xima versi и # 243; n. И это время он применяться и # 225; во все устройства, которые считали ее установленной – Adriana Hernández 13.09.2016, 15:11
  • 2
    Проблема состоит в том, что, он имел бы qu, существовать какая-то форма, которой ты мог бы устанавливать какую-то папку, которая сохраняла бы вид закоулка, который, если приложение уже было установлено однажды сколько бы ты не установил ее, продолжал бы в trial версию – Pedro Miguel Pimienta Morales 15.09.2016, 02:27