EXODUS_Q™
14.05.17
조회 수 1469
추천 수 1
댓글 20
방금전 짱구삼촌님의 또 다른 대박아이템(?)일것같은 png_copy.sh를 한번 돌려봤습니다.

원본apk파일과 변경하고자하는 또 다른 apk파일을 /sdcard0/Download/modding폴더에 넣고 scriptmanager로 Run해주는 방식을 택해서 했는데, 같은 이름의 폴더에 존재하는 같은 이름의 나인패치png파일을 비롯하여 모든 png파일들이 원하는데로 아주 잘 변경됐습니다.

쉽게말하자면,
리체님 테마파일(나인패치 포함한png)을 스크립트 실행만으로 내폰에 있는 apk파일에 이식이 가능하다는 얘깁니다.(WOW~!!!)

근데 가만 생각해보니까.....???

이런 방식을 응용한다면,
res/layout/에 있는 특정xml의 특정구문(예:android:textColor=#ffffffff)도 스크립트 실행만으로도 변경이 가능하지않을까 그런 생각이 드네요.

xml은 png이미지와는 다른 뭔가가 더 복잡할까요.?

PS:짱구삼촌님께~....그게 가능할까요.?

[SAMSUNG/SHV-E160S; 2.2.7/E160SKSJMJ1/4.1.2]

EXODUS_Q™ 님의 SIGNATURE

profile
Just Do It.
댓글 20
  • ?
    bestmjh47
    14.05.17
    sed구문으로 가능할듯 싶네요~ [2.2.7/KM66932/4.1.2]
  • profile
    텍스트를 수정하는 건 가능합니다만 문제는 apk 파일내에 있는 xml 은 디컴파일 하지 않으면 그게 안된다는 거지요 ㅠ.ㅠ apk 내에 있는 xml 을 편집기로 읽으면 읽을 수가 없는 문제가 ㅋ 전혀 방법이 없는건 아닐거 같은데 apktool 거치지 않고 xml 만 따로 컴파일/디컴파일이 되는거 같기는 하더라구요. 그 방법을 몰라서 ㅋ 어플 등에서 전체를 디컴파일 하지 않고 읽을 수 있는 형태로 xml만 디컴파일 하는 기능이 되기는 하던데 ㅋ
  • profile
    네..뭔가(?)를 손대면 가능할듯 싶네요~ [2.2.7/E160SKSJMJ1/4.1.2]
  • profile
    바로 그겁니다~ 디컴파일없이 xml내의 특정구문을 수정할수있는 스크립트 실행방식~!!! [2.2.7/E160SKSJMJ1/4.1.2]
  • profile
    자바 쪽에서는 이게 되는거 같더라구요. 저도 예전에 생각해봤던 ㅋ 기능을 구현하더라도 2가지 문제가 있습니다. 근데 이게 좀 위험 부담이 있는게 버전업 되면 어떻게 바뀐건지 확인하지 않은 상태에서 수치만 바꾼다고 완벽 구동한다는 보장을 못하고 어차피 다른 거 추가 수정하는 경우가 많아서 반쪽 짜리일 가능성이 있지요. 컴에서 디컴하고 다른 짓을 하는 경우가 더 많다는 이야기입니다. 전 SecMms 수정할때 엑셀 VBA로 디컴된 자료를 숫자 자동변경합니다. 디컴하고 엑셀에서 매크로 한번 돌린 다음 컴파일하면 반전+말풍선 교체된 apk 가 만들어지는 자동화를 ㅋ
  • profile
    Sub XMLEdit() Dim target, mypath, xml, xml1, item, item1, myvalue, myvalue1 target = Range("B2").Value mypath = Range("B3").Value item = Range("D8").Value item1 = Range("D9").Value myvalue = Range("E8").Value myvalue1 = Range("E9").Value xml = target & "\" & Range("C8").Value xml1 = target & "\" & Range("C9").Value Application.DisplayAlerts = False Workbooks.OpenXML Filename:= _ xml, LoadOption:= _ xlXmlLoadImportToList Cells.Find(What:=item, After:=ActiveCell, LookIn:= _ xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _ xlNext, MatchCase:=False, MatchByte:=False, SearchFormat:=False).Activate ActiveCell.Offset(rowOffset:=0, columnOffset:=-1).Activate ActiveCell.FormulaR1C1 = myvalue ActiveWorkbook.SaveAsXMLData Filename:= _ xml, Map:= _ ActiveWorkbook.XmlMaps("resources_맵") ActiveWindow.Close Beep Workbooks.OpenXML Filename:= _ xml1, LoadOption:= _ xlXmlLoadImportToList Cells.Find(What:=item1, After:=ActiveCell, LookIn:= _ xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _ xlNext, MatchCase:=False, MatchByte:=False, SearchFormat:=False).Activate ActiveCell.Offset(rowOffset:=0, columnOffset:=-2).Activate ActiveCell.FormulaR1C1 = myvalue1 ActiveWorkbook.SaveAsXMLData Filename:= _ xml1, Map:= _ ActiveWorkbook.XmlMaps("resources_맵") ActiveWindow.Close Beep Application.DisplayAlerts = True
  • profile
    저번에 스크립트 모아서 자료 올린거에 mod_smali.sh 가 이런 목적으로 만들었던 겁니다. 폰으로 디컴파일 원하는 스말리 자동수정 다시 리컴파일... #!/system/bin/sh dir=/sdcard/Download/modding/smali file=FontListPreference.smali scode1=\".method\" scode2=\"checkFont(Ljava/lang/String;)Z\" ecode1=\".end\" ecode2=\"method\" cd $dir slineno=$( cat $file | grep -n $scode1 | grep $scode2 | sed \"s/[^0-9]//g\" ) elines=$( cat $file | grep -n $ecode1 | grep $ecode2 | sed \"s/[^0-9]//g\" ) for l in $elines ; do if [ \"$l\" -ge $slineno ] ; then elineno=$l break fi done echo echo echo \"file: $file\" echo echo \"$scode1 $scode2\" echo echo \"start : $slineno\" echo \"end : $elineno\" echo tline=$( wc -l $file | sed \"s/[^0-9]//g\" ) echo $tline headno=`expr $slineno - 2` echo $headno head -n $headno $file > top_file tailno=`expr $tline - $elineno` echo $tailno tail -n $tailno $file > bottom_file echo \"Making Modified File\" cat top_file mysmali.smali bottom_file > new.smali echo echo \"Finished...\" [2.2.8/E210SKSUGNA2/4.3]
  • profile
    죄송합니다. 뭔뜻인지 이해불가입니다.ㅋ (공부하겠습니다~!!!) [2.2.7/E160SKSJMJ1/4.1.2]
  • profile
    아~~~~~뭔지 쪼매 알것같기도한데....계속 공부하겠습니다.ㅎ [2.2.7/E160SKSJMJ1/4.1.2]
  • profile
    디컴된 스말리에서 checkFont(Ljava/lang/String;)Z 부분을 찾아서 .end method 까지 한 단락을 잘라내버리고 Z 불린값을 확인하지 않는 구문 5줄을 끼워 넣는거지요. 그러면 환경설정에서 apk 폰트를 모두 사용할 수 있게 되는 ㅋ Spapa 님 노하우 였던가? 그랬네요.
  • profile
    아 그래요? Spapa님 강좌를 몇번 보긴했습니다. [2.2.7/E160SKSJMJ1/4.1.2]
  • profile
    저거 간단해 보여도 저는 무지 삽질했습니다. ㅠ.ㅠ 텍스트 파일에서 원하는 부분만 잘라내는것도 잘 몰랐거덩요~ ㅋ
  • profile
    예를 들어, Secsettings.apk/smali파트에서 비활성화된 구문을(removepreference...)자동으로 찾아서 삭제(활성화)시키는것도 어쩌면 가능하다는 논리군요. SecSettings.apk/smali/com/android/settings/DisplaySettings.smali)←여기서  invoke-virtual {v12, v13}, Landroid/preference/PreferenceScreen;-> removePreference(Landroid/preference/Preference;)Z←얘를 삭제하면 설정이 활성화됩니다. [2.2.7/E160SKSJMJ1/4.1.2]
  • profile
    slineno=$( cat $file | grep -n $scode1 | grep $scode2 | sed \"s/[^0-9]//g\" ) 이게 텍스트 파일에서 scode1 scode2 문자열이 함께 들어있는 줄번호를 찾아주지요. head tail 명령으로 저 줄번호를 이용해서 앞부분 뒷부분 잘라내는 거구요. 저두 구글링 해서 알게된 ㅋ
  • profile
    그럼 이론적으로는, xml&smali 구문 수정/삭제(잘라내기)가 스크립트로 가능하단 얘기군요. [2.2.7/E160SKSJMJ1/4.1.2]
  • profile
    grep -n 으로는 행번호를 찾고 awk 'NR < 2 { next } { print } NR == 4 { exit }' head -n "4" | tail -n +"2" 2가지 모두 같은 결과를 생성하는데 2줄에서 4줄까지만 자르는거지요. 응용하면 뭐든지 가능하다는 소립니다. ^^*
  • profile
    (오늘 뭐 할짓도 없는데...) 저도 삽질 한번 해보겠습니다. 좋은 TIP~너무 감사드립니다.^^♥ [2.2.7/E160SKSJMJ1/4.1.2]
  • profile
    마지막으로 하나만 더 힌트를 드리면.. 특정 문자열이 있는 라인만 삭제하는 가장 간단한 방법은 grep -v 입니다. v 붙으면 그 문자열이 없는 라인만 추출합니다.
  • profile
    네~~잘 알겠습니다^^♥ [2.2.7/E160SKSJMJ1/4.1.2]
  • ?
    음.. 전 이해할수없는 단어들이군요.ㅠ.ㅠ 이득 챙겨오셔요~~
댓글 쓰기 권한이 없습니다.
List of Articles
제목 글쓴이 추천 조회 날짜
일상 노트3과 갤5 프로토타입 10 file Sleepy¸ 2621 2014.05.17
질문 갤럭시S2 오딘/키스 연결문제!! 도와주세요 ㅠㅠ 4 KeyLime 4351 2014.05.17
일상 [re] RE:프로그램 설치문제 file 수하아빠 1118 2014.05.17
질문 프로그램 설치문제 1 수하아빠 1103 2014.05.17
질문 컴고수님들 윈도우8.1 백신 및 관련 프로그램 이상증상 5 Λρril¹¹ 2 2359 2014.05.17
질문 노트3 fonts폴더 소휴히 1244 2014.05.17
일상 Viper4Android - 끊김 현상 해결기 (LPA Enable) 19 hsk 2 11492 2014.05.17
질문 흠? 맛클앱 강종대는데 저만 이런가여?? 6 갤럭시노 1702 2014.05.17
질문 갤럭시그랜드 가지신분이나 써보신분들께조언부탁합니다. 9 로틀러 2449 2014.05.17
질문 노트3 스크립트 를 프로 12.2애 사용 가능한가요? 2 Hoey 1687 2014.05.17
일상 .sh스크립트로 xml수정도 가능하지 않을까요.? 20 EXODUS_Q™ 1 1469 2014.05.17
질문 제가 생각중인것 구현가능할까요? 4 tjrwns1201 1319 2014.05.17
질문 skt 노트2 nc3펌웨어 인터넷종료옵션설정 3 dlfjswpswkd1 2305 2014.05.17
질문 옥타 갤포에는 cm롬이없나요?? 4 알아용 1 1767 2014.05.17
일상 난제가 생겼습니다 9 Holo 2 1432 2014.05.17
질문 짱구삼촌님 봐주세요.. 6 윤아파파 1341 2014.05.17
일상 갤럭시S5 루팅 경험담 5 file Hearten™ 2 4383 2014.05.17
일상 이미지만 바꿔본 마켓 어플 7 짱구삼촌 3 1720 2014.05.17
일상 vmware + apktool = 3 Holo 2292 2014.05.16
질문 갤2 커널 소스 (Update12) 가지고 계신분 있나요? 2 준규앙마 1191 2014.05.16
질문 노트1 아직 현역 인ㄱㅏ요? 18 로틀러 3197 2014.05.16
질문 안드로이드폰에서 노래방 S/W는 지원을 못하나요? 5 별빛가스 1 1635 2014.05.16
질문 app setting 도와주세요!ㅠㅠ 6 콜라똥 2810 2014.05.16
질문 노트10.12012년판 킷캣언제나오나요 2 ㅋㅋ민민 2422 2014.05.16
질문 secsettings 잠금화면 바로가기 메뉴 smali 수정 문의 2 file 칼카스 2936 2014.05.16
질문 갤럭시노트 10.1 2014 킷캣 멀티윈도우 질문입니다! 1 file 에프킬라 1 11510 2014.05.16
질문 [재등록]갤럭시 S4 LTE-A 기본 어플 복구 관련[블루투스 테더링] 5 바질리오 8930 2014.05.16
일상 안녕하세요~ 오랜만에 맛클로 돌아온 랄라스윗먼데이입니다. 4 랄라스윗 1306 2014.05.16
일상 오늘의 뻘짓... file Godhand 599 2014.05.16
질문 갤럭시사용자님들꼐 질문있는데 /data/user라는 폴더가 다 있는건가요?? 1 pie_ 1260 2014.05.16
1 - 613 - 5850