;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

É segura mesmo? Entenda como funciona a pasta secreta do Android e iOS

AndreyPopov/Getty Images/iStockphoto
Imagem: AndreyPopov/Getty Images/iStockphoto

Gabriel Daros

De Tilt*, em São Paulo

14/05/2022 12h04

Recentemente, viralizou na internet o caso do empresário Bruno de Paula, que foi vítima de furto de celular no trajeto do aeroporto de Guarulhos até sua casa, em São Paulo, no dia 29 de abril, notificar as instituições bancárias.

O caçador de talentos, enquanto retornava de uma viagem de 20 dias em Barcelona, Espanha, teve o aparelho arrancado de sua mão pela janela do carro e, por estar com o dispositivo desbloqueado, os criminosos tiveram o a todos os seus aplicativos financeiros.

A repercussão fez com que os bancos ressarcissem o prejuízo de De Paula na semana seguinte. Entretanto, nem todos os casos de furto recebem a mesma atenção — e tampouco têm o mesmo desfecho.

Para contrabalançar isso, diversas fabricantes de smartphones começaram a incluir em seus sistemas o recurso de pasta secreta. A ferramenta, que recebe outros nomes a depender da empresa, protege aplicativos com uma senha diferente da utilizada para o desbloqueio do celular, e está disponível tanto para aparelhos Android quanto para iOS.

O que é a pasta segura?

A pasta segura — o Files do Google — é um aplicativo de gerenciamento de pasta criptografada que é bloqueada por PIN — seja ele em número, ou em padrão, que pode ou não ser o mesmo código do celular. Este código será solicitado pelo programa toda vez que for ar estes arquivos, independente do celular estar desbloqueado ou não.

O que torna a função especialmente útil, para além da exigência do código mesmo que se troque de tela, é que os aplicativos dali estão protegidos mesmo de ataques virtuais, já que a pasta é criptografada.

O recurso chegou ao Android com uma atualização do Arquivos, em agosto de 2020. À época do lançamento, o Google publicou em seu blog que a função era voltada especificamente para ocultar programas indevidos ao o de crianças — que, muitas vezes, usavam o celular para entretenimento ou aprendizado.

Fabricantes como a Xiaomi, por exemplo, incluíram a função no seu lançamento mais recente no Brasil, o Xiaomi 12, com o nome de "Aplicativos Ocultos". Outras, como a Samsung e a Realme, também possuem essa função com outros nomes.

Como ativar a "pasta segura"

Apple

  1. Entre em Ajustes > Tempo de Uso > Limite de Apps > Adicionar Limite;
  2. Selecione "Tudo (Apps e Categorias)" ou escolha os apps que você quer trancar;
  3. Clique em "Seguinte" e defina o tempo de bloqueio;
  4. Clique em "Adicionar" em seguida;
  5. Volte para a página de "Tempo de Uso" e toque na opção "Usar Código";
  6. Defina uma senha, diferente da usada no desbloqueio de tela. Já quem tem aparelhos com o sistema operacional.

Samsung

  1. Abra o menu de configurações em seu Samsung;
  2. Selecione Biometria e Segurança;
  3. Toque em "Pasta Segura";
  4. Faça com a sua conta Samsung;
  5. Defina um tipo de bloqueio para a Pasta Segura - padrão; Pin; senha; impressões digitais;
  6. Um atalho para a "Pasta Segura" será criado na tela inicial. Clique nele e, na sequência, no símbolo"+"
  7. Selecione os aplicativos que deseja colocar na pasta segura.
  8. É possível também mover arquivos. Primeiro é preciso selecioná-lo com um toque e depois vá nos três pontinhos. Na sequência, vai aparecer a opção "Mover para a Pasta Segura". Também é possível fazer o mesmo processo direto da "Pasta Segura". Toque nos três pontinhos à direita e selecione "Adicionar arquivos".
  9. Tome cuidado ao adicionar os aplicativos já que será criada uma nova versão dentro da Pasta. Por isso, após incluir os apps na "Pasta Segura" e configurá-los, será preciso desinstalar a "cópia" dos apps que ficaram na tela inicial. Se não fizer isso, ainda será possível ar os aplicativos sem precisar ar a "Pasta Segura".

Outros modelos de Android

  1. Caso ainda não tenha instalado, baixe o aplicativo "Files do Google";
  2. Role a tela e e a seção "Coleções";
  3. Toque em "Pasta Segura" e selecione PIN ou Padrão. Na sequência, defina qual vai ser o PIN ou o Padrão
  4. Para mover os arquivos há duas maneiras, dependendo da forma de visualização. Se a visualização for em lista, toque nos três pontinhos e "Mover para a Pasta Segura". Se estiver em visualização de grade, toque e mantenha pressionados os arquivos para movê-los. E, na parte superior da tela, toque nos três pontinhos e "Mover para a Pasta Segura".

(*) Com informações da matéria de Hygino Vasconcellos para Tilt