Се­год­ня в выпус­ке: стран­ная исто­рия с цен­зурой в смар­тфо­нах Xiaomi, сброс раз­решений во всех вер­сиях Android, быс­трые советы, как писать хороший чис­тый ход, прос­тые пра­вила осво­бож­дения объ­ектов и под­робное объ­ясне­ние одной из фун­дамен­таль­ных кон­цепций корутин Kotlin: CoroutineContext.
 

Почитать

 

Xiaomi и цензура

Xiaomi’s secret blacklist of phrases sounds scary, but it may not be what it seems — статья с рас­сле­дова­нием ситу­ации с цен­зурой в телефо­нах Xiaomi.

На­пом­ним, что в сен­тябре минобо­роны Лит­вы опуб­ликова­ло ис­сле­дова­ние, сог­ласно которо­му смар­тфо­ны китай­ских ком­паний Xiaomi и Huawei не прос­то собира­ют информа­цию о поль­зовате­ле, но и выпол­няют цен­зуру: иссле­дова­ние показа­ло, что смар­тфо­ны Xiaomi, про­дава­емые на тер­ритории ЕС, вклю­чают в себя деак­тивиро­ван­ную, но тем не менее рабочую сис­тему бло­киров­ки опре­делен­ных слов и сло­восо­чета­ний.

Но есть в этом иссле­дова­нии стран­ные детали. Его авто­ры говорят, что зап­ретные сло­ва содер­жатся в фай­ле с име­нем MiAdBlacklistConfig, а так­же показы­вают код, который яко­бы выпол­няет филь­тра­цию, и он содер­жит име­на объ­ектов вро­де iNativeAd. Более того, если извлечь этот файл с устрой­ства, то ока­жет­ся, что он содер­жит не так уж мно­го полити­чес­ки окра­шен­ных сло­восо­чета­ний, но при этом содер­жит, нап­ример, сло­ва adult, xxx, porn и поч­ти все извес­тные мар­ки телефо­нов, вклю­чая Xiaomi.

Мож­но, конеч­но, подумать, что китай­цы очень уме­ло мас­киру­ют свои дей­ствия, но гораз­до боль­ше это похоже на спи­сок слов для бло­киров­ки неугод­ной рек­ламы. Об этом говорят как сам спи­сок слов и фраз, так и имя фай­ла и объ­ектов, содер­жащих сло­во Ad. А нуж­но это прос­то для того, что­бы встро­енные в смар­тфо­ны Xiaomi при­ложе­ния не показы­вали adult и про­чую нереле­ван­тную рек­ламу (для тех, кто не исполь­зует китай­ские телефо­ны — да, Xiaomi впол­не офи­циаль­но показы­вает рек­ламу на сво­их телефо­нах).

Так что вся эта исто­рия про цен­зуру — ско­рее все­го, тык­ва, но да, дру­гая часть рас­сле­дова­ния, пос­вящен­ная сбо­ру информа­ции о телефо­нах и поль­зовате­лях, впол­не прав­дива.

Фрагмент кода, якобы выполняющего цензуру
Фраг­мент кода, яко­бы выпол­няюще­го цен­зуру
 

Разработчику

 

Автоматический сброс разрешений

Making permissions auto-reset available to billions more devices — статья раз­работ­чиков Android о сис­теме сбро­са раз­решений.

На­пом­ним, что сброс раз­решений — это одна из фун­кций Android 11. Если при­ложе­ние дол­го не исполь­зует­ся, сис­тема отзы­вает все выдан­ные ему раз­решения. Теперь, за счет встра­ива­ния фун­кции в Google Play Services, эта сис­тема будет рас­простра­нена на все устрой­ства, начиная с Android 11.

Сис­тема нач­нет работать в декаб­ре‑янва­ре 2021 года. Все раз­работ­чики, которые не хотят, что­бы работа сис­темы рас­простра­нялась на их при­ложе­ния, могут исполь­зовать спе­циаль­ный API, что­бы поп­росить поль­зовате­лей отклю­чить сброс раз­решений:

// Проверяем, поддерживает ли устройство сброс разрешений
// Результат будет возвращен в колбеке onResult
val future = PackageManagerCompat.getUnusedAppRestrictionsStatus(context)
future.addListener(
{ onResult(future.get()) },
ContextCompat.getMainExecutor(context)
)
fun onResult(appRestrictionsStatus: Int) {
when (appRestrictionsStatus) {
ERROR -> { }
FEATURE_NOT_AVAILABLE -> { }
DISABLED -> { }
API_30_BACKPORT, API_30, API_31 ->
handleRestrictions(appRestrictionsStatus)
}
}
// Этот код будет выполнен только в Android 11
// и устройствах, поддерживающий автосброс разрешений
fun handleRestrictions(appRestrictionsStatus: Int) {
Intent intent = IntentCompat.createManageUnusedAppRestrictionsIntent(context, packageName)
startActivityForResult(intent, REQUEST_CODE)
}

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии