Recovery report of “armagadd-on 2.0”

abstract

As 2019-05-04, most of firefox add-ons stopped working because of expiration of mozilla’s intermediate certificate(;cert).

however, resolution of this problem might need to manually reset add-ons status because FF do not check again an add-on’s validity once it is revoked.

this document demonstrate how to get renewed cert then install it, and manually reset add-ons status.

preface

Before we start: this document is targeting “before quantum” browsers: Firefox <57, ESR < 60. I think it might work for quantum browsers(FF 57+) also but I do not guarantee.

This problem is so-called, “armagadd-on 2.0”. (why 2.0? because it happened already. you can find details at this page: https://www.engadget.com/2019/05/03/firefox-extension-add-on-cert/)

Well, Actually it happened to me at 2019-05-05. it may vary depends on local time. so, let’s get started.

instructions

Resolution of this issue has 2 steps:

0. backup your profile

  1. renew outdated cert
  2. install renewed cert
  3. reset extension status

backup your profile

go to your profile folder and make a backup. you can check you profile location at about:profiles

renew outdated cert

first of all, you have to get renewed cert.

option 1: download cert from below.

addons.mozilla_cert

option 2: extract cert from mozilla hotfix.

  1. donwload mozilla hotfix from below. (you can find details of this file at https://bugzilla.mozilla.org/show_bug.cgi?id=1549078)

https://storage.googleapis.com/moz-fx-normandy-prod-addons/extensions/hotfix-update-xpi-intermediate@mozilla.com-1.0.2-signed.xpi

2. .xpi is just .zip file, so rename and extract it.

3. open /experiments/skeleton/api.js

4. copy base64-encoded intermediate cert and paste into new text file.

5. decode base64-encoded cert and save as .der cert.

install renewed cert

  1. go to options-advanced-certificates (it might vary depends on FF version), and click import.

2. file open dialog opens. select the cert (.der) from previous step.

3. check “Trust … software developers” and click ok.

reset extension status

before proceed this step, restart FF and check you addons. some people might not need this step.

If your addons are still disabled, then proceed.

  1. close your FF.
  2. go to your profile folder.
  3. reset your extension status:

option 1: delete extensions.json only

this option clears enable/disabled status only. I recommend you try this option first.

option 2: delete extensions.json, extensions.ini

this options clears enabled/disabled and installed status. you will see “trust this addon” and “first-install” pages. select this option if option 1 did not resolve the problem.

4. start FF and check your addons.

 

[얼터너 견습] 베루루 재능개화 그룹

해후 퀘스트는 엄두가 안 나서 한동안 미뤄두고 있었는데, 성역 미션을 클리어하면서 [학원의 여제] 레이를 재능개화한 김에 미뤄뒀던 해후 퀘스트를 시도해보았다.

익스트림이라 그런지 진천급은 자동은 불가능하고 수동으로 돌려야 겨우 깰 수 있었다. 그 과정에서 깨달은 해후 퀘스트의 기본적인 전략은 아래와 같다.

  1. 팀1을 보스를 클리어하기 위한 가장 강력한 편성으로 짜고, 팀2는 보스를 출현 전까지 잡몹을 처리하는 편성으로 짠다.
    가능한 기력을 유지한 상태로 팀1로 보스에게 도전하는게 공략의 핵심이다. 팀2가 쓰러지던지 보스가 등장할때까지 팀2로만 싸우고 회복 아이템도 쓰지 않는다.
  2. 가능하면 부활이 있는 힐러를 팀마다 넣는다.
    헤스티아 시온 이후로 한동안 부활이 사장됐었는데, 성역에서는 부활이 필수인 것 같다. 성역에서 크리스탈 어택 잘못 맞으면 픽픽 쓰러지는게 게임 시작 초기를 떠오르게 한다. 고민하다 레이 스킬을 부활도 다시 변경했는데 확실한 효과를 보았다.
  3. 그룹 스킬을 가진 멤버를 넣는다.
    성역의 경우 그룹 스킬이 없으면 크리스탈 어택에 버틸 수가 없기 때문에 그룹 스킬을 가진 멤버는 필수이다. 그룹 스킬을 가진 멤버는 보통 이전의 해후 퀘스트에서 개화하는데, 성능이 평이한 경우가 많으므로 보통 2팀에 넣게 된다.
  4. 전투를 끝내기 전에 최대한 스킬 쿨타임을 초기화한다.
    서비스 초기에는 속업 버프가 제한적이었고 쿨타임이 길었기 때문에 웨이브를 넘어가기 전에 가능한 쿨타임 초기화 시간을 버는 플레이가 주된 전략이었다. 그러다 역시 헤스티아 시온 이후로 전체 멤버에 공속업(대) 가 보편화되면서 스킬을 적극적으로 쓰는 추세가 되었는데, 성역에서는 한번 전투가 끝나면 다음 전투로 버프가 이어지지 않기 때문에 속업에 의한 쿨 단축 효과가 크게 감소되었다. 다시 다음 전투로 넘어가기 전에 쿨타임을 최대한 초기화하는 전략이 필요해졌다.

이상의 기준으로 베루루 재능개화 그룹을 짜보았다.

팀1

부활+힐러: [학원의 여제] 레이

딜러: [지극의 애의] 치호

방어력 감소: [입자국에 담은 마음] 나오미

강화 해제: [성야의 반짝임] 시온

힐러/딜러 포지션은 성역에서 무조건 1명 이상 필요하고, 나머지를 적절하게 조절하는데 베루루의 경우 보스가 방어력 상승 버프를 사용하므로 이것을 해제하기 위해 강화 해제 멤버를 넣는다. 나머지는 딜러를 넣어도 되고 서포터를 넣어도 된다.

팀2

탱커+힐러: [천월전의] 미유키

그룹 스킬: 코하루

딜러: [주문은 토끼입니까??] 츠무기

서포터: 마치

1팀을 구성하고 남은 멤버로 구성한 팀이다. 특이사항으로는 그룹 스킬을 제공하는 코하루의 경우는 유리 속성이 아니므로 참씰을 회피 우선으로 설정해주어야 한다.

츠무기의 경우는 갓 시리즈의 치호에 밀려서 잘 못 쓰고 있는데, 자체 속업(대)가 있고 모든 스킬의 쿨이 짧기 때문에 성역에서도 스킬을 마구 쓸 수 있어서 오히려 2팀에서 빛나는 것 같다.

 

모바일 기기에서 youtube 백그라운드로 재생하기.

go XDA and grap “YouTube Vanced”. it will super-effective!

Download YouTube Vanced APK [NON-ROOT]


멀티태스킹이 안되는 아이폰 (및 변종)에서는 안 될 것이고, 안드로이드 및 기타 디바이스에서 사용가능한 방법.

 

핵심은 데스크탑 브라우저에서는 백그라운드 제한이 없는 것을 이용해 데스크탑 페이지를 염으로서 이러한 제한을 회피하는 것. 당연히 사용하는 브라우저가 백그라운드에서 미디어 재생이 가능해야 한다.

데스크탑 페이지로 요청했더라도 쿠키를 검사하는지 이미 모바일 페이지로 들어간 적이 있으면 막히는 것 같다. 이런 경우 쿠키를 삭제해야 함.

 

예시

  1. firefox android 버전을 다운받는다. 테스트한 버전은 63.0.2.
  2. 모든 쿠키를 지운다. youtube.com 도메인에서만 지우면 될 것 같지만 사실 그게 더 복잡하므로 그냥 모든 쿠키를 지우는 게 편할 것이다. 또는 private window 를 사용해도 될 것이다.
  3. youtube.com 으로 이동하기 전에 메뉴에서 “데스크탑 페이지 요청”에 체크한다.
  4. 체크 후 youtube.com 으로 이동하면 데스크탑 youtube 페이지가 열리게 된다.
  5. 아무 비디오나 재생한다.
  6. 홈 버튼을 눌러 브라우저를 백그라운드로 보낸다. 재생이 끊기지 않고 계속되면 성공한 것이다.

update at 2019-03-10: added link for youtube vanced.

nvidia geforce experience 녹화 시 소리가 녹음되지 않는 문제

오디오 개선 프로그램을 끄고 geforce game overlay 를 재시작한다.

이번 경우에는 nahimic audio 가 문제였다.

트레이의 프로그램을 끄는 것만으로는 충분하지 않고 작업 관리자에서 nahimic*.exe 프로세스를 모두 종료해야만 해결된다.

memu 루팅

memu 는 기본적으로 루팅을 지원하지만, su 관리 프로그램을 뭘 썼는지 권한 부여가 제대로 안되서 루팅 권한을 필요로 하는 프로그램들이 상당수 작동하지 않는다.

이를 해결하기 위해서, memu 에 기본 내장 su 매니저 대신 superSU 를 설치하여 관리하도록 한다.

  1. memu 의 루팅을 해제한다.
  2. memu 에 superSU 를 설치한다.

SuperSU_v2.82_apkpure.com

3. memu 의 루팅을 설정한다.

4. superSU 를 실행한다. binary update 를 진행하겠냐고 물으면 normal update 를 눌러서 진행한다.

5. 업데이트가 완료되면 재시작한다. 보통 정상적으로 재시작되지 않으므로 memu 의 강제종료가 필요하다.

6. 재시작하면 이제 루팅된 memu와 함께 superSU 가 제대로 동작한다.

 

문제 해결

위 방법대로 진행했지만 해결되지 않으면 settings-cleanup-reinstall 을 해본다. 이번에 시도하면서 이것도 했었는데 이것이 영향을 주는지는 잘 모르겠다.

 

 

구글 플레이 새 계정 국가 스토어 설정하기

보통 VPN을 쓰면 된다고 나오지만, 무슨 이유에선지 일본 VPN을 써도 플레이 스토어 안에서는 인도로 나타나거나 미국으로 나타나는 등 플레이 스토어 내에서의 country detection 이 이상하게 나타난다.

 

아무튼 VPN으로 해결할 수 없을 때 플레이 스토어의 국가를 설정하는 방법이다.

국가를 변경하기 위해서는 새 계정이거나, 혹은 국가를 설정한 뒤 1년이 지나야 한다고 한다. (https://support.google.com/googleplay/answer/7431675)

그러나, 이 방법으로는 이전 국가에 지갑 잔고 (또는 그에 상응하는 것 – 예를 들면 플레이 스토어에서 구입한 영화 등이 이에 해당한다)가 있지 않다면 1년이 지나지 않아도 변경되는 것으로 보인다.

 

  1. 변경하려는 국가의 결제 프로필을 만들고 기본 프로필로 설정한다.

예를 들어 일본으로 변경하고 싶다고 하면 일본에서의 결제 프로필을 만들고 이를 기본 프로필로 설정한다. (https://pay.google.com/payments)

2. APKpure 나 qooapp 등을 이용해 해당 국가의 마켓에만 출시된 앱을 기기에 설치한다.

3. play store 에서 my apps & games 로 들어간다. 그리고 2. 에서 설치한 앱을 찾고 해당 항목을 클릭한다. (플레이 스토어를 통해 설치하지 않았더라도 설치된 앱이 스토어에 등록된 앱이라면 표시된다.)

play store 의 my app 목록

4. 여기가 중요하다. 해당 앱의 페이지가 플레이 스토어에서 열린다. 여기에서 삭제 후 페이지를 떠나지 말고 삭제가 완료되면 삭제 버튼이 설치로 바뀌는데 다시 설치 버튼을 눌러서 설치한다. 이렇게 하면 자신의 스토어 라이브러리에 해당 앱이 추가된다.

5. 이후 플레이 스토어 앱을 종료 후 재시작하면 라이브러리에 한개 이상의 앱이 등록되어 있으므로 접속중인 ip 와 관계없이 계정의 국가 설정에 따른 스토어가 표시된다.

 

문제 해결

4. 에서 삭제 후 설치를 시도할 때 “해당 지역에서는 사용할 수 없는 앱입니다” 라고 표시된다면 스토어 국가가 제대로 변경되지 않은 것이다.

 

해설

이 글은 플레이 스토어의 버그와 그 우회법에 대한 것이다. 계정의 국가를 변경하였으면 해당 국가의 마켓이 표시되는게 맞지만, 라이브러리에 앱이 하나도 없는 경우는 이것이 제대로 반영되지 않고 ip에 기반하여 추측한 국가의 마켓을 선택한다. 이후 라이브러리에 앱이 하나 이상 있는 경우는 계정 국가에 따른 마켓이 정상적으로 표시되는 것으로 보인다.

그럼에도 불구하고 구글은 이를 버그로 여기지 않는 듯하다. 사용자가 직접 입력한 주소와 자신의 ip기반 위치 추측이 일치하지 않는 경우 자신의 추측이 올바르다고 생각하는 모양.

2. 와 3. 은 사실 4. 를 들어가기 위한 단계이므로, 4. 로 연결되는 앱의 주소를 알고 있다면 2. 와 3. 은 건너뛰고 해당 주소를 열면 된다. 근데 이 주소를 (어디 저장해놓지 않았다면) 알아내기가 귀찮아서 그냥 2. -> 3. 을 거치는 게 편한 것 같다. 맞는 주소를 열어도 왠지 4. 로 연결되지 않는 경우도 있고…

 

추가)

실제 핸드폰에서 이를 시도하면 죽어도 변경이 되질 않는데, 정확한 원인은 모르겠다.

USIM 이 꽂혀 있는 경우 usim 의 carrier 값을 참조해서 국가를 설정하는 것이 제일 우선된다고 생각되지만 그냥 안드로이드 버전(9+)에 따라 다른 것일 수도 있다.

가장 확실한 방법은 아무 에뮬레이터나 설치하고 위 가이드 대로 새로 설정하는 것이다.