今天给DX刷了621底包的liberty,打算给BlurDialer加个补丁支持中文T9,记得以前在哪个blog上面看到的,结果找不到了,只好找出之前自己打过补丁的文件和官方ROM里面的文件,比较两者的差异。。。一番辛苦之后终于找到了修改的代码,贴在这里备份一下。
第一步baksmali:
`baksmali.jar classes.dex -o out`
第二步在\com\motorola\dialer找到这个文件:SmartDialerAdapter$4.smali,用UE打开,查找这个:
`const-string v5, "( REPLACE(UPPER(display_name), \' \',\'\') GLOB ? OR UPPER(display_name) GLOB ? OR REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(UPPER(data1), \'-\',\'\'),\'.\',\'\'),\' \',\'\'),\'(\',\'\'),\'/\',\'\'),\')\',\'\') GLOB ?)"`
替换为:
`const-string v5, "( REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(UPPER(sort_key_alt),SUBSTR(display_name,1,1),\'\'),SUBSTR(display_name,2,1),\'\'),SUBSTR(display_name,3,1),\'\'),SUBSTR(display_name,4,1),\'\'),\' \',\'\') GLOB ? OR UPPER(display_name) GLOB ? OR REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(UPPER(data1), \'-\',\'\'),\'.\',\'\'),\' \',\'\'),\'(\',\'\'),\'/\',\'\'),\')\',\'\') GLOB ?)"`
保存。
然后smali:
`smali.jar -o classes.dex out`
最后用classes.dex替换掉原apk里面的classes.dex。