林星晚没有打开开发者模式。
她把那张纸条塞回陈启明的笔记本里,合上,推到一边。然后伸手拿过了孙婷给她的"锚点V0.1"原始文件。
傅晏看着她的动作,没催。
"我总觉得差点什么。"林星晚边翻边说,"不是差信息信息够了。是差一个……理解。"
"理解什么?"
"理解这个东西到底怎么运作的。"她翻到文件最前面,"我一直在用程序员的思维去想这个问题找入口、输密码、进系统。但林素琴不是程序员出身,她是搞理论物理的。她设计的东西,可能根本不按程序员的逻辑来。"
傅晏没接话,端着咖啡在她对面坐下来。
林星晚翻到"锚点V0.1"的扉页。之前她一直直接跳过扉页看正文代码,但这次她注意到扉页背面贴了一封信。
信是孙婷写的。
"我之前居然没翻到这个。"林星晚把信展开,纸很薄,字迹工整但小,像是孙婷怕写多了占地方。
信不长。孙婷在开头解释了这份文件的来历,然后中间有一段引述了林素琴的原话
"林素琴在写核心算法的时候跟我说过一句话,我记了很久。她说:'这段代码不是工具。它是一座桥。不是我从这里走到那里是桥自己决定要连接哪里。'当时我以为她在说哲学。后来我明白了,她在说这个算法的本质。"
林星晚读完这段话,手停在半空。
"桥自己决定要连接哪里……"她低声重复了一遍。
"什么意思?"傅晏问。
"等一下。"林星晚抬起一只手,示意他别说话。她盯着那行字看了十几秒,脑子里有什么东西在转。
"桥自己决定要连接哪里。"她又念了一遍,然后猛地抬头看向傅晏,"你听出来了吗?这句话的关键不是'桥'是'自己决定'。"
傅晏想了想。"你的意思是……APP不是被动地等用户去操作它?"
"对!"林星晚站起来,"我一直以为开发者模式是一个固定的入口藏在某个菜单里,按照特定步骤就能打开。但林素琴的算法逻辑根本不是这样的。她的算法是'桥自己决定连接谁'也就是说,开发者模式可能不是固定入口,它会根据'连接者'的身份不同,出现在不同的地方。"
"你是说……"
"我是说,陈启明那张纸条上写的'关于页→版本号→连点7次'那可能只是一个通用入口。给普通人用的。或者说,是陈启明自己用的。"林星晚越说越快,"但如果APP认出了'接管者'也就是我它可能根本不需要走那条路。它会有另一个入口,专门为我开的。"
傅晏放下咖啡杯,认真想了一会儿。
"如果APP知道它需要连接谁,"他慢慢说,"那开发者模式就不是'程序员的调试工具'。它是'管理者'的专属界面。"
"没错。"
"陈启明设计APP的时候,一定用了某种权限机制。"傅晏接着推理,"普通开发者有普通入口,管理者有管理者的入口。他不可能让所有人都能通过'连点7次'看到核心代码那太蠢了。"
"所以'连点7次'是障眼法。"林星晚一拍桌子,"不是假的,但不是真正的核心入口。是给陈启明自己留的备用通道。真正的入口"
她指了指自己。
"在我这儿。"
傅晏看着她。"你有什么?"
"指纹。声纹。视网膜。随便什么生物特征。"林星晚说,"APP绑定了我。它知道我是谁。如果它需要一个'管理者'来打开核心层那验证方式一定是我的生物特征,不是一串密码或者几次点击。"
"试试。"傅晏说。
林星晚拿起手机,打开APP。
她先试了最常规的路径设置、关于页、版本号。点了七次。什么都没发生。页面弹出一个灰色的提示框:"当前版本无需更新。"
"果然。"林星晚撇了撇嘴,"陈启明你个老阴比。"
她又试着在APP内搜索"developer""debug""admin"等关键词,一无所获。APP的搜索功能只返回用户帮助文档。
"藏得够深的。"傅晏说。
"等一下。"林星晚突然想到什么,"我一直是在APP里面找。但如果入口不在APP里面呢?"
她退出APP,回到手机主屏幕。
长按APP图标。
"删除APP"的选项弹出来了灰色的,不可点击。这她早就知道,APP被锁定了,无法卸载。
但她的手指没有松开。
长按菜单继续保持展开状态。她往下滑
分享、编辑主屏幕、选择图标……
最底部。
一个她从没注意过的按钮。
字体比其他选项小一号,颜色是半透明的灰,几乎跟背景融为一体。
"开发者设置"。
"傅晏你看这个。"林星晚的声音压得很低。
傅晏凑过来看了一眼。"我草。藏在这儿?"
"长按菜单的最底部。我他妈用了这个APP这么久,从来没滑到过最下面。"林星晚深吸一口气,"因为'删除APP'是灰色的,正常情况下你看到它就知道删不了,然后就松手了。谁会继续往下划?"
"陈启明的设计风格。"傅晏说,"藏在最显眼的地方。"
林星晚的拇指悬在那个半透明的按钮上方。
"点了。"她说。
拇指落下。
屏幕闪了一下,弹出一个白色的窗口。窗口中央是一个指纹图标,下方一行字
"请验证指纹林星晚。"
她盯着自己的名字看了两秒。
"它认得我。"她低声说。
然后她把拇指按了上去。
