Category Archives: Uncategorized

앤쓰리 데빌팬 휴대용선풍기 리뷰

손풍기가 필요한 찰나 손풍기에 BLDC가 들었대서 사봤다.

가벼운데 배터리 용량이 좀 아쉽다

샀으면 뜯어야지,

 

2000mAh짜리 18650가 직결되어있다. 보호회로가 있는거같은데 안뜯어봄 ㅇㅇ..
좀 쓰다 사용시간좀 딸린다 싶으면 3000mAh 이상으로 바꿔야지…

 

BMS로 FM5001H 가 들어있다. 충전 속도 0.6A 라는데? ㅋㅋ 뻥스펙 확정! 어쩐지 충전하는데 1A 안들어가더라

特点
 0.6A 锂电池充电
 支持 9V 电机驱动控制,3 档风量可调
 支持单按键开关
 充电电压精度:±1.0%;升压电压精度:±4.0%
 过流保护(OCP),过压保护(OVP),短路保护(SCP),过温保护(OTP)
 ESD 2KV,可靠性高
 极低的 BOM 成本
 待机电流 30uA
 支持 4.2、4.35V 电池
 封装形式:ESOP8

풍속조절은 다음과 같이 전압으로 한단다.

一档 5.4V,二档 7.3V,三档 9.2V

또한 충전중에는 1단 고정(아왜!)

진짜 BLDC를 썼는지는 팬쪽을 뜯어야하는데 이쁘게 다시 조립할 자신이 없어서 모터쪽에 MA477 홀센서가 달려있는것만 확인했다. 뭐 맞겠지.

Windows HEIC HEVC Extensions

https://www.microsoft.com/ko-kr/p/hevc-video-extensions-from-device-manufacturer/9n4wgh0z6vhq?activetab=pivot:overviewtab

https://store.rg-adguard.net/

CategoryID: 5e60c346-7f52-4a6f-98c0-70fef2dd1d01

Microsoft.HEVCVideoExtension_1.0.40614.0_x64__8wekyb3d8bbwe.appx

용량은 작은데 아직은 좀 귀찮은 포맷이구만……

Samsung Galaxy change CSC by using Theme w/o Samkey

Original source : https://www.youtube.com/watch?v=Eod66-NVQj8
and https://www.mysterious-dev.com/2020/05/changecsc-all-samsung-free-tool-android.html

귀찮으니 짧고간단하게,

원본 출처에서 “Setup ChangeCSC Free Tool.exe”를 다운받으면
Themida로 이쁘게 패킹되어있는 녀석이 나오는데
얘가 하는거는 그냥 디바이스 체크, galaxy themes앱을 초기화, Qt5wightx.dll (사실 APK 파일)을 설치,  샘숭 theme sotre 실행, 끝. (아, 광고도)

그리고 아래 과정은 셀프로 진행하라 함

Qt5wightx.dll는 테마파일이며 역할은 시스템 설정의 legal  항목에 표시되는걸 바꿔주는것

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" android:title="legal_information" android:key="legal_screen"> xmlns:settings=&quot;http://schemas.android.com/apk/res/com.android.settings&quot;&gt;\10
    <PreferenceScreen android:title="Change Carrier" android:key="T" android:summary="Android 8.0">
        <intent android:targetPackage="com.samsung.sec.android.application.csc" android:action="android.intent.action.MAIN" android:targetClass="com.samsung.sec.android.application.preconfig.Preconfig"/>
    </PreferenceScreen>
    <PreferenceScreen android:title="Change Carrier" android:key="T" android:summary="Android 9.0">
        <intent android:targetPackage="com.samsung.sec.android.application.csc" android:action="android.intent.action.MAIN" android:targetClass="com.samsung.sec.android.application.preconfig.Preconfig"/>
    </PreferenceScreen>
    <PreferenceScreen android:title="Change Carrier" android:key="T" android:summary="Android 10.0">
        <intent android:targetPackage="com.samsung.android.cidmanager" android:action="android.intent.action.MAIN" android:targetClass="com.samsung.android.cidmanager.preconfig.PreconfigActivity"/>
    </PreferenceScreen>
    <PreferenceScreen android:title="HiddenMenu" android:key="T" android:summary="Service Menu">
        <intent android:targetPackage="com.sec.android.app.factorymode" android:action="android.intent.action.MAIN" android:targetClass="com.sec.android.app.factorymode.FactoryCTRL"/>
    </PreferenceScreen>
    <PreferenceScreen android:title="By Mysterious-Dev " android:key="samsung_legal" android:fragment="com.samsung.android.settings.deviceinfo.legal.Eula"/>
    <PreferenceScreen android:title="www.mysterious-dev.com " android:key="samsung_privacy_policy"/>
    <Preference android:title=" " android:key="legal_phrase_version"/>
</PreferenceScreen>

결론은 samsung.android.cidmanager 패키지의 com.samsung.android.cidmanager.preconfig.PreconfigActivity를 실행해주는건데
이걸 그냥 실행하면 com.sec.permission.preconfig 퍼미션이 없어서 실행이 되지 않음.
그래서 권한이 있는 시스템 설정앱을 테마로 변경해서 퍼미션과 함께 CSC를 수정할 수 있는 액티비티를 실행(핵심!)

