Công cụ cần thiết: ADB TOOL phục vụ cho việc giao tiếp và lấy dữ liệu từ điện thoại vào máy tính. APK TOOL phục vụ cho việc Decode và Encode các file .Apk và .Jar của Android. (Down cả 2 nhé) NOTEPAD PLUS dùng để chỉnh sửa các file text và Script... (Nên dùng thêm Compare Plugin để tiện so sánh các file) DEX2JAR dùng để chuyển các file của Android sang dạng file Java dạng .jar sẽ dễ đọc và hiểu thuật toán hơn. JD-GUI dùng để đọc các file Java dạng .jar sang code Java WINMEGER dùng để so sánh sự giống và khác nhau giữa các files, thư mục... Winrar hoặc 7Zip để nén, giải nén và phục vụ cho việc Cook rom đơn giản. Yêu cầu máy tính phải cài đặt Java Fix vấn đề về SMS đối với những máy Hàn Quốc: Cần biết: Những điện thoại Hàn Quốc thường hay gặp vấn đề về độ dài tin nhắn khi sử dụng ở các nước khác, đó ko phải là lỗi, mà đó là điểm đặc trưng của Hàn Quốc. Các ký tự của Hàn Quốc không thử sử dụng bản mã Unicode (7 bit) để mã hóa mà phải dùng mã hóa riêng dùng đến 16bit nên số lượng ký tự thường <=90 ký tự. Do ở Hàn Quốc thì công nghệ điện thoại rất phát triển, nên hầu như mọi người đều dùng Smart Phone, do vậy nếu tin nhắn >1 tin SMS thì họ chuyển sang tin MMS thì mức cước sẽ rẻ hơn so với nhiều tin SMS. Vậy nên các máy HTC thường thì sau 1 tin SMS sẽ tự động chuyển sang MMS. Code xử lý cho Tin nhắn đều nằm ở\smali\android\telephony và\smali\com\android\internal\telephony (Đối với những máy chỉ có 1 file Framework thì 2 file kia cùng nằm trong file Framework.jar, còn nếu có 2 file thì File thứ nhất sẽ nằm trong Framework.jar, file còn lại nằm trong Framework2.jar) Các thiết lập khác cho SMS và MMS nằm trong file\system\customize\MNS\default.xml nằm trong file Rom .zip. Fix số lượng tin SMS tự động chuyển sang MMS. ROM của HTC được làm rất chặt chẽ, hầu như những thứ cần thiết đều có thể config đc, SMS và MMS cũng ko phải là ngoại lệ, hầu hết những config cần thiết cho SMS, MMS đều nằm trong file \system\customize\MNS\default.xml mà mình đã nói ở trên, các bạn chỉ cần giản nén ROM ra và tìm theo đường dẫn đó sẽ thấy. Trong file default.xml thì config cho SMS, và MMS nằm trong Note <module name="MessageConfig">. Các bạn để ý note này sẽ thấy đc các thiết lập cần thiết. Các bạn tìm đến Item có tênSMS_Max_Concatenated_Number sẽ thấy hầu hết những máy HTC Hàn Quốc đều có giá trị mặc định là 1, đây là số lượng tin SMS tối đa sẽ tự động chuyển sang MMS, vấn đề là ở đây, các bạn muốn sau bao nhiêu tin SMS nó chuyển sang MMS thì chỉ cần sửa giá trị này . Mình thường dùng giá trị là 10. Oke, bây giờ bạn có thể đưa file đó trở lại rom hoặc dùng Rootexplorer để đưa trực tiếp vào thư mục system trên điện thoại. Tuy nhiên, file này chỉ đc load 1 lần duy nhất đó là lần đầu tiên boot vào hệ thống. Do đó để chỉnh sửa có hiệu lực thì bạn phải cho vào rom rồi cài mới hoặc là copy vào thư mục hệ thống của máy rồi Factory Reset lại điện thoại để nó thiết lập lại. Ngoài ra trong phần này ta có thể chỉnh sửa nhiều thiết lập cho SMS và MMS như bật tắt các thông báo, thay đổi dung lượng file tối đa của tin MMS, số lượng tin nhắn tối đa... các bạn có thể xem thêm trong file default để biết thêm chi tiết. Fix độ dài tin nhắn SMS. Để fix tin nhắn cho máy HTC có rất nhiều cách, 1 trong những cách đơn giản nhất đó chỉnh là đánh lừa hệ thống đổi Flag của máy sang 1 máy khác ko bị giới hạn tin nhắn, tuy nhiên cách này cũng có hạn chế, như mình đã nói từ đầu, mỗi máy HTC đc phân biệt với nhau bởi các flag, do đó nếu đổi Flag sang máy khác thì tất cả các thiết lập khác đều phải theo máy đó, do vậy cần phải tìm 1 máy có các tính năng tương ứng với máy mình mà ko bị giới hạn tin nhắn để chuyển sang, đối với EVO 4G+ thì hơi khó vì duy nhất nó có mạng 4G của Wibro , cho nên muốn giữ đc tính năng này thì cần phải làm cách khác hoặc tìm các biến Flag điều khiển mạng 4G. Cách đổi Flag này cũng khá đơn giản nên mình sẽ ko hướng dẫn cụ thể ở đây, các bạn tìm hiểu phần Port ROM sẽ đc đề cập tới rất nhiều. Dưới đây là cách Fix ở các hàm điều khiển tin nhắn Trước tiên để fix đc độ dài tin nhắn thì bạn phải lấy những file liên quan từ trong ROM để chỉnh sửa. Với bản GB thì mình thấy chỉ có 1 file Framework.jar nên chỉ cần chỉnh file này, còn trên ROM ICS thường có 1 file Framework.jar và 1 fileFramework2.jar, bạn phải chỉnh sửa cả 2 file này thì mới fix được. Sử dụng APK Tools mình đã đưa ở trên để Decode các file framework. Chạy file Command Prompt.bat để mở cửa sổ lệnh tại thư mục hiện tại hoặc những bạn biết chút ít về CMD có thể mở trực tiếp CMD lên để làm việc. Để Decode file .Jar hoặc .Apk các bạn thực hiện lệnhApktool d Tên file.đuôi. Ở đây các bạn dùng lệnh Apktool d framework.jar và Apktool d framework2.jar đối với ROM có 2 file framework. Sau khi Decode 2 file trên ta được 2 thư mục đó làframework.jar.out và framework2.jar.out chứa các mã Smali. Những bạn chưa nắm rõ về mã Smali thì có thể chuyển sang code Java để dễ theo dõi và nắm bắt thuật toán của họ theo cách thức sau: Mở các file Framework.jar bằng Winrar hoặc 7Zip để lấy file classes.dex, sau đó dùng tool Dex2jar mình đã đưa ở trên để chuyển sang Java bằng cách: Copy file classes.dex vào thư mục chứa tool Dex2jar, có thể đổi tên nếu làm cùng lúc nhiều file. Mở cửa sổ lệnh tại đây và chạy lệnh Dex2jar Tên file.đuôi, ở đây là dex2jar classes.dex. Sau khi chạy xong lệnh bạn sẽ có đc file classes-dex2jar.jar. Để đọc file Java này bạn sử dụng tool JD-Gui mình đã post ở trên rồi Open tới file classes-dex2jar.jar vừa chuyển đổi đc. Cấu trúc file này cũng giống với thư mục Smali mình đã Decode ở trên nhưng bằng ngôn ngữ Java nên dễ đọc hơn, có điều nó chỉ đọc ko thể sửa trực tiếp đc . Các bạn mở 2 file\smali\android\telephony\SmsManager.smali và\smali\com\android\internal\telephony\gsm\SmsMessage.smali và đối chiếu với file Java sẽ thấy, một số đoạn HTC sẽ kiểm tra theo Htc_PROJECT_flag để xác định độ dài SMS và phương thức mã hóa tin nhắn. vd như đoạn sau: Mã: sget-short v5, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v6, 0x50 if-ne v5, v6, :cond_1f Ở đây nó sẽ kiểm tra xem nếu Htc_PROJECT_flag = 0x50 (Hex) tức là bằng 80 dạng thập phân thì sẽ nhảy sang xử lý đoạn cond_1f. Tương tự với một số hàm khác cũng đều có fix cứng với một số Htc_PROJECT_flag. Để fix chỗ này cũng rất đơn giản, các bạn chỉ cần thay đổi những đoạn kiểm tra đó sang một mã Flag khác hoặc xóa đi là được, ở đây mình đẩy tất cả các đoạn kiểm tra với số 0x50 (Máy HTC EVO 4G+) lên 0x51. Lưu ý là các bạn nên đối chiếu với code java để chỉnh sửa chính xác hơn nhé. Như vậy Flag = 0x50 sẽ ko rơi vào trường hợp đặc biệt nữa, thay vào đó là Flag = 0x51. Oke giờ ta tiến hành Encode lại thành file Framework.jarvà Framework2.jar. Ở trong thư mục Apktool ta mở cửa sổ lệnh lên và đánh lệnhApktool b Tên thư mục Ở đây là Apktool b framework.jar.out và Apktool b framework2.jar.out. Sau khi hoàn thành ta vào các thư mục đó sẽ thấy file\build\apk\classes.dex Mở file Framework gốc bằng Winrar hoặc 7Zip rồi kéo thả fileclasses.dex vừa nhận đc thay thế file gốc trong Framework là đc. Lưu ý là cũng sẽ có 1 thư mục \dist\framework.jar có thể chạy đc nhưng nó không ổn định, ta phải làm theo cách trên thì mới ổn định. Như vậy ta đã đc 2 file Framework fix SMS, bạn có thể thay thế 2 file đó vào ROM ban đầu hoặc tạo file Patch để update 2 file này lên điện thoại. (Cách tạo file patch thì sẽ liên quan nhiều đến Update Script, để nói về script này cũng mất rất nhiều thời gian nên lúc nào có điều kiện mình sẽ nói thêm) Các bạn có thể tham khảo 2 file mình đã chỉnh sửa cho EVO 4G+ nếu gặp khó khăn: Framework.jar.out vàFramework2.jar.out, chỉ cần giải nén ra rồi copy đè, sau đó Encode lại là oke. LINK CẦN THIẾT ĐÍNH KÈM.............
Mình đã vọc, tự fix sms, kết quả là treo logo. chắc do trình độ còn kém cỏi quá đó mà