성공한 기종은 Galaxy S10 5G 모델 (KT -> 자급제)

ps. 변경하게되면 리부팅되며 초기화 작업이 진행되므로 백업필수(재부팅시 부팅시간 좀 걸림)
ps2. 테마 적용시 업데이트 하기로 나오면 인터넷 끊고 진행하니까 사용해보기로 뜸
ps3. Samkey는 어떻게 하는지 궁금하네

Special thanks to Mysterious-Dev.
(많이는 못하지만 Samkey 가격만큼 도네이션좀 해주고싶은데….)

Audio(MP3) batch edit and convert with Audacity

어학공부에 있어서 반복청취는 매우 중요하다.
최근 중국어를 공부함에 있어 MP3파일마다 붙어있는 인트로가 거슬려서 이것을 없애는작업을 하였다.
MP3파일이 백개가 조금 안되는 많은량에 자동화 해놓으면 앞으로도 두고두고 쓸일이 많을거같아 자동화 하기로 하였다.

이것저것 검색해보니 평소에 간단한 음성편집기로 자주 서용하던 Audacity에서 Batch Processing을 지원하는것을 확인하여 이것을 사용하여 진행.

MP3앞부분 x초를 제거하는 간단한 방법을 고려하였는데 인트로에서 파트주제를 읽어주는 가변적인 변수가 확인되었다.

0.8초 이상 지속되는 무음을 기준으로 4번째까지 버리면 되는 것이라 이것을 ‘Silence Finder’를 통해 자동화 하였고
중간중간에 휴지기 텀이 길어 이것 역시 조금 짧게 조정할수 있도록 매크로를 작성하였다.

어차피 휴대폰 모노 스피커로 들을것이기에 모노로 바꿔 용량 절약의 기회도 꾀하였다.

‘Manage Macros’ 창에서 아래쪽 Files 버튼을 눌러서 파일들 선택해주면 자동으로 변환하고 ‘macro-output’에다가 export 해준다.

모든 과정의 결과 350Mb 6시간 7분짜리 mp3들이 225Mb 4시간 7분으로 줄어들었다. (30분 일해서 한싸이클마다 2시간 벌었다ㅋ)
다음번에 이과정이 필요한 경우에는 더 빠르게 작업이 가능할것 같다.

LG G6 Music Player 분석

최근 G6 Pro를 중고로 구매하면서 가지고있던 음원들을 싹 정리하였다.
하는김에 가사도 정리하려고 metaflac을 이용하여 LYRICS 태그를 추가하였음에도 가사가 뜨지 않아 apk를 추출하여 로직을 확인하게 되었다.

아래는 확인한 com.lge.music.MusicUtils 클래스의 getLyrics 메서드

    public static String getLyrics(Context context) {
        if (mPlayType != Defs.PLAY_TYPE_LOCAL) {
            ELog.m111d("It is not Local Type.");
            return null;
        }
        try {
            String contentPath = sService.getPath();
            String lyricsText = "";
            if (contentPath == null) {
                return lyricsText;
            }
            String filePath = getFilePath(context, contentPath);
            String lyricsTemp = null;
            if (!TextUtils.isEmpty(filePath)) {
                String mimeType = getMimeTypeFromData(context, filePath);
                ELog.m111d("mimeType : " + mimeType);
                if ("audio/flac".equals(mimeType) || "audio/vorbis".equals(mimeType) || "application/ogg".equals(mimeType)) {
                    MediaExtractor mediaExtractor = new MediaExtractor();
                    mediaExtractor.setDataSource(filePath);
                    lyricsTemp = mediaExtractor.getTrackFormat(0).getString("unsynced-lyrics");
                } else {
                    Lyrics file = new Lyrics(filePath);
                    if (file != null) {
                        lyricsTemp = file.getLyricsText();
                    }
                }
                ELog.m111d("lyricsTemp : " + lyricsTemp);
            }
            if (TextUtils.isEmpty(lyricsTemp)) {
                return "";
            }
            return lyricsTemp.replace("\n\r", StringUtil.f539LF).concat(StringUtil.f539LF);
        } catch (Exception e) {
            ELog.m114e("Exception:: " + e.toString());
            return null;
        }
    }

flac, vorbis 타입은 안드로이드의 MediaExtractor를 이용하여
lyricsTemp = mediaExtractor.getTrackFormat(0).getString(“unsynced-lyrics“); 를 실행하여 가사를 가져오는것으로 확인된다.

아래 metaflac 명령어를 이용하여 “UNSYNCEDLYRICS” 태그로 추가하니

metaflac --set-tag="UNSYNCEDLYRICS=TEST LYRICS
TEST LYRICS
TEST LYRICS
TEST LYRICS
TEST LYRICS" test.flac

 

가사가 잘 뜬다.

ps

“setprop persist.service.main.enable 1″을 하면 로그를 볼 수 있다.
삼성이나 서드파티앱에서 지원되는 LRC와 같은 싱크가사는 지원되지 않는다. ㅠ